diff --git a/providers/src/linode/v00.00.00000/provider.yaml b/providers/src/linode/v00.00.00000/provider.yaml
index 74ab27cb..d7d70509 100644
--- a/providers/src/linode/v00.00.00000/provider.yaml
+++ b/providers/src/linode/v00.00.00000/provider.yaml
@@ -3,159 +3,186 @@ name: linode
version: v00.00.00000
providerServices:
account:
- description: Account
- id: 'account:v00.00.00000'
+ id: account:v00.00.00000
name: account
preferred: true
service:
$ref: linode/v00.00.00000/services/account.yaml
- title: Linode API - Account
+ title: account API
version: v00.00.00000
+ description: linode account API
+ betas:
+ id: betas:v00.00.00000
+ name: betas
+ preferred: true
+ service:
+ $ref: linode/v00.00.00000/services/betas.yaml
+ title: betas API
+ version: v00.00.00000
+ description: linode betas API
databases:
- description: Databases
- id: 'databases:v00.00.00000'
+ id: databases:v00.00.00000
name: databases
preferred: true
service:
$ref: linode/v00.00.00000/services/databases.yaml
- title: Linode API - Databases
+ title: databases API
version: v00.00.00000
+ description: linode databases API
domains:
- description: Domains
- id: 'domains:v00.00.00000'
+ id: domains:v00.00.00000
name: domains
preferred: true
service:
$ref: linode/v00.00.00000/services/domains.yaml
- title: Linode API - Domains
+ title: domains API
version: v00.00.00000
+ description: linode domains API
images:
- description: Images
- id: 'images:v00.00.00000'
+ id: images:v00.00.00000
name: images
preferred: true
service:
$ref: linode/v00.00.00000/services/images.yaml
- title: Linode API - Images
+ title: images API
version: v00.00.00000
- instances:
- description: Linode
- id: 'instances:v00.00.00000'
- name: instances
+ description: linode images API
+ linode:
+ id: linode:v00.00.00000
+ name: linode
preferred: true
service:
- $ref: linode/v00.00.00000/services/instances.yaml
- title: Linode API - Instances
+ $ref: linode/v00.00.00000/services/linode.yaml
+ title: linode API
version: v00.00.00000
+ description: linode linode API
lke:
- description: Lke
- id: 'lke:v00.00.00000'
+ id: lke:v00.00.00000
name: lke
preferred: true
service:
$ref: linode/v00.00.00000/services/lke.yaml
- title: Linode API - Lke
+ title: lke API
version: v00.00.00000
+ description: linode lke API
longview:
- description: Longview
- id: 'longview:v00.00.00000'
+ id: longview:v00.00.00000
name: longview
preferred: true
service:
$ref: linode/v00.00.00000/services/longview.yaml
- title: Linode API - Longview
+ title: longview API
version: v00.00.00000
+ description: linode longview API
managed:
- description: Managed
- id: 'managed:v00.00.00000'
+ id: managed:v00.00.00000
name: managed
preferred: true
service:
$ref: linode/v00.00.00000/services/managed.yaml
- title: Linode API - Managed
+ title: managed API
version: v00.00.00000
+ description: linode managed API
+ monitor:
+ id: monitor:v00.00.00000
+ name: monitor
+ preferred: true
+ service:
+ $ref: linode/v00.00.00000/services/monitor.yaml
+ title: monitor API
+ version: v00.00.00000
+ description: linode monitor API
networking:
- description: Networking
- id: 'networking:v00.00.00000'
+ id: networking:v00.00.00000
name: networking
preferred: true
service:
$ref: linode/v00.00.00000/services/networking.yaml
- title: Linode API - Networking
+ title: networking API
version: v00.00.00000
+ description: linode networking API
nodebalancers:
- description: Nodebalancers
- id: 'nodebalancers:v00.00.00000'
+ id: nodebalancers:v00.00.00000
name: nodebalancers
preferred: true
service:
$ref: linode/v00.00.00000/services/nodebalancers.yaml
- title: Linode API - Nodebalancers
+ title: nodebalancers API
version: v00.00.00000
+ description: linode nodebalancers API
object_storage:
- description: Object Storage
- id: 'object_storage:v00.00.00000'
+ id: object_storage:v00.00.00000
name: object_storage
preferred: true
service:
$ref: linode/v00.00.00000/services/object_storage.yaml
- title: Linode API - Object Storage
+ title: object_storage API
+ version: v00.00.00000
+ description: linode object_storage API
+ placement:
+ id: placement:v00.00.00000
+ name: placement
+ preferred: true
+ service:
+ $ref: linode/v00.00.00000/services/placement.yaml
+ title: placement API
version: v00.00.00000
+ description: linode placement API
profile:
- description: Profile
- id: 'profile:v00.00.00000'
+ id: profile:v00.00.00000
name: profile
preferred: true
service:
$ref: linode/v00.00.00000/services/profile.yaml
- title: Linode API - Profile
+ title: profile API
version: v00.00.00000
+ description: linode profile API
regions:
- description: Regions
- id: 'regions:v00.00.00000'
+ id: regions:v00.00.00000
name: regions
preferred: true
service:
$ref: linode/v00.00.00000/services/regions.yaml
- title: Linode API - Regions
+ title: regions API
version: v00.00.00000
+ description: linode regions API
support:
- description: Support
- id: 'support:v00.00.00000'
+ id: support:v00.00.00000
name: support
preferred: true
service:
$ref: linode/v00.00.00000/services/support.yaml
- title: Linode API - Support
+ title: support API
version: v00.00.00000
+ description: linode support API
tags:
- description: Tags
- id: 'tags:v00.00.00000'
+ id: tags:v00.00.00000
name: tags
preferred: true
service:
$ref: linode/v00.00.00000/services/tags.yaml
- title: Linode API - Tags
- version: v00.00.00000
- view:
- description: View
- id: 'view:v00.00.00000'
- name: view
- preferred: true
- service:
- $ref: linode/v00.00.00000/services/view.yaml
- title: Linode API - View
+ title: tags API
version: v00.00.00000
+ description: linode tags API
volumes:
- description: Volumes
- id: 'volumes:v00.00.00000'
+ id: volumes:v00.00.00000
name: volumes
preferred: true
service:
$ref: linode/v00.00.00000/services/volumes.yaml
- title: Linode API - Volumes
+ title: volumes API
+ version: v00.00.00000
+ description: linode volumes API
+ vpcs:
+ id: vpcs:v00.00.00000
+ name: vpcs
+ preferred: true
+ service:
+ $ref: linode/v00.00.00000/services/vpcs.yaml
+ title: vpcs API
version: v00.00.00000
+ description: linode vpcs API
config:
auth:
- type: bearer
credentialsenvvar: LINODE_TOKEN
+ type: bearer
diff --git a/providers/src/linode/v00.00.00000/services/account.yaml b/providers/src/linode/v00.00.00000/services/account.yaml
index 0f16e6f1..8e4645b5 100644
--- a/providers/src/linode/v00.00.00000/services/account.yaml
+++ b/providers/src/linode/v00.00.00000/services/account.yaml
@@ -1,5250 +1,16499 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
info:
- version: 4.147.0
- title: Linode API - account
- description: account
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- Account:
- type: 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
- Promotion:
- type: object
- readOnly: true
- description: |
- Promotions generally
- offer a set amount of credit that can be used toward your Linode
- services, and the promotion expires after a specified date. As well,
- a monthly cap on the promotional offer is set.
-
- Simply put, a promotion offers a certain amount of credit every
- month, until either the expiration date is passed, or until the total
- promotional credit is used, whichever comes first.
- properties:
- credit_monthly_cap:
- x-linode-cli-display: 5
- type: string
- description: |
- The amount available to spend per month.
- example: '10.00'
- credit_remaining:
- x-linode-cli-display: 3
- type: string
- description: |
- The total amount of credit left for this promotion.
- example: '50.00'
- description:
- type: string
- description: |
- A detailed description of this promotion.
- example: Receive up to $10 off your services every month for 6 months! Unused credits will expire once this promotion period ends.
- expire_dt:
- x-linode-cli-display: 2
- type: string
- description: |
- When this promotion's credits expire.
- example: '2018-01-31T23:59:59'
- image_url:
- type: string
- description: |
- The location of an image for this promotion.
- example: 'https://linode.com/10_a_month_promotion.svg'
- summary:
- x-linode-cli-display: 10
- type: string
- description: |
- Short details of this promotion.
- example: $10 off your Linode a month!
- this_month_credit_remaining:
- x-linode-cli-display: 4
- type: string
- description: |
- The amount of credit left for this month for this promotion.
- example: '10.00'
- service_type:
- x-linode-cli-display: 1
- type: string
- enum:
- - all
- - backup
- - blockstorage
- - db_mysql
- - ip_v4
- - linode
- - linode_disk
- - linode_memory
- - longview
- - managed
- - nodebalancer
- - objectstorage
- - transfer_tx
- description: |
- The service to which this promotion applies.
- example: all
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- 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: Your credit card number. No spaces or dashes allowed.
- minLength: 14
- maxLength: 24
- format: digits
- example: 4111111111111111
- expiry_month:
- 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:
- 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
- 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'
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- EntityTransfer:
- type: object
- description: |
- An object representing an Entity Transfer.
- properties:
- token:
- x-linode-cli-display: 1
- type: string
- format: uuid
- description: |
- The token used to identify and accept or cancel this transfer.
- example: 123E4567-E89B-12D3-A456-426614174000
- status:
- x-linode-cli-display: 2
- x-linode-filterable: true
- x-linode-cli-color:
- accepted: yellow
- cancelled: red
- completed: green
- failed: red
- pending: yellow
- stale: red
- default_: white
- type: string
- enum:
- - accepted
- - cancelled
- - completed
- - failed
- - pending
- - stale
- description: |
- The status of the transfer request.
+ title: account API
+ description: linode account API
+ version: 4.208.1
+paths:
+ /account:
+ get:
+ description: >-
+ Returns the contact and billing information related to your account.
- `accepted`: The transfer has been accepted by another user and is currently in progress. Transfers can take up to 3 hours to complete.
- `cancelled`: The transfer has been cancelled by the sender.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- `completed`: The transfer has completed successfully.
- `failed`: The transfer has failed after initiation.
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-account
+ operationId: get-account
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Account object.
+ properties:
+ active_promotions:
+ items:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Promotions generally offer a set amount of
+ credit that can be used toward your Linode services, and
+ the promotion expires after a specified date. As well, a
+ monthly cap on the promotional offer is set.
- `pending`: The transfer is ready to be accepted.
- `stale`: The transfer has exceeded its expiration date. It can no longer be accepted or cancelled.
- example: pending
- created:
- type: string
- format: date-time
- description: |
- When this transfer was created.
- example: '2021-02-11T16:37:03'
- updated:
- type: string
- format: date-time
- description: |
- When this transfer was last updated.
- example: '2021-02-11T16:37:03'
- is_sender:
- x-linode-cli-display: 4
- x-linode-filterable: true
- type: boolean
- description: |
- If the requesting account created this transfer.
- example: true
- expiry:
- x-linode-cli-display: 3
- type: string
- format: date-time
- description: |
- When this transfer expires. Transfers will automatically expire 24 hours after creation.
- example: '2021-02-12T16:37:03'
- entities:
- type: object
- description: |
- A collection of the entities to include in this transfer request, separated by type.
- properties:
- linodes:
- x-linode-cli-display: 5
- type: array
- items:
- type: integer
- description: |
- An array containing the IDs of each of the Linodes included in this transfer.
- example:
- - 111
- - 222
- Event:
- type: object
- description: |
- A collection of Event objects. An Event is an action taken against an entity related to your Account. For example, booting a Linode would create an Event.
- The Events returned depends on your grants.
- properties:
- id:
- type: integer
- readOnly: true
- description: The unique ID of this Event.
- example: 123
- x-linode-cli-display: 1
- x-linode-filterable: true
- action:
- type: string
- enum:
- - account_update
- - account_settings_update
- - backups_enable
- - backups_cancel
- - backups_restore
- - community_question_reply
- - community_like
- - credit_card_updated
- - disk_create
- - disk_delete
- - disk_update
- - disk_duplicate
- - disk_imagize
- - disk_resize
- - dns_record_create
- - dns_record_delete
- - dns_record_update
- - dns_zone_create
- - dns_zone_delete
- - dns_zone_import
- - dns_zone_update
- - entity_transfer_accept
- - entity_transfer_cancel
- - entity_transfer_create
- - entity_transfer_fail
- - entity_transfer_stale
- - firewall_create
- - firewall_delete
- - firewall_disable
- - firewall_enable
- - firewall_update
- - firewall_device_add
- - firewall_device_remove
- - host_reboot
- - image_delete
- - image_update
- - image_upload
- - ipaddress_update
- - lassie_reboot
- - lish_boot
- - linode_addip
- - linode_boot
- - linode_clone
- - linode_create
- - linode_delete
- - linode_update
- - linode_deleteip
- - linode_migrate
- - linode_migrate_datacenter
- - linode_migrate_datacenter_create
- - linode_mutate
- - linode_mutate_create
- - linode_reboot
- - linode_rebuild
- - linode_resize
- - linode_resize_create
- - linode_shutdown
- - linode_snapshot
- - linode_config_create
- - linode_config_delete
- - linode_config_update
- - lke_node_create
- - longviewclient_create
- - longviewclient_delete
- - longviewclient_update
- - managed_disabled
- - managed_enabled
- - managed_service_create
- - managed_service_delete
- - nodebalancer_create
- - nodebalancer_delete
- - nodebalancer_update
- - nodebalancer_config_create
- - nodebalancer_config_delete
- - nodebalancer_config_update
- - nodebalancer_node_create
- - nodebalancer_node_delete
- - nodebalancer_node_update
- - oauth_client_create
- - oauth_client_delete
- - oauth_client_secret_reset
- - oauth_client_update
- - password_reset
- - payment_method_add
- - payment_submitted
- - profile_update
- - stackscript_create
- - stackscript_delete
- - stackscript_update
- - stackscript_publicize
- - stackscript_revise
- - tag_create
- - tag_delete
- - tfa_disabled
- - tfa_enabled
- - ticket_attachment_upload
- - ticket_create
- - ticket_update
- - token_create
- - token_delete
- - token_update
- - user_create
- - user_update
- - user_delete
- - user_ssh_key_add
- - user_ssh_key_delete
- - user_ssh_key_update
- - vlan_attach
- - vlan_detach
- - volume_attach
- - volume_clone
- - volume_create
- - volume_delete
- - volume_update
- - volume_detach
- - volume_resize
- readOnly: true
- description: |
- The action that caused this Event. New actions may be added in the future.
- example: ticket_create
- x-linode-cli-display: 3
- x-linode-filterable: true
- created:
- type: string
- readOnly: true
- format: date-time
- description: When this Event was created.
- example: '2018-01-01T00:01:01'
- x-linode-cli-display: 6
- x-linode-filterable: true
- duration:
- type: number
- readOnly: true
- description: |
- The total duration in seconds that it takes for the Event to complete.
- example: 300.56
- x-linode-cli-display: 7
- entity:
- type: object
- readOnly: true
- description: |
- Detailed information about the Event's entity, including ID, type, label, and URL used to access it.
- properties:
- id:
- type: integer
- description: |
- The unique ID for an Event's entity.
-
-
- Some Event entities do not have IDs associated with them, so they
- will not be returned when filtering by ID. These Events include:
- * `account`
- * `profile`
-
- Entities for some Events are assigned the ID of the Linode they correspond to.
- When filtering by ID for these Events, use the corresponding Linode's ID.
- These Events include:
- * `disks`
- * `backups`
-
-
- Tag Events use a tag's name for the entity ID field. When filtering by ID
- for tag Events, supply the name of the tag.
- example: 11111
- x-linode-filterable: true
- label:
- type: string
- description: |
- The current label of this object. The label may reflect changes that occur with this Event.
- example: Problem booting my Linode
- x-linode-cli-display: 5
- type:
- type: string
- enum:
- - account
- - backups
- - community
- - disks
- - domain
- - entity_transfer
- - firewall
- - image
- - ipaddress
- - linode
- - longview
- - managed_service
- - nodebalancer
- - oauth_client
- - profile
- - stackscript
- - tag
- - ticket
- - token
- - user
- - user_ssh_key
- - volume
- readOnly: true
- description: |
- The type of entity that is being referenced by the Event.
- example: ticket
- x-linode-filterable: true
- url:
- type: string
- description: |
- The URL where you can access the object this Event is for. If a relative URL, it is relative to the domain you retrieved the Event from.
- example: /v4/support/tickets/11111
- secondary_entity:
- type: object
- readOnly: true
- description: |
- Detailed information about the Event's secondary entity, which provides additional information
- for events such as, but not limited to, `linode_boot`, `linode_reboot`, `linode_create`, and `linode_clone` Event actions.
- properties:
- id:
- type: string
- description: |
- The ID of the object that is the secondary entity.
- example: linode/debian9
- label:
- type: string
- description: |
- The label of this object.
- example: linode1234
- type:
- type: string
- readOnly: true
- description: |
- The type of entity that is being referenced by the Event.
- example: linode
- url:
- type: string
- description: |
- The URL where you can access the object this Event is for. If a relative URL, it is relative to the domain you retrieved the Event from.
- example: /v4/linode/instances/1234
- percent_complete:
- type: integer
- readOnly: true
- description: |
- A percentage estimating the amount of time remaining for an Event.
- Returns `null` for notification events.
- example: null
- rate:
- type: string
- readOnly: true
- description: |
- The rate of completion of the Event. Only some Events will return rate; for example, migration and resize Events.
- example: null
- read:
- type: boolean
- readOnly: true
- description: If this Event has been read.
- example: true
- seen:
- type: boolean
- readOnly: true
- description: If this Event has been seen.
- example: true
- status:
- type: string
- readOnly: true
- description: The current status of this Event.
- enum:
- - failed
- - finished
- - notification
- - scheduled
- - started
- x-linode-cli-display: 8
- x-linode-cli-color:
- failed: red
- finished: green
- started: yellow
- default_: white
- time_remaining:
- type: string
- readOnly: true
- nullable: true
- description: |
- The estimated time remaining until the completion of this Event. This value is only returned for some in-progress migration events. For all other in-progress events, the `percent_complete` attribute will indicate about how much more work is to be done.
- example: null
- username:
- type: string
- readOnly: true
- nullable: true
- description: |
- The username of the User who caused the Event.
- example: exampleUser
- x-linode-cli-display: 2
- message:
- type: string
- nullable: true
- description: |
- Provides additional information about the event. Additional information may include, but is not limited to, a more detailed representation of events which can help diagnose non-obvious failures.
- example: None
- x-linode-cli-display: 9
- Invoice:
- type: object
- description: Account Invoice object
- properties:
- id:
- type: integer
- readOnly: true
- description: The Invoice's unique ID.
- example: 123
- x-linode-cli-display: 1
- date:
- type: string
- readOnly: true
- format: date-time
- description: When this Invoice was generated.
- example: '2018-01-01T00:01:01'
- x-linode-cli-display: 2
- label:
- type: string
- readOnly: true
- description: The Invoice's display label.
- example: Invoice
- x-linode-cli-display: 3
- subtotal:
- type: number
- readOnly: true
- description: The amount of the Invoice before taxes in US Dollars.
- example: 120.25
- x-linode-cli-display: 4
- tax:
- type: number
- readOnly: true
- 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
- description: The amount of the Invoice after taxes in US Dollars.
- example: 132.5
- x-linode-cli-display: 6
- InvoiceItem:
- type: object
- description: An InvoiceItem object.
- properties:
- amount:
- type: number
- readOnly: true
- description: 'The price, in US dollars, of the Invoice Item. Equal to the unit price multiplied by quantity.'
- example: 20.2
- x-linode-cli-display: 4
- tax:
- type: number
- readOnly: true
- description: The amount of tax levied on this Item in US Dollars.
- example: 1.25
- x-linode-cli-display: 5
- total:
- type: number
- readOnly: true
- description: The price of this Item after taxes in US Dollars.
- example: 21.45
- x-linode-cli-display: 6
- from:
- type: string
- readOnly: true
- format: date-time
- description: 'The date the Invoice Item started, based on month.'
- example: '2018-01-01T00:01:01'
- x-linode-cli-display: 2
- label:
- type: string
- readOnly: true
- description: The Invoice Item's display label.
- example: Linode 123
- x-linode-cli-display: 1
- quantity:
- type: integer
- readOnly: true
- description: The quantity of this Item for the specified Invoice.
- example: 4
- to:
- type: string
- readOnly: true
- format: date-time
- description: 'The date the Invoice Item ended, based on month.'
- example: '2018-01-31T11:59:59'
- x-linode-cli-display: 3
- type:
- type: string
- readOnly: true
- description: 'The type of service, ether `hourly` or `misc`.'
- enum:
- - hourly
- - misc
- example: hourly
- unit_price:
- type: string
- readOnly: true
- description: The monthly service fee in US Dollars for this Item.
- example: 5.05
- Login:
- type: object
- description: |
- An object representing a previous successful login for a User.
- properties:
- id:
- type: integer
- description: |
- The unique ID of this login object.
- example: 1234
- readOnly: true
- x-linode-cli-display: 1
- datetime:
- type: string
- format: date-time
- description: |
- When the login was initiated.
- example: '2018-01-01T00:01:01'
- readOnly: true
- x-linode-cli-display: 2
- ip:
- type: string
- format: ip
- description: |
- The remote IP address that requested the login.
- example: 192.0.2.0
- readOnly: true
- x-linode-cli-display: 3
- username:
- type: string
- description: |
- The username of the User that attempted the login.
- example: example_user
- readOnly: true
- x-linode-cli-display: 4
- status:
- type: string
- enum:
- - successful
- - failed
- description: |
- Whether the login attempt succeeded or failed.
- example: successful
- readOnly: true
- x-linode-cli-display: 5
- restricted:
- type: boolean
- description: |
- True if the User that attempted the login was a restricted User, false otherwise.
- example: true
- readOnly: true
- x-linode-cli-display: 6
- Maintenance:
- type: object
- description: |
- Information about maintenance affecting an entity.
- properties:
- type:
- x-linode-filterable: true
- type: string
- enum:
- - reboot
- - cold_migration
- - live_migration
- description: |
- The type of maintenance.
- example: reboot
- status:
- x-linode-filterable: true
- type: string
- enum:
- - completed
- - pending
- - started
- description: |
- The maintenance status.
-
- Maintenance progresses in the following sequence: pending, started, then completed.
- example: started
- reason:
- type: string
- description: |
- The reason maintenance is being performed.
- example: This maintenance will allow us to update the BIOS on the host's motherboard.
- when:
- x-linode-filterable: true
- type: string
- description: |
- When the maintenance will begin.
-
- [Filterable](/docs/api/#filtering-and-sorting) with the following parameters:
-
- * A single value in date-time string format ("%Y-%m-%dT%H:%M:%S"), which returns only matches to that value.
-
- * A dictionary containing pairs of inequality operator string keys ("+or", "+gt", "+gte", "+lt", "+lte",
- or "+neq") and single date-time string format values ("%Y-%m-%dT%H:%M:%S"). "+or" accepts an array of values that
- may consist of single date-time strings or dictionaries of inequality operator pairs.
- format: date-time
- example: 2020-07-09T00:01:01.000Z
- entity:
- type: object
- description: |
- The entity being affected by maintenance.
- properties:
- label:
- type: string
- description: |
- The label of the entity being affected by maintenance.
- example: demo-linode
- id:
- type: number
- description: |
- The id of the entity being affected by maintenance.
- example: 1234
- type:
- type: string
- description: |
- The type of entity.
- example: Linode
- url:
- type: string
- description: |
- The API endpoint prefix to use in combination with the entity id to find specific information about the entity.
- example: 'https://api.linode.com/v4/linode/instances/{linodeId}'
- Notification:
- type: object
- description: |
- An important, often time-sensitive item related to your Account.
- properties:
- entity:
- type: object
- readOnly: true
- description: Detailed information about the Notification.
- properties:
- id:
- type: integer
- description: |
- The unique ID of the Notification's entity, based on the entity type.
- example: 3456
- label:
- type: string
- description: |
- The current label for this Notification's entity.
- example: Linode not booting.
- type:
- type: string
- description: The type of entity this is related to.
- example: ticket
- url:
- type: string
- description: |
- The URL where you can access the object this Notification is for. If a relative URL, it is relative to the domain you retrieved the Notification from.
- example: /support/tickets/3456
- label:
- type: string
- description: |
- A short description of this Notification.
- example: You have an important ticket open!
- readOnly: true
- x-linode-cli-display: 1
- message:
- type: string
- readOnly: true
- description: A human-readable description of the Notification.
- example: You have an important ticket open!
- x-linode-cli-display: 2
- body:
- type: string
- readOnly: true
- description: |
- A full description of this Notification, in markdown format. Not all Notifications include bodies.
- nullable: true
- example: null
- type:
- type: string
- enum:
- - migration_scheduled
- - migration_imminent
- - migration_pending
- - reboot_scheduled
- - outage
- - payment_due
- - ticket_important
- - ticket_abuse
- - notice
- - maintenance
- - promotion
- readOnly: true
- description: The type of Notification this is.
- example: ticket_important
- severity:
- type: string
- enum:
- - minor
- - major
- - critical
- description: |
- The severity of this Notification. This field can be used to decide how prominently to display the Notification, what color to make the display text, etc.
- example: major
- readOnly: true
- x-linode-cli-display: 3
- x-linode-cli-color:
- critical: b
- minor: blue
- default_: white
- when:
- type: string
- readOnly: true
- format: date-time
- description: |
- If this Notification is of an Event that will happen at a fixed, future time, this is when the named action will be taken. For example, if a Linode is to be migrated in response to a Security Advisory, this field will contain the approximate time the Linode will be taken offline for migration.
- example: null
- x-linode-cli-display: 4
- x-linode-cli-color:
- None: black
- default_: white
- until:
- type: string
- format: date-time
- description: |
- If this Notification has a duration, this will be the ending time for the Event/action. For example, if there is scheduled maintenance for one of our systems, `until` would be set to the end of the maintenance window.
- example: null
- readOnly: true
- x-linode-cli-display: 5
- x-linode-cli-color:
- None: black
- default_: white
- OAuthClient:
- type: object
- description: |
- A third-party application registered to Linode that users may log into with their Linode account through our authentication server at https://login.linode.com . Using an OAuth Client, a third-party developer may be given access to some, or all, of a User's account for the purposes of their application.
- properties:
- id:
- type: string
- description: |
- The OAuth Client ID. This is used to identify the client, and is a publicly-known value (it is not a secret).
- example: 2737bf16b39ab5d7b4a1
- readOnly: true
- x-linode-cli-display: 1
- redirect_uri:
- type: string
- format: url
- description: |
- The location a successful log in from https://login.linode.com should be redirected to for this client. The receiver of this redirect should be ready to accept an OAuth exchange code and finish the OAuth exchange.
- example: 'https://example.org/oauth/callback'
- x-linode-cli-display: 5
- label:
- x-linode-filterable: true
- type: string
- minLength: 1
- maxLength: 512
- description: |
- The name of this application. This will be presented to users when they are asked to grant it access to their Account.
- example: Test_Client_1
- x-linode-cli-display: 2
- status:
- type: string
- enum:
- - active
- - disabled
- - suspended
- description: |
- The status of this application. `active` by default.
- example: active
- readOnly: true
- x-linode-cli-display: 3
- x-linode-cli-color:
- suspended: red
- default_: white
- secret:
- type: string
- description: |
- The OAuth Client secret, used in the OAuth exchange. This is returned as `` except when an OAuth Client is created or its secret is reset. This is a secret, and should not be shared or disclosed publicly.
- example:
- readOnly: true
- thumbnail_url:
- type: string
- nullable: true
- format: url
- description: |
- The URL where this client's thumbnail may be viewed, or `null` if this client does not have a thumbnail set.
- example: 'https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail'
- readOnly: true
- public:
- x-linode-filterable: true
- type: boolean
- default: false
- description: |
- If this is a public or private OAuth Client. Public clients have a slightly different authentication workflow than private clients. See the OAuth spec for more details.
- example: false
- x-linode-cli-display: 4
- PaymentMethod:
- type: object
- description: Payment Method Response Object.
- properties:
- id:
- type: integer
- description: The unique ID of this Payment Method.
- example: 123
- x-linode-cli-display: 1
- type:
- type: string
- enum:
- - credit_card
- - google_pay
- - paypal
- description: The type of Payment Method.
- example: credit_card
- x-linode-cli-display: 2
- is_default:
- type: boolean
- description: |
- Whether this Payment Method is the default method for automatically processing service charges.
- example: true
- x-linode-cli-display: 3
- created:
- type: string
- readOnly: true
- format: date-time
- description: When the Payment Method was added to the Account.
- example: '2018-01-15T00:01:01'
- data:
- x-linode-cli-format: json
- x-linode-cli-display: 4
- oneOf:
- - x-linode-ref-name: Credit Card
- $ref: '#/components/schemas/CreditCardData'
- - x-linode-ref-name: Google Pay
- $ref: '#/components/schemas/GooglePayData'
- - x-linode-ref-name: Paypal
- $ref: '#/components/schemas/PayPalData'
- discriminator:
- propertyName: type
- CreditCardData:
- type: object
- description: Credit card information.
- properties:
- card_type:
- type: string
- readOnly: true
- description: The type of credit card.
- example: Discover
- last_four:
- type: string
- readOnly: true
- description: The last four digits of the credit card number.
- example: '1234'
- expiry:
- type: string
- readOnly: true
- format: MM/YYYY
- description: The expiration month and year of the credit card.
- example: 06/2022
- GooglePayData:
- type: object
- description: Google Pay information.
- properties:
- card_type:
- type: string
- readOnly: true
- description: The type of credit card.
- example: Discover
- last_four:
- type: string
- readOnly: true
- description: The last four digits of the credit card number.
- example: '1234'
- expiry:
- type: string
- readOnly: true
- format: MM/YYYY
- description: The expiration month and year of the credit card.
- example: 06/2022
- PayPalData:
- type: object
- description: PayPal information.
- properties:
- email:
- type: string
- readOnly: true
- description: The email address associated with your PayPal account.
- example: example@linode.com
- paypal_id:
- type: string
- readOnly: true
- description: PayPal Merchant ID associated with your PayPal account.
- example: ABC1234567890
- Payment:
- type: object
- description: Payment object response.
- properties:
- id:
- type: integer
- readOnly: true
- description: The unique ID of the Payment.
- example: 123
- x-linode-cli-display: 1
- date:
- type: string
- readOnly: true
- format: date-time
- description: When the Payment was made.
- example: '2018-01-15T00:01:01'
- x-linode-cli-display: 2
- usd:
- type: integer
- readOnly: true
- description: 'The amount, in US dollars, of the Payment.'
- example: '120.50'
- x-linode-cli-display: 3
- PaymentRequest:
- type: object
- required:
- - usd
- description: Payment object request.
- properties:
- cvv:
- type: string
- description: |
- CVV (Card Verification Value) of the credit card to be used for the Payment. Required if paying by credit card.
- example: '123'
- usd:
- type: string
- pattern: '^\$?\d+\.\d{2}$'
- description: |
- The amount in US Dollars of the Payment.
-
- * Can begin with or without `$`.
- * Commas (`,`) are not accepted.
- * Must end with a decimal expression, such as `.00` or `.99`.
- * Minimum: `$5.00` or the Account balance, whichever is lower.
- * Maximum: `$2000.00` or the Account balance up to `$50000.00`, whichever is greater.
- example: $120.50
- payment_method_id:
- type: integer
- description: |
- The ID of the Payment Method to apply to the Payment.
- example: 123
- WarningObject:
- type: object
- description: |
- An object for describing a single warning associated with a response.
- properties:
- title:
- type: string
- description: |
- The general warning message.
- example: Unable to reboot Linode.
- details:
- type: string
- description: |
- Specific information related to the warning.
- example: Linode 123 could not be rebooted.
- PayPal:
- type: object
- required:
- - cancel_url
- - redirect_url
- - usd
- description: |
- An object representing the staging of a Payment via PayPal.
- properties:
- cancel_url:
- type: string
- description: The URL to have PayPal redirect to when Payment is cancelled.
- example: 'https://example.org'
- redirect_url:
- type: string
- description: The URL to have PayPal redirect to when Payment is approved.
- example: 'https://example.org'
- usd:
- type: string
- description: 'The payment amount in USD. Minimum accepted value of $5 USD. Maximum accepted value of $500 USD or credit card payment limit; whichever value is highest. PayPal''s maximum transaction limit is $10,000 USD.'
- example: '120.50'
- PayPalExecute:
- type: object
- required:
- - payer_id
- - payment_id
- description: |
- An object representing an execution of Payment to PayPal to capture the funds and credit your Linode Account.
- properties:
- payer_id:
- type: string
- description: |
- The PayerID returned by PayPal during the transaction authorization process.
- example: ABCDEFGHIJKLM
- payment_id:
- type: string
- description: |
- The PaymentID returned from [POST /account/payments/paypal](/docs/api/account/#paypal-payment-stage) that has been approved with PayPal.
- example: PAY-1234567890ABCDEFGHIJKLMN
- ServiceTransfer:
- type: object
- description: |
- An object representing a Service Transfer.
- properties:
- token:
- x-linode-cli-display: 1
- type: string
- format: uuid
- description: |
- The token used to identify and accept or cancel this transfer.
- example: 123E4567-E89B-12D3-A456-426614174000
- status:
- x-linode-cli-display: 2
- x-linode-filterable: true
- x-linode-cli-color:
- accepted: yellow
- cancelled: red
- completed: green
- failed: red
- pending: yellow
- stale: red
- default_: white
- type: string
- enum:
- - accepted
- - cancelled
- - completed
- - failed
- - pending
- - stale
- description: |
- The status of the transfer request.
+ Simply put, a promotion offers a certain amount of
+ credit month, until either the expiration date is
+ passed, or until the total promotional credit is used,
+ whichever comes first.
+ properties:
+ credit_monthly_cap:
+ description: The amount available to spend per month.
+ example: '10.00'
+ type: string
+ x-linode-cli-display: 5
+ credit_remaining:
+ description: The total amount of credit left for this promotion.
+ example: '50.00'
+ type: string
+ x-linode-cli-display: 3
+ description:
+ description: A detailed description of this promotion.
+ example: >-
+ Receive up to $10 off your services every month for
+ 6 months! Unused credits will expire once this
+ promotion period ends.
+ type: string
+ expire_dt:
+ description: When this promotion's credits expire.
+ example: '2018-01-31T23:59:59'
+ type: string
+ x-linode-cli-display: 2
+ image_url:
+ description: The location of an image for this promotion.
+ example: https://linode.com/10_a_month_promotion.svg
+ type: string
+ service_type:
+ description: The service to which this promotion applies.
+ enum:
+ - all
+ - backup
+ - blockstorage
+ - db_mysql
+ - ip_v4
+ - linode
+ - linode_disk
+ - linode_memory
+ - longview
+ - managed
+ - nodebalancer
+ - objectstorage
+ - placement_group
+ - transfer_tx
+ example: all
+ type: string
+ x-linode-cli-display: 1
+ summary:
+ description: Short details of this promotion.
+ example: $10 off your Linode a month!
+ type: string
+ x-linode-cli-display: 10
+ this_month_credit_remaining:
+ description: >-
+ The amount of credit left for this month for this
+ promotion.
+ example: '10.00'
+ type: string
+ x-linode-cli-display: 4
+ readOnly: true
+ type: object
+ x-akamai:
+ file-path: schemas/promotion.yaml
+ readOnly: true
+ type: array
+ active_since:
+ description: __Read-only__ The date and time the account was activated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ address_1:
+ description: The first line of this account's billing address.
+ example: 123 Main Street
+ maxLength: 64
+ type: string
+ address_2:
+ description: The second line of this account's billing address.
+ example: Suite A
+ maxLength: 64
+ type: string
+ balance:
+ description: __Read-only__ This account's balance, in US dollars.
+ example: 200
+ readOnly: true
+ type: number
+ x-linode-cli-display: 4
+ balance_uninvoiced:
+ description: >-
+ __Read-only__ 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
+ readOnly: true
+ type: number
+ x-linode-cli-display: 4
+ billing_source:
+ description: >-
+ __Read-only__ The source of service charges for this
+ account. Accounts that are associated with Akamai-specific
+ customers return a value of `akamai`. All other accounts
+ return a value of `linode`.
+ enum:
+ - akamai
+ - linode
+ example: akamai
+ readOnly: true
+ type: string
+ capabilities:
+ description: >-
+ __Read-only__ The Akamai Cloud Computing services your
+ account supports.
+ example:
+ - Linodes
+ - NodeBalancers
+ - Block Storage
+ - Object Storage
+ - Placement Groups
+ - Block Storage Encryption
+ items:
+ type: string
+ readOnly: true
+ type: array
+ city:
+ description: The city for this account's `address`.
+ example: Philadelphia
+ maxLength: 24
+ type: string
+ company:
+ description: >-
+ The company name assigned to this account. This value
+ can't include the characters, `<` `>` `(` `)` `"` `=`.
+ example: Linode LLC
+ maxLength: 128
+ type: string
+ country:
+ description: >-
+ The two-letter ISO 3166 country code for this account's
+ `address`.
+ example: US
+ type: string
+ credit_card:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The credit card information assigned to this
+ account.
+ properties:
+ expiry:
+ description: The expiration month and year of the `credit_card`.
+ example: 11/2022
+ type: string
+ last_four:
+ description: >-
+ The last four digits of the `credit_card` assigned to
+ this account.
+ example: 1111
+ type: string
+ readOnly: true
+ type: object
+ email:
+ description: The email address of the person assigned to this account.
+ example: john.smith@linode.com
+ maxLength: 128
+ type: string
+ x-linode-cli-display: 3
+ euuid:
+ description: >-
+ __Read-only__ An external unique identifier for this
+ account.
+ example: E1AF5EEC-526F-487D-B317EBEB34C87D71
+ format: uuid
+ readOnly: true
+ type: string
+ first_name:
+ description: >-
+ The first name of the person assigned to this account.
+ This value can't include the characters, `<` `>` `(` `)`
+ `"` `=`.
+ example: John
+ maxLength: 50
+ type: string
+ x-linode-cli-display: 1
+ last_name:
+ description: >-
+ The last name of the person assigned to this account. This
+ value can't include the characters, `<` `>` `(` `)` `"`
+ `=`.
+ example: Smith
+ maxLength: 50
+ type: string
+ x-linode-cli-display: 2
+ phone:
+ description: The phone number assigned to this account.
+ example: 215-555-1212
+ maxLength: 32
+ type: string
+ state:
+ description: >-
+ The state or province for the `address` set for your
+ account, if applicable.
- `accepted`: The transfer has been accepted by another user and is currently in progress.
- Transfers can take up to 3 hours to complete.
- `cancelled`: The transfer has been cancelled by the sender.
+ - If the `address` is in the United States (US) or Canada
+ (CA), this is the two-letter ISO 3166 code for the state
+ or province.
- `completed`: The transfer has completed successfully.
- `failed`: The transfer has failed after initiation.
+ - If it's a US military `address`, this is the
+ abbreviation for that territory. This includes `AA` for
+ Armed Forces Americas (excluding Canada), `AE` for Armed
+ Forces Africa, Europe, Middle East, and Canada, or `AP`
+ for Armed Forces Pacific.
- `pending`: The transfer is ready to be accepted.
- `stale`: The transfer has exceeded its expiration date. It can no longer be accepted or
- cancelled.
- example: pending
- created:
- type: string
- format: date-time
- description: |
- When this transfer was created.
- example: '2021-02-11T16:37:03'
- updated:
- type: string
- format: date-time
- description: |
- When this transfer was last updated.
- example: '2021-02-11T16:37:03'
- is_sender:
- x-linode-cli-display: 4
- x-linode-filterable: true
- type: boolean
- description: |
- If the requesting account created this transfer.
- example: true
- expiry:
- x-linode-cli-display: 3
- type: string
- format: date-time
- description: |
- When this transfer expires. Transfers will automatically expire 24 hours after creation.
- example: '2021-02-12T16:37:03'
- entities:
- type: object
- description: |
- A collection of the services to include in this transfer request, separated by type.
- properties:
- linodes:
- x-linode-cli-display: 5
- type: array
- items:
- type: integer
- description: |
- An array containing the IDs of each of the Linodes included in this transfer.
- example:
- - 111
- - 222
- AccountSettings:
- type: object
- description: Account Settings object
- properties:
- managed:
- type: boolean
- readOnly: true
- description: |
- Our 24/7 incident response service. This robust, multi-homed monitoring system distributes monitoring checks to ensure that your servers remain online and available at all times. Linode Managed can monitor any service or software stack reachable over TCP or HTTP. Once you add a service to Linode Managed, we'll monitor it for connectivity, response, and total request time.
- example: true
- x-linode-cli-display: 3
- longview_subscription:
- type: string
- 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
- Transfer:
- type: object
- description: |
- An object representing your network utilization for the current month, in Gigabytes.
- properties:
- billable:
- type: integer
- readOnly: true
- description: |
- The amount of your transfer pool that is billable this billing cycle.
- example: 0
- x-linode-cli-display: 3
- quota:
- type: integer
- readOnly: true
- description: |
- The amount of network usage allowed this billing cycle.
- example: 9141
- x-linode-cli-display: 1
- used:
- type: integer
- readOnly: true
- description: |
- The amount of network usage you have used this billing cycle.
- example: 2
- x-linode-cli-display: 2
- User:
- type: object
- description: |
- A User on your Account. Unrestricted users can log in and access information about your Account, while restricted users may only access entities or perform actions they've been granted access to.
- properties:
- username:
- type: string
- pattern: '^[a-zA-Z0-9]((?![_-]{2,})[a-zA-Z0-9-_])+[a-zA-Z0-9]$'
- minLength: 3
- maxLength: 32
- description: |
- The User's username. This is used for logging in, and may also be displayed alongside actions the User performs (for example, in Events or public StackScripts).
- x-linode-filterable: true
- example: example_user
- x-linode-cli-display: 1
- email:
- type: string
- format: email
- description: |
- The email address for the User. Linode sends emails to this address for account management communications. May be used for other communications as configured.
- example: example_user@linode.com
- x-linode-cli-display: 2
- restricted:
- type: boolean
- description: |
- If true, the User must be granted access to perform actions or access entities on this Account. See User Grants View ([GET /account/users/{username}/grants](/docs/api/account/#users-grants-view)) for details on how to configure grants for a restricted User.
- example: true
- x-linode-cli-display: 3
- ssh_keys:
- type: array
- readOnly: true
- items:
- type: string
- description: |
- A list of SSH Key labels added by this User.
-
- Users can add keys with the SSH Key Add ([POST /profile/sshkeys](/docs/api/profile/#ssh-key-add)) command.
-
- These keys are deployed when this User is included in the `authorized_users`
- field of the following requests:
- - Linode Create ([POST /linode/instances](/docs/api/linode-instances/#linode-create))
- - Linode Rebuild ([POST /linode/instances/{linodeId}/rebuild](/docs/api/linode-instances/#linode-rebuild))
- - Disk Create ([POST /linode/instances/{linodeId}/disks](/docs/api/linode-instances/#disk-create))
- example:
- - home-pc
- - laptop
- tfa_enabled:
- type: boolean
- readOnly: true
- description: |
- A boolean value indicating if the User has Two Factor Authentication (TFA) enabled. See the Create Two Factor Secret ([POST /profile/tfa-enable](/docs/api/profile/#two-factor-secret-create)) endpoint to enable TFA.
- GrantsResponse:
- type: object
- description: |
- A structure representing all grants a restricted User has on the Account. Not available for unrestricted users, as they have access to everything without grants. If retrieved from the `/profile/grants` endpoint, entities to which a User has no access will be omitted.
- properties:
- global:
- type: object
- description: |
- A structure containing the Account-level grants a User has.
- properties:
- add_linodes:
- type: boolean
- description: 'If true, this User may create Linodes.'
- example: true
- add_longview:
- type: boolean
- description: 'If true, this User may create Longview clients and view the current plan.'
- example: true
- longview_subscription:
- type: boolean
- description: 'If true, this User may manage the Account''s Longview subscription.'
- example: true
- account_access:
- type: string
- nullable: true
- enum:
- - read_only
- - read_write
- description: |
- The level of access this User has to Account-level actions, like billing information. A restricted User will never be able to manage users.
- example: read_only
- cancel_account:
- type: boolean
- description: 'If true, this User may cancel the entire Account.'
- example: false
- add_domains:
- type: boolean
- description: 'If true, this User may add Domains.'
- example: true
- add_stackscripts:
- type: boolean
- description: 'If true, this User may add StackScripts.'
- example: true
- add_nodebalancers:
- type: boolean
- description: 'If true, this User may add NodeBalancers.'
- example: true
- add_images:
- type: boolean
- description: 'If true, this User may add Images.'
- example: true
- add_volumes:
- type: boolean
- description: 'If true, this User may add Volumes.'
- example: true
- add_firewalls:
- 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:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each Linode that is owned by this Account.
- database:
- type: array
- items:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each Database that is owned by this Account.
- domain:
- type: array
- items:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each Domain that is owned by this Account.
- nodebalancer:
- type: array
- items:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each NodeBalancer that is owned by this Account.
- image:
- type: array
- items:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each Image that is owned by this Account.
- longview:
- type: array
- items:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each Longview Client that is owned by this Account.
- stackscript:
- type: array
- items:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each StackScript that is owned by this Account.
- volume:
- type: array
- items:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each Block Storage Volume that is owned by this Account.
- Grant:
- type: object
- description: |
- Represents the level of access a restricted User has to a specific resource on the Account.
- properties:
- id:
- type: integer
- description: |
- The ID of the entity this grant applies to.
- example: 123
- permissions:
- type: string
- nullable: true
- enum:
- - read_only
- - read_write
- description: |
- The level of access this User has to this entity. If null, this User has no access.
- example: read_only
- label:
- type: string
- description: |
- The current label of the entity this grant applies to, for display purposes.
- example: example-entity
- readOnly: true
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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
- items:
- $ref: '#/components/schemas/WarningObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- account:
- id: linode.account.account
- name: account
- title: Account
- methods:
- getAccount:
- operation:
- $ref: '#/paths/~1account/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getAccount:
- operation:
- $ref: '#/paths/~1account/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateAccount:
- operation:
- $ref: '#/paths/~1account/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- cancelAccount:
- operation:
- $ref: '#/paths/~1account~1cancel/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/account/methods/getAccount'
- insert: []
- update: []
- delete: []
- credit_card:
- id: linode.account.credit_card
- name: credit_card
- title: Credit Card
- methods:
- createCreditCard:
- operation:
- $ref: '#/paths/~1account~1credit-card/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select: []
- insert:
- - $ref: '#/components/x-stackQL-resources/credit_card/methods/createCreditCard'
- update: []
- delete: []
- entity_transfers:
- id: linode.account.entity_transfers
- name: entity_transfers
- title: Entity Transfers
- methods:
- getEntityTransfers:
- operation:
- $ref: '#/paths/~1account~1entity-transfers/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getEntityTransfers:
- operation:
- $ref: '#/paths/~1account~1entity-transfers/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createEntityTransfer:
- operation:
- $ref: '#/paths/~1account~1entity-transfers/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getEntityTransfer:
- operation:
- $ref: '#/paths/~1account~1entity-transfers~1{token}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getEntityTransfer:
- operation:
- $ref: '#/paths/~1account~1entity-transfers~1{token}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteEntityTransfer:
- operation:
- $ref: '#/paths/~1account~1entity-transfers~1{token}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- acceptEntityTransfer:
- operation:
- $ref: '#/paths/~1account~1entity-transfers~1{token}~1accept/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/entity_transfers/methods/getEntityTransfers'
- - $ref: '#/components/x-stackQL-resources/entity_transfers/methods/getEntityTransfer'
- insert:
- - $ref: '#/components/x-stackQL-resources/entity_transfers/methods/createEntityTransfer'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/entity_transfers/methods/deleteEntityTransfer'
- events:
- id: linode.account.events
- name: events
- title: Events
- methods:
- getEvents:
- operation:
- $ref: '#/paths/~1account~1events/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getEvents:
- operation:
- $ref: '#/paths/~1account~1events/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getEvent:
- operation:
- $ref: '#/paths/~1account~1events~1{eventId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getEvent:
- operation:
- $ref: '#/paths/~1account~1events~1{eventId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- eventRead:
- operation:
- $ref: '#/paths/~1account~1events~1{eventId}~1read/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- eventSeen:
- operation:
- $ref: '#/paths/~1account~1events~1{eventId}~1seen/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/events/methods/getEvents'
- - $ref: '#/components/x-stackQL-resources/events/methods/getEvent'
- insert: []
- update: []
- delete: []
- invoices:
- id: linode.account.invoices
- name: invoices
- title: Invoices
- methods:
- getInvoices:
- operation:
- $ref: '#/paths/~1account~1invoices/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getInvoices:
- operation:
- $ref: '#/paths/~1account~1invoices/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getInvoice:
- operation:
- $ref: '#/paths/~1account~1invoices~1{invoiceId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getInvoice:
- operation:
- $ref: '#/paths/~1account~1invoices~1{invoiceId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/invoices/methods/getInvoices'
- - $ref: '#/components/x-stackQL-resources/invoices/methods/getInvoice'
- insert: []
- update: []
- delete: []
- invoices_items:
- id: linode.account.invoices_items
- name: invoices_items
- title: Invoices Items
- methods:
- getInvoiceItems:
- operation:
- $ref: '#/paths/~1account~1invoices~1{invoiceId}~1items/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getInvoiceItems:
- operation:
- $ref: '#/paths/~1account~1invoices~1{invoiceId}~1items/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/invoices_items/methods/getInvoiceItems'
- insert: []
- update: []
- delete: []
- logins:
- id: linode.account.logins
- name: logins
- title: Logins
- methods:
- getAccountLogins:
- operation:
- $ref: '#/paths/~1account~1logins/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getAccountLogins:
- operation:
- $ref: '#/paths/~1account~1logins/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getAccountLogin:
- operation:
- $ref: '#/paths/~1account~1logins~1{loginId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getAccountLogin:
- operation:
- $ref: '#/paths/~1account~1logins~1{loginId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/logins/methods/getAccountLogins'
- - $ref: '#/components/x-stackQL-resources/logins/methods/getAccountLogin'
- insert: []
- update: []
- delete: []
- maintenance:
- id: linode.account.maintenance
- name: maintenance
- title: Maintenance
- methods:
- getMaintenance:
- operation:
- $ref: '#/paths/~1account~1maintenance/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getMaintenance:
- operation:
- $ref: '#/paths/~1account~1maintenance/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/maintenance/methods/getMaintenance'
- insert: []
- update: []
- delete: []
- notifications:
- id: linode.account.notifications
- name: notifications
- title: Notifications
- methods:
- getNotifications:
- operation:
- $ref: '#/paths/~1account~1notifications/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getNotifications:
- operation:
- $ref: '#/paths/~1account~1notifications/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/notifications/methods/getNotifications'
- insert: []
- update: []
- delete: []
- oauth_clients:
- id: linode.account.oauth_clients
- name: oauth_clients
- title: Oauth Clients
- methods:
- getClients:
- operation:
- $ref: '#/paths/~1account~1oauth-clients/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getClients:
- operation:
- $ref: '#/paths/~1account~1oauth-clients/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createClient:
- operation:
- $ref: '#/paths/~1account~1oauth-clients/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getClient:
- operation:
- $ref: '#/paths/~1account~1oauth-clients~1{clientId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getClient:
- operation:
- $ref: '#/paths/~1account~1oauth-clients~1{clientId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateClient:
- operation:
- $ref: '#/paths/~1account~1oauth-clients~1{clientId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteClient:
- operation:
- $ref: '#/paths/~1account~1oauth-clients~1{clientId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getClientThumbnail:
- operation:
- $ref: '#/paths/~1account~1oauth-clients~1{clientId}~1thumbnail/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getClientThumbnail:
- operation:
- $ref: '#/paths/~1account~1oauth-clients~1{clientId}~1thumbnail/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- setClientThumbnail:
- operation:
- $ref: '#/paths/~1account~1oauth-clients~1{clientId}~1thumbnail/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- resetClientSecret:
- operation:
- $ref: '#/paths/~1account~1oauth-clients~1{clientId}~1reset-secret/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/oauth_clients/methods/getClients'
- - $ref: '#/components/x-stackQL-resources/oauth_clients/methods/getClient'
- insert:
- - $ref: '#/components/x-stackQL-resources/oauth_clients/methods/createClient'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/oauth_clients/methods/deleteClient'
- payment_methods:
- id: linode.account.payment_methods
- name: payment_methods
- title: Payment Methods
- methods:
- getPaymentMethods:
- operation:
- $ref: '#/paths/~1account~1payment-methods/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getPaymentMethods:
- operation:
- $ref: '#/paths/~1account~1payment-methods/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createPaymentMethod:
- operation:
- $ref: '#/paths/~1account~1payment-methods/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getPaymentMethod:
- operation:
- $ref: '#/paths/~1account~1payment-methods~1{paymentMethodId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getPaymentMethod:
- operation:
- $ref: '#/paths/~1account~1payment-methods~1{paymentMethodId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deletePaymentMethod:
- operation:
- $ref: '#/paths/~1account~1payment-methods~1{paymentMethodId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- makePaymentMethodDefault:
- operation:
- $ref: '#/paths/~1account~1payment-methods~1{paymentMethodId}~1make-default/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/payment_methods/methods/getPaymentMethods'
- - $ref: '#/components/x-stackQL-resources/payment_methods/methods/getPaymentMethod'
- insert:
- - $ref: '#/components/x-stackQL-resources/payment_methods/methods/createPaymentMethod'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/payment_methods/methods/deletePaymentMethod'
- payments:
- id: linode.account.payments
- name: payments
- title: Payments
- methods:
- getPayments:
- operation:
- $ref: '#/paths/~1account~1payments/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getPayments:
- operation:
- $ref: '#/paths/~1account~1payments/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createPayment:
- operation:
- $ref: '#/paths/~1account~1payments/post'
- response:
- mediaType: application/json
- openAPIDocKey: '202'
- getPayment:
- operation:
- $ref: '#/paths/~1account~1payments~1{paymentId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getPayment:
- operation:
- $ref: '#/paths/~1account~1payments~1{paymentId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/payments/methods/getPayments'
- - $ref: '#/components/x-stackQL-resources/payments/methods/getPayment'
- insert:
- - $ref: '#/components/x-stackQL-resources/payments/methods/createPayment'
- update: []
- delete: []
- payments_paypal:
- id: linode.account.payments_paypal
- name: payments_paypal
- title: Payments Paypal
- methods:
- createPayPalPayment:
- operation:
- $ref: '#/paths/~1account~1payments~1paypal/post'
- response:
- mediaType: application/json
- openAPIDocKey: '299'
- executePayPalPayment:
- operation:
- $ref: '#/paths/~1account~1payments~1paypal~1execute/post'
- response:
- mediaType: application/json
- openAPIDocKey: '299'
- sqlVerbs:
- select: []
- insert:
- - $ref: '#/components/x-stackQL-resources/payments_paypal/methods/createPayPalPayment'
- update: []
- delete: []
- promo_codes:
- id: linode.account.promo_codes
- name: promo_codes
- title: Promo Codes
- methods:
- createPromoCredit:
- operation:
- $ref: '#/paths/~1account~1promo-codes/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select: []
- insert:
- - $ref: '#/components/x-stackQL-resources/promo_codes/methods/createPromoCredit'
- update: []
- delete: []
- service_transfers:
- id: linode.account.service_transfers
- name: service_transfers
- title: Service Transfers
- methods:
- getServiceTransfers:
- operation:
- $ref: '#/paths/~1account~1service-transfers/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getServiceTransfers:
- operation:
- $ref: '#/paths/~1account~1service-transfers/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createServiceTransfer:
- operation:
- $ref: '#/paths/~1account~1service-transfers/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getServiceTransfer:
- operation:
- $ref: '#/paths/~1account~1service-transfers~1{token}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getServiceTransfer:
- operation:
- $ref: '#/paths/~1account~1service-transfers~1{token}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteServiceTransfer:
- operation:
- $ref: '#/paths/~1account~1service-transfers~1{token}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- acceptServiceTransfer:
- operation:
- $ref: '#/paths/~1account~1service-transfers~1{token}~1accept/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/service_transfers/methods/getServiceTransfers'
- - $ref: '#/components/x-stackQL-resources/service_transfers/methods/getServiceTransfer'
- insert:
- - $ref: '#/components/x-stackQL-resources/service_transfers/methods/createServiceTransfer'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/service_transfers/methods/deleteServiceTransfer'
- settings:
- id: linode.account.settings
- name: settings
- title: Settings
- methods:
- getAccountSettings:
- operation:
- $ref: '#/paths/~1account~1settings/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getAccountSettings:
- operation:
- $ref: '#/paths/~1account~1settings/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateAccountSettings:
- operation:
- $ref: '#/paths/~1account~1settings/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- enableAccountManaged:
- operation:
- $ref: '#/paths/~1account~1settings~1managed-enable/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/settings/methods/getAccountSettings'
- insert: []
- update: []
- delete: []
- transfer:
- id: linode.account.transfer
- name: transfer
- title: Transfer
- methods:
- getTransfer:
- operation:
- $ref: '#/paths/~1account~1transfer/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getTransfer:
- operation:
- $ref: '#/paths/~1account~1transfer/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/transfer/methods/getTransfer'
- insert: []
- update: []
- delete: []
- users:
- id: linode.account.users
- name: users
- title: Users
- methods:
- getUsers:
- operation:
- $ref: '#/paths/~1account~1users/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getUsers:
- operation:
- $ref: '#/paths/~1account~1users/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createUser:
- operation:
- $ref: '#/paths/~1account~1users/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getUser:
- operation:
- $ref: '#/paths/~1account~1users~1{username}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getUser:
- operation:
- $ref: '#/paths/~1account~1users~1{username}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateUser:
- operation:
- $ref: '#/paths/~1account~1users~1{username}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteUser:
- operation:
- $ref: '#/paths/~1account~1users~1{username}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getUserGrants:
- operation:
- $ref: '#/paths/~1account~1users~1{username}~1grants/get'
- response:
- mediaType: application/json
- openAPIDocKey: '204'
- objectKey: $.data
- _getUserGrants:
- operation:
- $ref: '#/paths/~1account~1users~1{username}~1grants/get'
- response:
- mediaType: application/json
- openAPIDocKey: '204'
- updateUserGrants:
- operation:
- $ref: '#/paths/~1account~1users~1{username}~1grants/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/users/methods/getUsers'
- - $ref: '#/components/x-stackQL-resources/users/methods/getUser'
- insert:
- - $ref: '#/components/x-stackQL-resources/users/methods/createUser'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/users/methods/deleteUser'
-paths:
- /account:
+ - If outside the US or CA, this is the province associated
+ with the account's `address`.
+ example: PA
+ maxLength: 24
+ type: string
+ tax_id:
+ description: >-
+ The tax identification number (TIN) assigned to this
+ account, used for tax calculations. A TIN is set by the
+ national authorities in your `country`, based on your
+ `address_1`, and it may be named differently between
+ countries. Set to an empty string (`""`) if a TIN doesn't
+ apply or for countries that don't collect tax.
+
+
+ > 📘
+
+ >
+
+ > This value is externally validated. If the validation is
+ successful, a `tax_id_valid`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events)
+ is triggered. If unsuccessful, a `tax_id_invalid` event is
+ triggered and an error response is issued for an operation
+ that included it.
+ example: ATU99999999
+ maxLength: 25
+ type: string
+ zip:
+ description: >-
+ The zip code for this account's `address`.
+
+
+ - It can only contain ASCII letters, numbers, and dashes
+ (`-`).
+
+
+ - It can't contain more than nine letter or number
+ characters.
+ example: 19102-1234
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/account.yaml
+ x-example:
+ x-ref: ../examples/get-account-200.json
+ description: Returns a single account object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: Get your account
+ tags:
+ - Account
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account view
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ x-linode-grant: read_only
+ put:
+ description: >-
+ Updates contact and billing information related to your account. If you
+ exclude any properties from the request, the operation leaves them
+ unchanged.
+
+
+ > 📘
+
+ >
+
+ > When updating an account's `country` to `US`, you'll get an error if
+ the account's `zip` is not a valid US zip code.
+
+
+ **Parent and child accounts**
+
+
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, the following apply:
+
+
+ - You can't change the `company` for a parent account. Akamai uses this
+ value to set the name for a child account parent user (proxy user) on
+ any child account.
+
+
+ - Child account users can't run this operation. These users don't have
+ access to billing-related operations.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-account
+ operationId: put-account
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Account object.
+ properties:
+ active_promotions:
+ items:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Promotions generally offer a set amount of
+ credit that can be used toward your Linode services, and
+ the promotion expires after a specified date. As well, a
+ monthly cap on the promotional offer is set.
+
+
+ Simply put, a promotion offers a certain amount of credit
+ month, until either the expiration date is passed, or
+ until the total promotional credit is used, whichever
+ comes first.
+ properties:
+ credit_monthly_cap:
+ description: The amount available to spend per month.
+ example: '10.00'
+ type: string
+ x-linode-cli-display: 5
+ credit_remaining:
+ description: The total amount of credit left for this promotion.
+ example: '50.00'
+ type: string
+ x-linode-cli-display: 3
+ description:
+ description: A detailed description of this promotion.
+ example: >-
+ Receive up to $10 off your services every month for 6
+ months! Unused credits will expire once this promotion
+ period ends.
+ type: string
+ expire_dt:
+ description: When this promotion's credits expire.
+ example: '2018-01-31T23:59:59'
+ type: string
+ x-linode-cli-display: 2
+ image_url:
+ description: The location of an image for this promotion.
+ example: https://linode.com/10_a_month_promotion.svg
+ type: string
+ service_type:
+ description: The service to which this promotion applies.
+ enum:
+ - all
+ - backup
+ - blockstorage
+ - db_mysql
+ - ip_v4
+ - linode
+ - linode_disk
+ - linode_memory
+ - longview
+ - managed
+ - nodebalancer
+ - objectstorage
+ - placement_group
+ - transfer_tx
+ example: all
+ type: string
+ x-linode-cli-display: 1
+ summary:
+ description: Short details of this promotion.
+ example: $10 off your Linode a month!
+ type: string
+ x-linode-cli-display: 10
+ this_month_credit_remaining:
+ description: >-
+ The amount of credit left for this month for this
+ promotion.
+ example: '10.00'
+ type: string
+ x-linode-cli-display: 4
+ readOnly: true
+ type: object
+ x-akamai:
+ file-path: schemas/promotion.yaml
+ readOnly: true
+ type: array
+ active_since:
+ description: __Read-only__ The date and time the account was activated.
+ example: '{{active_since}}'
+ format: date-time
+ readOnly: true
+ type: string
+ address_1:
+ description: The first line of this account's billing address.
+ example: '{{address_1}}'
+ maxLength: 64
+ type: string
+ address_2:
+ description: The second line of this account's billing address.
+ example: '{{address_2}}'
+ maxLength: 64
+ type: string
+ balance:
+ description: __Read-only__ This account's balance, in US dollars.
+ example: '{{balance}}'
+ readOnly: true
+ type: number
+ x-linode-cli-display: 4
+ balance_uninvoiced:
+ description: >-
+ __Read-only__ 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: '{{balance_uninvoiced}}'
+ readOnly: true
+ type: number
+ x-linode-cli-display: 4
+ billing_source:
+ description: >-
+ __Read-only__ The source of service charges for this
+ account. Accounts that are associated with Akamai-specific
+ customers return a value of `akamai`. All other accounts
+ return a value of `linode`.
+ enum:
+ - akamai
+ - linode
+ example: '{{billing_source}}'
+ readOnly: true
+ type: string
+ capabilities:
+ description: >-
+ __Read-only__ The Akamai Cloud Computing services your
+ account supports.
+ example:
+ - Linodes
+ - NodeBalancers
+ - Block Storage
+ - Object Storage
+ - Placement Groups
+ - Block Storage Encryption
+ items:
+ type: string
+ readOnly: true
+ type: array
+ city:
+ description: The city for this account's `address`.
+ example: '{{city}}'
+ maxLength: 24
+ type: string
+ company:
+ description: >-
+ The company name assigned to this account. This value can't
+ include the characters, `<` `>` `(` `)` `"` `=`.
+ example: '{{company}}'
+ maxLength: 128
+ type: string
+ country:
+ description: >-
+ The two-letter ISO 3166 country code for this account's
+ `address`.
+ example: '{{country}}'
+ type: string
+ credit_card:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The credit card information assigned to this
+ account.
+ properties:
+ expiry:
+ description: The expiration month and year of the `credit_card`.
+ example: 11/2022
+ type: string
+ last_four:
+ description: >-
+ The last four digits of the `credit_card` assigned to
+ this account.
+ example: 1111
+ type: string
+ readOnly: true
+ type: object
+ email:
+ description: The email address of the person assigned to this account.
+ example: '{{email}}'
+ maxLength: 128
+ type: string
+ x-linode-cli-display: 3
+ euuid:
+ description: >-
+ __Read-only__ An external unique identifier for this
+ account.
+ example: '{{euuid}}'
+ format: uuid
+ readOnly: true
+ type: string
+ first_name:
+ description: >-
+ The first name of the person assigned to this account. This
+ value can't include the characters, `<` `>` `(` `)` `"` `=`.
+ example: '{{first_name}}'
+ maxLength: 50
+ type: string
+ x-linode-cli-display: 1
+ last_name:
+ description: >-
+ The last name of the person assigned to this account. This
+ value can't include the characters, `<` `>` `(` `)` `"` `=`.
+ example: '{{last_name}}'
+ maxLength: 50
+ type: string
+ x-linode-cli-display: 2
+ phone:
+ description: The phone number assigned to this account.
+ example: '{{phone}}'
+ maxLength: 32
+ type: string
+ state:
+ description: >-
+ The state or province for the `address` set for your
+ account, if applicable.
+
+
+ - If the `address` is in the United States (US) or Canada
+ (CA), this is the two-letter ISO 3166 code for the state or
+ province.
+
+
+ - If it's a US military `address`, this is the abbreviation
+ for that territory. This includes `AA` for Armed Forces
+ Americas (excluding Canada), `AE` for Armed Forces Africa,
+ Europe, Middle East, and Canada, or `AP` for Armed Forces
+ Pacific.
+
+
+ - If outside the US or CA, this is the province associated
+ with the account's `address`.
+ example: '{{state}}'
+ maxLength: 24
+ type: string
+ tax_id:
+ description: >-
+ The tax identification number (TIN) assigned to this
+ account, used for tax calculations. A TIN is set by the
+ national authorities in your `country`, based on your
+ `address_1`, and it may be named differently between
+ countries. Set to an empty string (`""`) if a TIN doesn't
+ apply or for countries that don't collect tax.
+
+
+ > 📘
+
+ >
+
+ > This value is externally validated. If the validation is
+ successful, a `tax_id_valid`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events)
+ is triggered. If unsuccessful, a `tax_id_invalid` event is
+ triggered and an error response is issued for an operation
+ that included it.
+ example: '{{tax_id}}'
+ maxLength: 25
+ type: string
+ zip:
+ description: >-
+ The zip code for this account's `address`.
+
+
+ - It can only contain ASCII letters, numbers, and dashes
+ (`-`).
+
+
+ - It can't contain more than nine letter or number
+ characters.
+ example: '{{zip}}'
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/account.yaml
+ x-example:
+ x-ref: ../examples/put-account.json
+ description: Updated contact and billing information.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Account object.
+ properties:
+ active_promotions:
+ items:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Promotions generally offer a set amount of
+ credit that can be used toward your Linode services, and
+ the promotion expires after a specified date. As well, a
+ monthly cap on the promotional offer is set.
+
+
+ Simply put, a promotion offers a certain amount of
+ credit month, until either the expiration date is
+ passed, or until the total promotional credit is used,
+ whichever comes first.
+ properties:
+ credit_monthly_cap:
+ description: The amount available to spend per month.
+ example: '10.00'
+ type: string
+ x-linode-cli-display: 5
+ credit_remaining:
+ description: The total amount of credit left for this promotion.
+ example: '50.00'
+ type: string
+ x-linode-cli-display: 3
+ description:
+ description: A detailed description of this promotion.
+ example: >-
+ Receive up to $10 off your services every month for
+ 6 months! Unused credits will expire once this
+ promotion period ends.
+ type: string
+ expire_dt:
+ description: When this promotion's credits expire.
+ example: '2018-01-31T23:59:59'
+ type: string
+ x-linode-cli-display: 2
+ image_url:
+ description: The location of an image for this promotion.
+ example: https://linode.com/10_a_month_promotion.svg
+ type: string
+ service_type:
+ description: The service to which this promotion applies.
+ enum:
+ - all
+ - backup
+ - blockstorage
+ - db_mysql
+ - ip_v4
+ - linode
+ - linode_disk
+ - linode_memory
+ - longview
+ - managed
+ - nodebalancer
+ - objectstorage
+ - placement_group
+ - transfer_tx
+ example: all
+ type: string
+ x-linode-cli-display: 1
+ summary:
+ description: Short details of this promotion.
+ example: $10 off your Linode a month!
+ type: string
+ x-linode-cli-display: 10
+ this_month_credit_remaining:
+ description: >-
+ The amount of credit left for this month for this
+ promotion.
+ example: '10.00'
+ type: string
+ x-linode-cli-display: 4
+ readOnly: true
+ type: object
+ x-akamai:
+ file-path: schemas/promotion.yaml
+ readOnly: true
+ type: array
+ active_since:
+ description: __Read-only__ The date and time the account was activated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ address_1:
+ description: The first line of this account's billing address.
+ example: 123 Main Street
+ maxLength: 64
+ type: string
+ address_2:
+ description: The second line of this account's billing address.
+ example: Suite A
+ maxLength: 64
+ type: string
+ balance:
+ description: __Read-only__ This account's balance, in US dollars.
+ example: 200
+ readOnly: true
+ type: number
+ x-linode-cli-display: 4
+ balance_uninvoiced:
+ description: >-
+ __Read-only__ 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
+ readOnly: true
+ type: number
+ x-linode-cli-display: 4
+ billing_source:
+ description: >-
+ __Read-only__ The source of service charges for this
+ account. Accounts that are associated with Akamai-specific
+ customers return a value of `akamai`. All other accounts
+ return a value of `linode`.
+ enum:
+ - akamai
+ - linode
+ example: akamai
+ readOnly: true
+ type: string
+ capabilities:
+ description: >-
+ __Read-only__ The Akamai Cloud Computing services your
+ account supports.
+ example:
+ - Linodes
+ - NodeBalancers
+ - Block Storage
+ - Object Storage
+ - Placement Groups
+ - Block Storage Encryption
+ items:
+ type: string
+ readOnly: true
+ type: array
+ city:
+ description: The city for this account's `address`.
+ example: Philadelphia
+ maxLength: 24
+ type: string
+ company:
+ description: >-
+ The company name assigned to this account. This value
+ can't include the characters, `<` `>` `(` `)` `"` `=`.
+ example: Linode LLC
+ maxLength: 128
+ type: string
+ country:
+ description: >-
+ The two-letter ISO 3166 country code for this account's
+ `address`.
+ example: US
+ type: string
+ credit_card:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The credit card information assigned to this
+ account.
+ properties:
+ expiry:
+ description: The expiration month and year of the `credit_card`.
+ example: 11/2022
+ type: string
+ last_four:
+ description: >-
+ The last four digits of the `credit_card` assigned to
+ this account.
+ example: 1111
+ type: string
+ readOnly: true
+ type: object
+ email:
+ description: The email address of the person assigned to this account.
+ example: john.smith@linode.com
+ maxLength: 128
+ type: string
+ x-linode-cli-display: 3
+ euuid:
+ description: >-
+ __Read-only__ An external unique identifier for this
+ account.
+ example: E1AF5EEC-526F-487D-B317EBEB34C87D71
+ format: uuid
+ readOnly: true
+ type: string
+ first_name:
+ description: >-
+ The first name of the person assigned to this account.
+ This value can't include the characters, `<` `>` `(` `)`
+ `"` `=`.
+ example: John
+ maxLength: 50
+ type: string
+ x-linode-cli-display: 1
+ last_name:
+ description: >-
+ The last name of the person assigned to this account. This
+ value can't include the characters, `<` `>` `(` `)` `"`
+ `=`.
+ example: Smith
+ maxLength: 50
+ type: string
+ x-linode-cli-display: 2
+ phone:
+ description: The phone number assigned to this account.
+ example: 215-555-1212
+ maxLength: 32
+ type: string
+ state:
+ description: >-
+ The state or province for the `address` set for your
+ account, if applicable.
+
+
+ - If the `address` is in the United States (US) or Canada
+ (CA), this is the two-letter ISO 3166 code for the state
+ or province.
+
+
+ - If it's a US military `address`, this is the
+ abbreviation for that territory. This includes `AA` for
+ Armed Forces Americas (excluding Canada), `AE` for Armed
+ Forces Africa, Europe, Middle East, and Canada, or `AP`
+ for Armed Forces Pacific.
+
+
+ - If outside the US or CA, this is the province associated
+ with the account's `address`.
+ example: PA
+ maxLength: 24
+ type: string
+ tax_id:
+ description: >-
+ The tax identification number (TIN) assigned to this
+ account, used for tax calculations. A TIN is set by the
+ national authorities in your `country`, based on your
+ `address_1`, and it may be named differently between
+ countries. Set to an empty string (`""`) if a TIN doesn't
+ apply or for countries that don't collect tax.
+
+
+ > 📘
+
+ >
+
+ > This value is externally validated. If the validation is
+ successful, a `tax_id_valid`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events)
+ is triggered. If unsuccessful, a `tax_id_invalid` event is
+ triggered and an error response is issued for an operation
+ that included it.
+ example: ATU99999999
+ maxLength: 25
+ type: string
+ zip:
+ description: >-
+ The zip code for this account's `address`.
+
+
+ - It can only contain ASCII letters, numbers, and dashes
+ (`-`).
+
+
+ - It can't contain more than nine letter or number
+ characters.
+ example: 19102-1234
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/account.yaml
+ x-example:
+ x-ref: ../examples/get-account-200.json
+ description: The updated account.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Update your account
+ tags:
+ - Account
+ x-akamai:
+ tabs:
+ - syntax: |-
+ 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 \
+ --phone 555-555-1212 \
+ --state PA \
+ --tax_id ATU99999999 \
+ --zip 19102
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update
+ x-linode-grant: read_write
+ parameters: []
+ x-akamai:
+ file-path: paths/account.yaml
+ path-info: /{apiVersion}/account
+ x-linode-cli-command: account
+ /account/agreements:
+ post:
+ description: >-
+ Accept required agreements by setting them to `true`. This remains until
+ the content of the agreement changes. If it does, you need to run this
+ operation again to accept it. If you set this to `false`, the API
+ rejects the request and you need to open a [support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) to
+ reset the agreement. Omitted agreements are left unchanged. __OAuth
+ scopes__.
+
+ ```
+ account:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-account-agreements
+ operationId: post-account-agreements
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ Acknowledgment status for agreements on your account. When
+ acknowledging any agreements, set them to `true` and omit any
+ remainders.
+ properties:
+ billing_agreement:
+ description: >-
+ Certain regions require that you share your tax
+ identification number (TIN) with Akamai. When you do, you
+ need to acknowledge Akamai's [privacy
+ statement](https://www.akamai.com/legal/privacy-statement)
+ agreement, in regards to its protection. When set to `true`,
+ you've acknowledged this agreement.
+ example: '{{billing_agreement}}'
+ type: boolean
+ eu_model:
+ description: >-
+ The acknowledgement status for the [cross-border data
+ transfer](https://www.akamai.com/legal/compliance/privacy-trust-center/cross-border-data-transfer-statement)
+ agreement.
+ example: '{{eu_model}}'
+ type: boolean
+ master_service_agreement:
+ description: >-
+ The acknowledgement status for Akamai's [master service
+ agreement](https://www.linode.com/legal-msa/).
+ example: '{{master_service_agreement}}'
+ type: boolean
+ privacy_policy:
+ description: >-
+ The acknowledgement status for Akamai's [privacy
+ statement](https://www.akamai.com/legal/privacy-statement).
+ example: '{{privacy_policy}}'
+ type: boolean
+ type: object
+ x-akamai:
+ file-path: schemas/agreements.yaml
+ x-example:
+ x-ref: ../examples/post-agreements.json
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-account-agreements-200.json
+ description: Agreements updated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Acknowledge agreements
+ tags:
+ - Account agreements
+ x-akamai:
+ tabs:
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: post-agreements
+ x-linode-cli-skip: true
+ x-linode-grant: unrestricted only
+ get:
+ description: >-
+ Returns all agreements and their acceptance status for your account.
+ __OAuth scopes__.
+
+ ```
+ account:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-account-agreements
+ operationId: get-account-agreements
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ Acknowledgment status for agreements on your account. When
+ acknowledging any agreements, set them to `true` and omit any
+ remainders.
+ properties:
+ billing_agreement:
+ description: >-
+ Certain regions require that you share your tax
+ identification number (TIN) with Akamai. When you do, you
+ need to acknowledge Akamai's [privacy
+ statement](https://www.akamai.com/legal/privacy-statement)
+ agreement, in regards to its protection. When set to
+ `true`, you've acknowledged this agreement.
+ type: boolean
+ eu_model:
+ description: >-
+ The acknowledgement status for the [cross-border data
+ transfer](https://www.akamai.com/legal/compliance/privacy-trust-center/cross-border-data-transfer-statement)
+ agreement.
+ example: true
+ type: boolean
+ master_service_agreement:
+ description: >-
+ The acknowledgement status for Akamai's [master service
+ agreement](https://www.linode.com/legal-msa/).
+ example: true
+ type: boolean
+ privacy_policy:
+ description: >-
+ The acknowledgement status for Akamai's [privacy
+ statement](https://www.akamai.com/legal/privacy-statement).
+ example: true
+ type: boolean
+ type: object
+ x-akamai:
+ file-path: schemas/agreements.yaml
+ x-example:
+ x-ref: ../examples/get-acceptance-agreement-200.json
+ description: The status of each acceptance agreement for your account.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List agreements
+ tags:
+ - Account agreements
+ x-akamai:
+ tabs:
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: agreements
+ x-linode-cli-skip: true
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/account-agreements.yaml
+ path-info: /{apiVersion}/account/agreements
+ x-linode-cli-command: agreements
+ /account/availability:
+ get:
+ description: >-
+ Returns a paginated list of the services available to you, for all
+ Linode regions.
+
+
+ > 📘
+
+ >
+
+ > Only authorized users can run this operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-availability
+ operationId: get-availability
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: Account Service Availability object.
+ properties:
+ available:
+ description: >-
+ __Read-only__ A list of services _available_ to
+ your account in the `region`.
+ example:
+ - Linodes
+ - NodeBalancers
+ items:
+ type: string
+ readOnly: true
+ type: array
+ region:
+ description: >-
+ __Read-only__ The Akamai cloud computing data
+ center (region), represented by a slug value.
+ You can view a full list of regions and their
+ associated slugs with the [List
+ regions](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ operation.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ unavailable:
+ description: >-
+ __Read-only__ A list of services _unavailable_
+ to your account in the `region`.
+ example:
+ - Kubernetes
+ - Block Storage
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-linode-cli-display: 3
+ type: object
+ x-akamai:
+ file-path: schemas/account-availability.yaml
+ type: array
+ type: object
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ x-akamai:
+ file-path: schemas/added-get-availability-200.yaml
+ x-example:
+ x-ref: ../examples/get-availability-200.json
+ description: List of regions and the services available in each.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List available services
+ tags:
+ - Account availability
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account get-availability
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: get-availability
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/account-availability.yaml
+ path-info: /{apiVersion}/account/availability
+ x-linode-cli-command: account
+ /account/availability/{id}:
+ get:
+ description: >-
+ View the available services for your account, in a specific region.
+
+
+ > 📘
+
+ >
+
+ > Only account users with _unrestricted_ access can run this operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-account-availability
+ operationId: get-account-availability
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Account Service Availability object.
+ properties:
+ available:
+ description: >-
+ __Read-only__ A list of services _available_ to your
+ account in the `region`.
+ example:
+ - Linodes
+ - NodeBalancers
+ items:
+ type: string
+ readOnly: true
+ type: array
+ region:
+ description: >-
+ __Read-only__ The Akamai cloud computing data center
+ (region), represented by a slug value. You can view a full
+ list of regions and their associated slugs with the [List
+ regions](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ operation.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ unavailable:
+ description: >-
+ __Read-only__ A list of services _unavailable_ to your
+ account in the `region`.
+ example:
+ - Kubernetes
+ - Block Storage
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-linode-cli-display: 3
+ type: object
+ x-akamai:
+ file-path: schemas/account-availability.yaml
+ x-example:
+ x-ref: ../examples/get-account-availability-200.json
+ description: The services available in the specified region.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: Get a region's service availability
+ tags:
+ - Account
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account get-account-availability us-east
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: get-account-availability
+ x-linode-grant: read_only
+ parameters:
+ - description: >-
+ The slug for the applicable data center. Run the [List
+ regions](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ operation to view the slug for each data center.
+ example: '{{id}}'
+ in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/id-path.yaml
+ x-akamai:
+ file-path: paths/data-center.yaml
+ path-info: /{apiVersion}/account/availability/{id}
+ x-linode-cli-command: account
+ /account/betas:
+ post:
+ description: >-
+ Enroll your Account in an active Beta Program.
+
+
+ Only unrestricted Users can access this operation.
+
+
+ To view active Beta Programs, run the [List beta
+ programs](https://techdocs.akamai.com/linode-api/reference/get-beta-programs)
+ operation.
+
+
+ Active Beta Programs may have a limited number of enrollments. If a Beta
+ Program has reached is maximum number of enrollments, an error is
+ returned even though the request is successful.
+
+
+ Beta Programs with `"greenlight_only": true` can only be enrolled by
+ Accounts that participate in the
+ [Greenlight](https://www.linode.com/green-light/) program.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-beta-program
+ operationId: post-beta-program
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: The Beta Program ID to enroll in for your Account.
+ properties:
+ id:
+ description: The unique identifier of the Beta Program.
+ example: '{{id}}'
+ type: string
+ x-linode-cli-display: 1
+ required:
+ - id
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-beta-program.yaml
+ x-example:
+ x-ref: ../examples/post-beta-program.json
+ description: Updated information for the Managed MySQL Database.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-beta-program-200.json
+ description: Enrollment request successful.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Enroll in a Beta program
+ tags:
+ - Beta programs
+ x-akamai:
+ tabs:
+ - syntax: linode-cli betas enroll --id example_open
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: enroll
+ x-linode-grant: unrestricted only
+ get:
+ description: >-
+ Display all enrolled Beta Programs for your Account. Includes inactive
+ as well as active Beta Programs.
+
+
+ Only unrestricted Users can access this operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-enrolled-beta-programs
+ operationId: get-enrolled-beta-programs
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - description: This is an open public beta for an example feature.
+ ended: null
+ enrolled: '2023-09-11T00:00:00'
+ id: example_open
+ label: Example Open Beta
+ started: '2023-07-11T00:00:00'
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ An object representing an enrolled Beta Program for
+ the Account.
+ properties:
+ description:
+ description: >-
+ __Read-only__ Additional details regarding the
+ Beta Program.
+ example: >-
+ This is an open public beta for an example
+ feature.
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ ended:
+ description: >-
+ __Filterable__, __Read-only__ The date-time that
+ the Beta Program ended.
+
+
+ `null` indicates that the Beta Program is
+ ongoing.
+ example: null
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ enrolled:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of
+ Account enrollment to the Beta Program.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ id:
+ description: The unique identifier of the Beta Program.
+ example: example_open
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__, __Read-only__ The name of the
+ Beta Program.
+ example: Example Open Beta
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ started:
+ description: >-
+ __Filterable__, __Read-only__ The start
+ date-time of the Beta Program.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/beta-program-enrolled.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-enrolled-beta-programs-200.yaml
+ description: >-
+ Returns a paginated list of all enrolled Beta Program objects for
+ the Account.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List enrolled Beta programs
+ tags:
+ - Beta programs
+ x-akamai:
+ tabs:
+ - syntax: linode-cli betas enrolled
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: enrolled
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/account-betas.yaml
+ path-info: /{apiVersion}/account/betas
+ x-linode-cli-command: betas
+ /account/betas/{betaId}:
+ get:
+ description: >-
+ Display an enrolled Beta Program for your Account. The Beta Program may
+ be inactive.
+
+
+ Only unrestricted Users can access this operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-enrolled-beta-program
+ operationId: get-enrolled-beta-program
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ An object representing an enrolled Beta Program for the
+ Account.
+ properties:
+ description:
+ description: >-
+ __Read-only__ Additional details regarding the Beta
+ Program.
+ example: This is an open public beta for an example feature.
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ ended:
+ description: >-
+ __Filterable__, __Read-only__ The date-time that the Beta
+ Program ended.
+
+
+ `null` indicates that the Beta Program is ongoing.
+ example: null
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ enrolled:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of Account
+ enrollment to the Beta Program.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ id:
+ description: The unique identifier of the Beta Program.
+ example: example_open
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__, __Read-only__ The name of the Beta
+ Program.
+ example: Example Open Beta
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ started:
+ description: >-
+ __Filterable__, __Read-only__ The start date-time of the
+ Beta Program.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/beta-program-enrolled.yaml
+ x-example:
+ x-ref: ../examples/get-enrolled-beta-program-200.json
+ description: Returns an enrolled Beta Program object for the Account.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: Get an enrolled Beta program
+ tags:
+ - Beta programs
+ x-akamai:
+ tabs:
+ - syntax: linode-cli betas enrolled-view $betaId
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: enrolled-view
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The ID of the Beta Program.
+ example: '{{betaId}}'
+ in: path
+ name: betaId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/beta-id.yaml
+ x-akamai:
+ file-path: paths/account-beta.yaml
+ path-info: /{apiVersion}/account/betas/{betaId}
+ x-linode-cli-command: betas
+ /account/cancel:
+ post:
+ description: >-
+ Deletes an active account. Akamai attempts to charge the credit card on
+ file for any remaining balance. An error occurs if this charge fails.
+
+
+ > 🚧
+
+ >
+
+ > - This operation permanently deletes your account and it _can't_ be
+ recovered. Also, there is no warning prompt after you execute this
+ operation.
+
+ >
+
+ > - Only account users with _unrestricted_ access can run this
+ operation.
+
+
+ __Parent and child accounts__
+
+
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, the following apply:
+
+
+ - A child account user can't remove a child account.
+
+
+ - You can't remove a parent account if it has an active child account.
+
+
+ - You need to work with your Akamai account team to dissolve any
+ parent-child account relationships before you can fully remove a child
+ or parent account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-cancel-account
+ operationId: post-cancel-account
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ comments:
+ description: >-
+ Any reason for cancelling the account, and any other
+ comments you might have about your Linode service.
+ example: '{{comments}}'
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-cancel-account.yaml
+ x-example:
+ x-ref: ../examples/post-cancel-account.json
+ description: >-
+ Supply a comment stating the reason that you are cancelling your
+ account.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ example:
+ survey_link: https://alinktothesurvey.com
+ properties:
+ survey_link:
+ description: A link to Linode's exit survey.
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-cancel-account-200.yaml
+ x-example:
+ x-ref: ../examples/post-cancel-account-200.json
+ description: Account canceled.
+ '409':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ properties:
+ reason:
+ description: >-
+ A string explaining that the account could not be
+ canceled because there is an outstanding balance on
+ the account that must be paid first.
+ example: >-
+ We were unable to charge your credit card for
+ services rendered. We cannot cancel this account
+ until the balance has been paid.
+ type: string
+ type: object
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-cancel-account-409.yaml
+ x-example:
+ x-ref: ../examples/tbd.json
+ description: Could not charge the credit card on file.
+ x-akamai:
+ file-path: errors/409.yaml
+ '504':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ properties:
+ reason:
+ description: >-
+ A string explaining that the account is taking
+ longer to close than expected.
+ example: >-
+ Cancellation is taking longer than expected. It may
+ have been successful. Contact customer support to
+ confirm.
+ type: string
+ type: object
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-cancel-account-504.yaml
+ x-example:
+ x-ref: ../examples/tbd.json
+ description: Account is taking longer than expected to cancel.
+ x-akamai:
+ file-path: errors/504-account-cancel.yaml
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Delete your account
+ tags:
+ - Account
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli account cancel \
+ --comments "I'm consolidating my accounts"
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: cancel
+ x-linode-grant: read_write
+ parameters: []
+ x-akamai:
+ file-path: paths/account-cancel.yaml
+ path-info: /{apiVersion}/account/cancel
+ x-linode-cli-command: account
+ /account/child-accounts:
+ get:
+ description: >-
+ Returns a paginated list of basic information for the child accounts
+ that exist for your parent account. See [Parent and Child Accounts for
+ Akamai
+ Partners](https://www.linode.com/docs/guides/parent-child-accounts/) for
+ details on these accounts.
+
+
+ > 📘
+
+ >
+
+ > This operation can only be accessed by an unrestricted parent user, or
+ restricted parent user with the `child_account_access` grant.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-child-accounts
+ operationId: get-child-accounts
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: Child account object.
+ properties:
+ active_since:
+ description: >-
+ __Read-only__ The activation date and time for the
+ child account.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ address_1:
+ description: >-
+ __Filterable__ First line of this child account's
+ billing address.
+ example: 123 Main Street
+ maxLength: 64
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ address_2:
+ description: >-
+ __Filterable__ Second line of this child account's
+ billing address, if applicable.
+ example: Suite A
+ maxLength: 64
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ balance:
+ description: >-
+ __Read-only__ This child account's balance, in US
+ dollars.
+ example: 200
+ readOnly: true
+ type: number
+ x-linode-cli-display: 4
+ balance_uninvoiced:
+ description: >-
+ __Read-only__ This child 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
+ readOnly: true
+ type: number
+ x-linode-cli-display: 4
+ billing_source:
+ description: >-
+ __Read-only__ The source of service charges for this
+ account, as determined by its relationship with
+ Akamai. The API returns a value of `external` to
+ describe a child account in a parent-child account
+ environment.
+ enum:
+ - external
+ example: external
+ readOnly: true
+ type: string
+ capabilities:
+ description: >-
+ __Read-only__ A list of the capabilities the child
+ account supports.
+ example:
+ - Linodes
+ - NodeBalancers
+ - Block Storage
+ - Object Storage
+ items:
+ type: string
+ readOnly: true
+ type: array
+ city:
+ description: >-
+ __Filterable__ The city for this child account's
+ billing address.
+ example: San Diego
+ maxLength: 24
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ company:
+ description: >-
+ __Filterable__ The company name for the owner of
+ this child account. It can't include any of these
+ characters: `<` `>` `(` `)` `"` `=`. You can't
+ change this value yourself. We use it to create the
+ proxy users that a parent account uses to access a
+ child account. Talk to your account team if you need
+ to change this value.
+ example: Acme
+ maxLength: 128
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ country:
+ description: >-
+ __Filterable__ The two-letter ISO 3166 country code
+ for this child account's billing address.
+ example: US
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ credit_card:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information for the credit card you've
+ assigned to this child account.
+ properties:
+ expiry:
+ description: >-
+ The expiration month and year of the credit
+ card.
+ example: 11/2024
+ type: string
+ last_four:
+ description: The last four digits of the credit card.
+ example: 1111
+ type: string
+ readOnly: true
+ type: object
+ email:
+ description: >-
+ __Filterable__ The email address of the owner of
+ this child account.
+ example: john.smith@linode.com
+ maxLength: 128
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ euuid:
+ description: >-
+ __Read-only__ An external, unique identifier that
+ Akamai assigned to the child account.
+ example: A1BC2DEF-34GH-567I-J890KLMN12O34P56
+ format: uuid
+ readOnly: true
+ type: string
+ first_name:
+ description: >-
+ __Filterable__ The first name of the owner of this
+ child account. It can't include any of these
+ characters: `<` `>` `(` `)` `"` `=`.
+ example: John
+ maxLength: 50
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ last_name:
+ description: >-
+ __Filterable__ The last name of the owner of this
+ child account. It can't include any of these
+ characters: `<` `>` `(` `)` `"` `=`.
+ example: Smith
+ maxLength: 50
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ phone:
+ description: >-
+ __Filterable__ The phone number for the owner of
+ this child account.
+ example: 858-555-1212
+ maxLength: 32
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ state:
+ description: >-
+ __Filterable__ The state or province for the billing
+ address (`address_1` and `address_2, if
+ applicable`). If in the United States (US) or Canada
+ (CA), this is the two-letter ISO 3166 State or
+ Province code.
+
+
+ > 📘
+
+ >
+
+ > If this is a US military address, use state
+ abbreviations (AA, AE, AP).
+ example: CA
+ maxLength: 24
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ tax_id:
+ description: >-
+ The tax identification number for this child
+ account. Use this for tax calculations in some
+ countries. If you live in a country that doesn't
+ collect taxes, ensure this is an empty string
+ (`""`).
+ example: ATU99999999
+ maxLength: 25
+ type: string
+ zip:
+ description: >-
+ __Filterable__ The zip code of this Account's
+ billing address. The following restrictions apply:
+
+
+ - Can only contain ASCII letters, numbers, and
+ hyphens (`-`).
+
+ - Can't contain more than 9 letter or number
+ characters.
+ example: 92111-1234
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/child-account.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-child-accounts-200.yaml
+ x-example:
+ x-ref: ../examples/get-child-accounts-200.json
+ description: Returns child-level accounts.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - child_account:read_only
+ summary: List child accounts
+ tags:
+ - Child accounts
+ x-akamai:
+ tabs:
+ - syntax: linode-cli child-account list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: child_account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: child_account_access
+ parameters: []
+ x-akamai:
+ file-path: paths/child-accounts.yaml
+ path-info: /{apiVersion}/account/child-accounts
+ x-linode-cli-command: child-account
+ /account/child-accounts/{euuid}:
+ get:
+ description: >-
+ View a specific child account based on its `euuid`. See [Parent and
+ Child Accounts for Akamai
+ Partners](https://www.linode.com/docs/guides/parent-child-accounts/) for
+ details on these accounts.
+
+
+ > 📘
+
+ >
+
+ > This operation can only be accessed by an unrestricted user, or
+ restricted user with the `child_account_access` grant.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-child-account
+ operationId: get-child-account
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Child account object.
+ properties:
+ active_since:
+ description: >-
+ __Read-only__ The activation date and time for the child
+ account.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ address_1:
+ description: >-
+ __Filterable__ First line of this child account's billing
+ address.
+ example: 123 Main Street
+ maxLength: 64
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ address_2:
+ description: >-
+ __Filterable__ Second line of this child account's billing
+ address, if applicable.
+ example: Suite A
+ maxLength: 64
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ balance:
+ description: __Read-only__ This child account's balance, in US dollars.
+ example: 200
+ readOnly: true
+ type: number
+ x-linode-cli-display: 4
+ balance_uninvoiced:
+ description: >-
+ __Read-only__ This child 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
+ readOnly: true
+ type: number
+ x-linode-cli-display: 4
+ billing_source:
+ description: >-
+ __Read-only__ The source of service charges for this
+ account, as determined by its relationship with Akamai.
+ The API returns a value of `external` to describe a child
+ account in a parent-child account environment.
+ enum:
+ - external
+ example: external
+ readOnly: true
+ type: string
+ capabilities:
+ description: >-
+ __Read-only__ A list of the capabilities the child account
+ supports.
+ example:
+ - Linodes
+ - NodeBalancers
+ - Block Storage
+ - Object Storage
+ items:
+ type: string
+ readOnly: true
+ type: array
+ city:
+ description: >-
+ __Filterable__ The city for this child account's billing
+ address.
+ example: San Diego
+ maxLength: 24
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ company:
+ description: >-
+ __Filterable__ The company name for the owner of this
+ child account. It can't include any of these characters:
+ `<` `>` `(` `)` `"` `=`. You can't change this value
+ yourself. We use it to create the proxy users that a
+ parent account uses to access a child account. Talk to
+ your account team if you need to change this value.
+ example: Acme
+ maxLength: 128
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ country:
+ description: >-
+ __Filterable__ The two-letter ISO 3166 country code for
+ this child account's billing address.
+ example: US
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ credit_card:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information for the credit card you've
+ assigned to this child account.
+ properties:
+ expiry:
+ description: The expiration month and year of the credit card.
+ example: 11/2024
+ type: string
+ last_four:
+ description: The last four digits of the credit card.
+ example: 1111
+ type: string
+ readOnly: true
+ type: object
+ email:
+ description: >-
+ __Filterable__ The email address of the owner of this
+ child account.
+ example: john.smith@linode.com
+ maxLength: 128
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ euuid:
+ description: >-
+ __Read-only__ An external, unique identifier that Akamai
+ assigned to the child account.
+ example: A1BC2DEF-34GH-567I-J890KLMN12O34P56
+ format: uuid
+ readOnly: true
+ type: string
+ first_name:
+ description: >-
+ __Filterable__ The first name of the owner of this child
+ account. It can't include any of these characters: `<` `>`
+ `(` `)` `"` `=`.
+ example: John
+ maxLength: 50
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ last_name:
+ description: >-
+ __Filterable__ The last name of the owner of this child
+ account. It can't include any of these characters: `<` `>`
+ `(` `)` `"` `=`.
+ example: Smith
+ maxLength: 50
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ phone:
+ description: >-
+ __Filterable__ The phone number for the owner of this
+ child account.
+ example: 858-555-1212
+ maxLength: 32
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ state:
+ description: >-
+ __Filterable__ The state or province for the billing
+ address (`address_1` and `address_2, if applicable`). If
+ in the United States (US) or Canada (CA), this is the
+ two-letter ISO 3166 State or Province code.
+
+
+ > 📘
+
+ >
+
+ > If this is a US military address, use state
+ abbreviations (AA, AE, AP).
+ example: CA
+ maxLength: 24
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ tax_id:
+ description: >-
+ The tax identification number for this child account. Use
+ this for tax calculations in some countries. If you live
+ in a country that doesn't collect taxes, ensure this is an
+ empty string (`""`).
+ example: ATU99999999
+ maxLength: 25
+ type: string
+ zip:
+ description: >-
+ __Filterable__ The zip code of this Account's billing
+ address. The following restrictions apply:
+
+
+ - Can only contain ASCII letters, numbers, and hyphens
+ (`-`).
+
+ - Can't contain more than 9 letter or number characters.
+ example: 92111-1234
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/child-account.yaml
+ x-example:
+ x-ref: ../examples/get-child-account-200.json
+ description: Returns the child-level account for a specified `euuid`.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - child_account:read_only
+ summary: Get a child account
+ tags:
+ - Child accounts
+ x-akamai:
+ tabs:
+ - syntax: linode-cli child-account view A1BC2DEF-34GH-567I-J890KLMN12O34P56
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: child_account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - view
+ x-linode-grant: child_account_access
+ parameters:
+ - description: >-
+ The child account to look up. You can run the [List child
+ accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts)
+ operation to find the applicable account and store its `euuid`.
+ example: '{{euuid}}'
+ in: path
+ name: euuid
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/eeuid.yaml
+ x-akamai:
+ file-path: paths/child-account.yaml
+ path-info: /{apiVersion}/account/child-accounts/{euuid}
+ x-linode-cli-command: child-account
+ /account/child-accounts/{euuid}/token:
+ post:
+ description: >-
+ Create a short-lived bearer token for a parent user on a child account,
+ using the `euuid` of that child account. In the context of the API, a
+ parent user on a child account is referred to as a "proxy user." When
+ Akamai provisions your parent-child account environment, a proxy user is
+ automatically set in the child account. It follows a specific naming
+ convention:
+
+ _
+
+ > 📘
+
+ >
+
+ > These variables only use the first 15 and 16 characters of these
+ values, respectively.
+
+
+ The token lets a parent account run API operations through the proxy
+ user, as if they are a child user in the child account.
+
+
+ These points apply to the use of this operation:
+
+
+ - To create a token, a parent account user needs the
+ `child_account_access` grant. This lets them use the proxy user on the
+ child account. You can run [List a user's
+ grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ on a parent account user to check its `child_account_access` setting. To
+ add this access, you can
+ [update](https://techdocs.akamai.com/linode-api/reference/put-user-grants)
+ the parent account user.
+
+
+ - The created token inherits the permissions of the proxy user. It will
+ never have less.
+
+
+ - The API returns the raw token in the response. You can't get it again,
+ so be sure to store it.
+
+
+ Example workflow:
+
+
+ 1. [List child
+ accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts)
+ and store the `euuid` for the applicable one.
+
+ 2. Run this operation and store the `token` that's created for the proxy
+ user.
+
+ 3. As a parent account user with access to the proxy user in the child
+ account, use this `token` to authenticate API operations, as if you were
+ a child user.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-child-account-token
+ operationId: post-child-account-token
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ The token generated manually for a child account so its proxy
+ user can access the API and CLI without going through an OAuth
+ login.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date and time this token
+ was created.
+ example: '2024-05-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ expiry:
+ description: >-
+ __Read-only__ When this token expires. This is default set
+ to 15 minutes from the time of creation. Proxy user tokens
+ can't be renewed. After this time, Akamai revokes the
+ token and you need to generate a new one.
+ example: '2024-05-01T00:16:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ id:
+ description: >-
+ __Read-only__ The proxy user token's unique ID, which can
+ be used to revoke it.
+ example: 918
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of the token. The API
+ automatically sets this to `__`. It's
+ composed of the `username` for your parent account user,
+ the unique `uid` Akamai assigned to identify your user,
+ and the `time` the API generated the token. This is for
+ display purposes only, but you can use it to help track
+ how you're using each proxy user token.
+ example: parent1_1234_2024-05-01T00:01:01
+ maxLength: 100
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ scopes:
+ description: >-
+ __Read-only__ The scopes this token was created with.
+ Defaults to `*`. Proxy user tokens automatically inherit
+ all the permissions of the proxy user.
+ example: '*'
+ format: oauth-scopes
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ token:
+ description: >-
+ __Read-only__ The proxy user token that can be used to
+ access the API and CLI. After you
+ [create](https://techdocs.akamai.com/linode-api/reference/post-child-account-token)
+ a token, you can see the full token in the response. All
+ other operations that contain this token only show the
+ first 16 characters in their response.
+ example: abcdefghijklmnop
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/proxy-user-token.yaml
+ x-example:
+ x-ref: ../examples/post-child-account-token-200.json
+ description: Token created successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - child_account:read_write
+ summary: Create a proxy user token
+ tags:
+ - Child accounts
+ x-akamai:
+ tabs:
+ - syntax: >-
+ linode-cli child-account create
+ A1BC2DEF-34GH-567I-J890KLMN12O34P56
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: child_account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - create
+ x-linode-grant: child_account_access
+ parameters:
+ - description: >-
+ The child account to look up. You can run the [List child
+ accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts)
+ operation to find the applicable account and store its `euuid`.
+ example: '{{euuid}}'
+ in: path
+ name: euuid
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/eeuid.yaml
+ x-akamai:
+ file-path: paths/child-account-token.yaml
+ path-info: /{apiVersion}/account/child-accounts/{euuid}/token
+ x-linode-cli-command: child-account
+ /account/credit-card:
+ post:
+ deprecated: true
+ description: >-
+ __Deprecated__ Please run [Add a payment
+ method](https://techdocs.akamai.com/linode-api/reference/post-payment-method).
+
+
+ Adds a credit card Payment Method to your account and sets it as the
+ default method. __OAuth scopes__.
+
+ ```
+ account:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-credit-card
+ operationId: post-credit-card
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ An object representing the credit card information you have on
+ file with Linode to make Payments against your Account.
+ properties:
+ card_number:
+ description: Your credit card number. No spaces or hyphens (`-`) allowed.
+ example: '{{card_number}}'
+ format: digits
+ maxLength: 24
+ minLength: 14
+ type: string
+ cvv:
+ description: >-
+ CVV (Card Verification Value) of the credit card, typically
+ found on the back of the card.
+ example: '{{cvv}}'
+ format: digits
+ maxLength: 4
+ minLength: 3
+ type: string
+ expiry_month:
+ description: >-
+ A value from 1-12 representing the expiration month of your
+ credit card.
+
+ - 1 = January
+ - 2 = February
+ - 3 = March
+ - Etc.
+ example: '{{expiry_month}}'
+ maximum: 12
+ minimum: 1
+ type: integer
+ expiry_year:
+ 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: '{{expiry_year}}'
+ maxLength: 4
+ minLength: 4
+ type: integer
+ required:
+ - card_number
+ - expiry_month
+ - expiry_year
+ - cvv
+ type: object
+ x-akamai:
+ file-path: schemas/credit-card.yaml
+ x-example:
+ x-ref: ../examples/post-credit-card.json
+ description: Update the credit card information associated with your Account.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-credit-card-200.json
+ description: Credit Card updated.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Add or edit a credit card
+ tags:
+ - Payments
+ x-akamai:
+ status: DEPRECATED
+ tabs:
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update-card
+ x-linode-cli-skip: true
+ x-linode-grant: read_write
+ parameters: []
+ x-akamai:
+ file-path: paths/credit-card.yaml
+ path-info: /{apiVersion}/account/credit-card
+ x-linode-cli-command: account
+ /account/entity-transfers:
+ post:
+ deprecated: true
+ description: >-
+ __Deprecated__ Please run [Request a service
+ transfer](https://techdocs.akamai.com/linode-api/reference/post-service-transfer).
+ __OAuth scopes__.
+
+ ```
+ account:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-entity-transfer
+ operationId: post-entity-transfer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ entities:
+ additionalProperties: false
+ description: >-
+ A collection of the entities to include in this transfer
+ request, separated by type.
+ properties:
+ linodes:
+ description: >-
+ An array containing the IDs of each of the Linodes
+ included in this transfer.
+ example:
+ - 111
+ - 222
+ items:
+ type: integer
+ type: array
+ x-linode-cli-display: 5
+ type: object
+ required:
+ - entities
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-entity-transfer.yaml
+ x-example:
+ x-ref: ../examples/post-entity-transfer.json
+ description: The entities to include in this transfer request.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An object representing an Entity Transfer.
+ properties:
+ created:
+ description: When this transfer was created.
+ example: '2021-02-11T16:37:03'
+ format: date-time
+ type: string
+ entities:
+ additionalProperties: false
+ description: >-
+ A collection of the entities to include in this transfer
+ request, separated by type.
+ properties:
+ linodes:
+ description: >-
+ An array containing the IDs of each of the Linodes
+ included in this transfer.
+ example:
+ - 111
+ - 222
+ items:
+ type: integer
+ type: array
+ x-linode-cli-display: 5
+ type: object
+ expiry:
+ description: >-
+ When this transfer expires. Transfers will automatically
+ expire 24 hours after creation.
+ example: '2021-02-12T16:37:03'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ is_sender:
+ description: >-
+ __Filterable__ If the requesting account created this
+ transfer.
+ example: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ status:
+ description: >-
+ __Filterable__ The status of the transfer request:
+
+
+ `accepted`: The transfer has been accepted by another user
+ and is currently in progress. Transfers can take up to 3
+ hours to complete.
+
+ `canceled`: The transfer has been canceled by the sender.
+
+ `completed`: The transfer has completed successfully.
+
+ `failed`: The transfer has failed after initiation.
+
+ `pending`: The transfer is ready to be accepted.
+
+ `stale`: The transfer has exceeded its expiration date. It
+ can no longer be accepted or canceled.
+ enum:
+ - accepted
+ - canceled
+ - completed
+ - failed
+ - pending
+ - stale
+ example: pending
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ accepted: yellow
+ canceled: red
+ completed: green
+ default_: white
+ failed: red
+ pending: yellow
+ stale: red
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ token:
+ description: >-
+ The token used to identify and accept or cancel this
+ transfer.
+ example: 123E4567-E89B-12D3-A456-426614174000
+ format: uuid
+ type: string
+ x-linode-cli-display: 1
+ updated:
+ description: When this transfer was last updated.
+ example: '2021-02-11T16:37:03'
+ format: date-time
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/entity-transfer.yaml
+ x-example:
+ x-ref: ../examples/post-entity-transfer-200.json
+ description: Returns an Entity Transfer object for the request.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Create an entity transfer
+ tags:
+ - Entity transfers
+ x-akamai:
+ status: DEPRECATED
+ tabs:
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ x-linode-grant: unrestricted only
+ get:
+ deprecated: true
+ description: >-
+ __Deprecated__ Please run [List service
+ transfers](https://techdocs.akamai.com/linode-api/reference/get-service-transfers).
+ __OAuth scopes__.
+
+ ```
+ account:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-entity-transfers
+ operationId: get-entity-transfers
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: An object representing an Entity Transfer.
+ properties:
+ created:
+ description: When this transfer was created.
+ example: '2021-02-11T16:37:03'
+ format: date-time
+ type: string
+ entities:
+ additionalProperties: false
+ description: >-
+ A collection of the entities to include in this
+ transfer request, separated by type.
+ properties:
+ linodes:
+ description: >-
+ An array containing the IDs of each of the
+ Linodes included in this transfer.
+ example:
+ - 111
+ - 222
+ items:
+ type: integer
+ type: array
+ x-linode-cli-display: 5
+ type: object
+ expiry:
+ description: >-
+ When this transfer expires. Transfers will
+ automatically expire 24 hours after creation.
+ example: '2021-02-12T16:37:03'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ is_sender:
+ description: >-
+ __Filterable__ If the requesting account created
+ this transfer.
+ example: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ status:
+ description: >-
+ __Filterable__ The status of the transfer
+ request:
+
+
+ `accepted`: The transfer has been accepted by
+ another user and is currently in progress.
+ Transfers can take up to 3 hours to complete.
+
+ `canceled`: The transfer has been canceled by
+ the sender.
+
+ `completed`: The transfer has completed
+ successfully.
+
+ `failed`: The transfer has failed after
+ initiation.
+
+ `pending`: The transfer is ready to be accepted.
+
+ `stale`: The transfer has exceeded its
+ expiration date. It can no longer be accepted or
+ canceled.
+ enum:
+ - accepted
+ - canceled
+ - completed
+ - failed
+ - pending
+ - stale
+ example: pending
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ accepted: yellow
+ canceled: red
+ completed: green
+ default_: white
+ failed: red
+ pending: yellow
+ stale: red
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ token:
+ description: >-
+ The token used to identify and accept or cancel
+ this transfer.
+ example: 123E4567-E89B-12D3-A456-426614174000
+ format: uuid
+ type: string
+ x-linode-cli-display: 1
+ updated:
+ description: When this transfer was last updated.
+ example: '2021-02-11T16:37:03'
+ format: date-time
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/entity-transfer.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-entity-transfers-200.yaml
+ x-example:
+ x-ref: ../examples/get-entity-transfers-200.json
+ description: >-
+ Returns a paginated list of Entity Transfer objects containing the
+ details of all transfers that have been created and accepted by this
+ account.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List entity transfers
+ tags:
+ - Entity transfers
+ x-akamai:
+ status: DEPRECATED
+ tabs:
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/entity-transfers.yaml
+ path-info: /{apiVersion}/account/entity-transfers
+ /account/entity-transfers/{token}:
+ get:
+ deprecated: true
+ description: >-
+ __Deprecated__ Please run [Get a service transfer
+ request](https://techdocs.akamai.com/linode-api/reference/get-service-transfer).
+ __OAuth scopes__.
+
+ ```
+ account:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-entity-transfer
+ operationId: get-entity-transfer
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An object representing an Entity Transfer.
+ properties:
+ created:
+ description: When this transfer was created.
+ example: '2021-02-11T16:37:03'
+ format: date-time
+ type: string
+ entities:
+ additionalProperties: false
+ description: >-
+ A collection of the entities to include in this transfer
+ request, separated by type.
+ properties:
+ linodes:
+ description: >-
+ An array containing the IDs of each of the Linodes
+ included in this transfer.
+ example:
+ - 111
+ - 222
+ items:
+ type: integer
+ type: array
+ x-linode-cli-display: 5
+ type: object
+ expiry:
+ description: >-
+ When this transfer expires. Transfers will automatically
+ expire 24 hours after creation.
+ example: '2021-02-12T16:37:03'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ is_sender:
+ description: >-
+ __Filterable__ If the requesting account created this
+ transfer.
+ example: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ status:
+ description: >-
+ __Filterable__ The status of the transfer request:
+
+
+ `accepted`: The transfer has been accepted by another user
+ and is currently in progress. Transfers can take up to 3
+ hours to complete.
+
+ `canceled`: The transfer has been canceled by the sender.
+
+ `completed`: The transfer has completed successfully.
+
+ `failed`: The transfer has failed after initiation.
+
+ `pending`: The transfer is ready to be accepted.
+
+ `stale`: The transfer has exceeded its expiration date. It
+ can no longer be accepted or canceled.
+ enum:
+ - accepted
+ - canceled
+ - completed
+ - failed
+ - pending
+ - stale
+ example: pending
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ accepted: yellow
+ canceled: red
+ completed: green
+ default_: white
+ failed: red
+ pending: yellow
+ stale: red
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ token:
+ description: >-
+ The token used to identify and accept or cancel this
+ transfer.
+ example: 123E4567-E89B-12D3-A456-426614174000
+ format: uuid
+ type: string
+ x-linode-cli-display: 1
+ updated:
+ description: When this transfer was last updated.
+ example: '2021-02-11T16:37:03'
+ format: date-time
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/entity-transfer.yaml
+ x-example:
+ x-ref: ../examples/get-entity-transfer-200.json
+ description: >-
+ Returns an Entity Transfer object containing the details of the
+ transfer for the specified token.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: Get an entity transfer
+ tags:
+ - Entity transfers
+ x-akamai:
+ status: DEPRECATED
+ tabs:
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ x-linode-grant: unrestricted only
+ delete:
+ deprecated: true
+ description: >-
+ __Deprecated__ Please run [Cancel a service
+ transfer](https://techdocs.akamai.com/linode-api/reference/delete-service-transfer).
+ __OAuth scopes__.
+
+ ```
+ account:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-entity-transfer
+ operationId: delete-entity-transfer
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-entity-transfer-200.json
+ description: Entity Transfer canceled.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Cancel an entity transfer
+ tags:
+ - Entity transfers
+ x-akamai:
+ status: DEPRECATED
+ tabs:
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The UUID of the Entity Transfer.
+ example: '{{token}}'
+ in: path
+ name: token
+ required: true
+ schema:
+ format: uuid
+ type: string
+ x-akamai:
+ file-path: parameters/token-path-faf66b58.yaml
+ x-akamai:
+ file-path: paths/entity-transfer.yaml
+ path-info: /{apiVersion}/account/entity-transfers/{token}
+ /account/entity-transfers/{token}/accept:
+ post:
+ deprecated: true
+ description: >-
+ __Deprecated__ Please run [Accept a service
+ transfer](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer).
+ __OAuth scopes__.
+
+ ```
+ account:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-accept-entity-transfer
+ operationId: post-accept-entity-transfer
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-accept-entity-transfer-200.json
+ description: Entity Transfer accepted.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Accept an entity transfer
+ tags:
+ - Entity transfers
+ x-akamai:
+ status: DEPRECATED
+ tabs:
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The UUID of the Entity Transfer.
+ example: '{{token}}'
+ in: path
+ name: token
+ required: true
+ schema:
+ format: uuid
+ type: string
+ x-akamai:
+ file-path: parameters/token-path-faf66b58.yaml
+ x-akamai:
+ file-path: paths/entity-transfer-accept.yaml
+ path-info: /{apiVersion}/account/entity-transfers/{token}/accept
+ /account/events:
+ get:
+ description: >-
+ Returns a collection of event objects that represent actions you've
+ taken on your account, over the last 90 days. The events returned depend
+ on your user grants.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-events
+ operationId: get-events
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - action: ticket_create
+ created: '2018-01-01T00:01:01'
+ duration: 300.56
+ entity:
+ id: 11111
+ label: Problem booting my Linode
+ type: ticket
+ url: /v4/support/tickets/11111
+ id: 123
+ message: None
+ percent_complete: null
+ rate: null
+ read: true
+ secondary_entity:
+ id: linode/debian9
+ label: linode1234
+ type: linode
+ url: /v4/linode/instances/1234
+ seen: true
+ status: failed
+ time_remaining: null
+ username: adevi
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ properties:
+ action:
+ description: >-
+ __Filterable__ The action that caused this event.
+ New actions may be added in the future.
+ enum:
+ - account_agreement_eu_model
+ - account_promo_apply
+ - account_update
+ - account_settings_update
+ - backups_enable
+ - backups_cancel
+ - backups_restore
+ - community_question_reply
+ - community_like
+ - community_mention
+ - credit_card_updated
+ - database_create
+ - database_delete
+ - database_update
+ - database_failed
+ - database_degraded
+ - database_create_failed
+ - database_update_failed
+ - database_backup_create
+ - database_backup_restore
+ - database_backup_delete
+ - database_credentials_reset
+ - database_low_disk_space
+ - database_scale
+ - database_resize
+ - database_resize_create
+ - database_migrate
+ - database_upgrade
+ - database_suspend
+ - database_resume
+ - disk_create
+ - disk_delete
+ - disk_update
+ - disk_duplicate
+ - disk_imagize
+ - disk_resize
+ - dns_record_create
+ - dns_record_delete
+ - dns_record_update
+ - dns_zone_create
+ - dns_zone_delete
+ - dns_zone_import
+ - dns_zone_update
+ - entity_transfer_accept
+ - entity_transfer_accept_recipient
+ - entity_transfer_cancel
+ - entity_transfer_create
+ - entity_transfer_fail
+ - entity_transfer_stale
+ - firewall_apply
+ - firewall_create
+ - firewall_delete
+ - firewall_disable
+ - firewall_enable
+ - firewall_update
+ - firewall_device_add
+ - firewall_device_remove
+ - firewall_rules_update
+ - host_reboot
+ - image_delete
+ - image_update
+ - image_upload
+ - interface_create
+ - interface_delete
+ - interface_update
+ - ipaddress_update
+ - ipv6pool_add
+ - ipv6pool_delete
+ - lassie_reboot
+ - lish_boot
+ - linode_addip
+ - linode_boot
+ - linode_clone
+ - linode_create
+ - linode_delete
+ - linode_update
+ - linode_deleteip
+ - linode_kvmify
+ - linode_migrate
+ - linode_migrate_datacenter
+ - linode_migrate_datacenter_create
+ - linode_mutate
+ - linode_mutate_create
+ - linode_reboot
+ - linode_rebuild
+ - linode_resize
+ - linode_resize_create
+ - linode_resize_warm_create
+ - linode_shutdown
+ - linode_snapshot
+ - linode_config_create
+ - linode_config_delete
+ - linode_config_update
+ - lke_cluster_create
+ - lke_cluster_update
+ - lke_cluster_delete
+ - lke_cluster_recycle
+ - lke_cluster_regenerate
+ - lke_control_plane_acl_create
+ - lke_control_plane_acl_update
+ - lke_control_plane_acl_delete
+ - lke_node_create
+ - lke_node_delete
+ - lke_node_recycle
+ - lke_pool_create
+ - lke_pool_delete
+ - lke_pool_recycle
+ - lke_kubeconfig_regenerate
+ - lke_token_rotate
+ - longviewclient_create
+ - longviewclient_delete
+ - longviewclient_update
+ - managed_disabled
+ - managed_enabled
+ - managed_service_create
+ - managed_service_delete
+ - nodebalancer_create
+ - nodebalancer_delete
+ - nodebalancer_update
+ - nodebalancer_config_create
+ - nodebalancer_config_delete
+ - nodebalancer_config_update
+ - nodebalancer_node_create
+ - nodebalancer_node_delete
+ - nodebalancer_node_update
+ - oauth_client_create
+ - oauth_client_delete
+ - oauth_client_secret_reset
+ - oauth_client_update
+ - obj_access_key_create
+ - obj_access_key_delete
+ - obj_access_key_update
+ - password_reset
+ - payment_method_add
+ - payment_submitted
+ - placement_group_assign
+ - placement_group_became_compliant
+ - placement_group_became_non_compliant
+ - placement_group_create
+ - placement_group_delete
+ - placement_group_unassign
+ - placement_group_update
+ - profile_update
+ - stackscript_create
+ - stackscript_delete
+ - stackscript_update
+ - stackscript_publicize
+ - stackscript_revise
+ - subnet_create
+ - subnet_delete
+ - subnet_update
+ - tag_create
+ - tag_delete
+ - tag_update
+ - tax_id_valid
+ - tax_id_invalid
+ - tfa_disabled
+ - tfa_enabled
+ - ticket_attachment_upload
+ - ticket_create
+ - ticket_update
+ - token_create
+ - token_delete
+ - token_update
+ - user_create
+ - user_update
+ - user_delete
+ - user_ssh_key_add
+ - user_ssh_key_delete
+ - user_ssh_key_update
+ - vlan_attach
+ - vlan_detach
+ - volume_attach
+ - volume_clone
+ - volume_create
+ - volume_delete
+ - volume_update
+ - volume_detach
+ - volume_resize
+ - volume_migrate
+ - volume_migrate_scheduled
+ - vpc_create
+ - vpc_delete
+ - vpc_update
+ example: ticket_create
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ created:
+ description: __Filterable__ When the system created this event.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ duration:
+ description: >-
+ The number of seconds that it takes for the event to
+ complete.
+ example: 300.56
+ type: number
+ x-linode-cli-display: 7
+ entity:
+ additionalProperties: false
+ description: >-
+ Detailed information about the entity that triggered
+ this event.
+ properties:
+ id:
+ description: >-
+ __Filterable__ The unique identifier assigned to
+ the entity.
+
+
+ > 📘
+
+ >
+
+ > Consider these points when filtering by `id`:
+
+ >
+
+ > - The `disks` and `backups` entities use the
+ `id` of their parent Linode when filtering for
+ events.
+
+ >
+
+ > - The `account` and `profile` entities don't
+ have an `id`. To filter these entities, use the
+ `type` object instead.
+
+ >
+
+ > - The `tag` entity uses the tag's name as its
+ `id`. Set this value to the tag's name to
+ filter.
+ example: 11111
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ label:
+ description: >-
+ The name of the entity. The label may reflect
+ changes that occur with this event.
+ example: Problem booting my Linode
+ type: string
+ x-linode-cli-display: 5
+ type:
+ description: >-
+ __Filterable__ The type of entity that is being
+ referenced by the event.
+ enum:
+ - account
+ - backups
+ - community
+ - disks
+ - domain
+ - entity_transfer
+ - firewall
+ - image
+ - ipaddress
+ - linode
+ - longview
+ - loadbalancer
+ - managed_service
+ - nodebalancer
+ - oauth_client
+ - profile
+ - stackscript
+ - tag
+ - ticket
+ - token
+ - user
+ - user_ssh_key
+ - volume
+ example: ticket
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ url:
+ description: >-
+ The URL where you can access this event's
+ entity. If it's a relative URL, it's relative to
+ the domain where you retrieved the event.
+ example: /v4/support/tickets/11111
+ type: string
+ type: object
+ id:
+ description: __Filterable__ The unique ID of this event.
+ example: 123
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ message:
+ description: >-
+ Additional information about the event. This can be
+ a more detailed representation of an event that can
+ help you diagnose non-obvious failures.
+ example: None
+ nullable: true
+ type: string
+ x-linode-cli-display: 9
+ percent_complete:
+ description: >-
+ A percentage estimating the amount of time remaining
+ for an event. Returned as `null` for notification
+ events.
+ example: null
+ nullable: true
+ type: integer
+ rate:
+ description: >-
+ The rate of completion of the event. Only some
+ events return a `rate`, such as the `migration` and
+ `resize` events.
+ example: null
+ nullable: true
+ type: string
+ read:
+ description: >-
+ __Filterable__ If a user on your account has [marked
+ an event as
+ read](https://techdocs.akamai.com/linode-api/reference/post-event-read).
+ example: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ secondary_entity:
+ additionalProperties: false
+ description: >-
+ Detailed information about the event's secondary
+ entity, if applicable.
+ properties:
+ id:
+ description: The identifier for the secondary entity object.
+ example: linode/debian9
+ type: string
+ label:
+ description: The name of the secondary entity object.
+ example: linode1234
+ type: string
+ type:
+ description: >-
+ The type of secondary entity object that's being
+ referenced by the event.
+ example: linode
+ type: string
+ url:
+ description: >-
+ The URL where you can access this event's
+ secondary entity object. If it's a relative URL,
+ it's relative to the domain where you retrieved
+ the event.
+ example: /v4/linode/instances/1234
+ type: string
+ type: object
+ seen:
+ description: >-
+ If a user on your account has [marked an event as
+ seen](https://techdocs.akamai.com/linode-api/reference/post-event-seen).
+ example: true
+ type: boolean
+ status:
+ description: The current status of this event.
+ enum:
+ - failed
+ - finished
+ - notification
+ - scheduled
+ - started
+ type: string
+ x-linode-cli-color:
+ default_: white
+ failed: red
+ finished: green
+ started: yellow
+ x-linode-cli-display: 8
+ time_remaining:
+ description: >-
+ The estimated time remaining until the event
+ completes. This is only returned for some
+ in-progress migration events. Otherwise, the
+ `percent_complete` attribute indicates how long
+ until completion.
+ example: null
+ nullable: true
+ type: string
+ username:
+ description: The name of the user whose action caused the event.
+ example: exampleUser
+ nullable: true
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ type: array
+ page:
+ description: >-
+ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ type: integer
+ pages:
+ description: >-
+ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ type: integer
+ results:
+ description: The total number of results.
+ example: 1
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/events.yaml
+ description: Returns a paginated list of Event objects from the last 90 days.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - events:read_only
+ summary: List events
+ tags:
+ - Events
+ x-akamai:
+ tabs:
+ - syntax: linode-cli events list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: events:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/events.yaml
+ path-info: /{apiVersion}/account/events
+ x-linode-cli-command: events
+ /account/events/{eventId}:
+ get:
+ description: >-
+ Returns a single event object.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-event
+ operationId: get-event
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ action: ticket_create
+ created: '2018-01-01T00:01:01'
+ duration: 300.56
+ entity:
+ id: 11111
+ label: Problem booting my Linode
+ type: ticket
+ url: /v4/support/tickets/11111
+ id: 123
+ message: None
+ percent_complete: null
+ rate: null
+ read: true
+ secondary_entity:
+ id: linode/debian9
+ label: linode1234
+ type: linode
+ url: /v4/linode/instances/1234
+ seen: true
+ status: failed
+ time_remaining: null
+ username: hgildong
+ schema:
+ additionalProperties: false
+ description: >-
+ A specific event object. An event is an action taken against
+ an entity related to your account. For example, if you boot a
+ Linode, the system creates an event. The events returned
+ depend on your user grants.
+ properties:
+ action:
+ description: >-
+ __Read-only__ The action that caused this event. New
+ actions may be added in the future.
+ enum:
+ - account_agreement_eu_model
+ - account_promo_apply
+ - account_update
+ - account_settings_update
+ - backups_enable
+ - backups_cancel
+ - backups_restore
+ - community_question_reply
+ - community_like
+ - community_mention
+ - credit_card_updated
+ - database_create
+ - database_delete
+ - database_update
+ - database_failed
+ - database_degraded
+ - database_create_failed
+ - database_update_failed
+ - database_backup_create
+ - database_backup_restore
+ - database_backup_delete
+ - database_credentials_reset
+ - database_low_disk_space
+ - database_scale
+ - database_resize
+ - database_resize_create
+ - database_migrate
+ - database_upgrade
+ - database_suspend
+ - database_resume
+ - disk_create
+ - disk_delete
+ - disk_update
+ - disk_duplicate
+ - disk_imagize
+ - disk_resize
+ - dns_record_create
+ - dns_record_delete
+ - dns_record_update
+ - dns_zone_create
+ - dns_zone_delete
+ - dns_zone_import
+ - dns_zone_update
+ - entity_transfer_accept
+ - entity_transfer_accept_recipient
+ - entity_transfer_cancel
+ - entity_transfer_create
+ - entity_transfer_fail
+ - entity_transfer_stale
+ - firewall_apply
+ - firewall_create
+ - firewall_delete
+ - firewall_disable
+ - firewall_enable
+ - firewall_update
+ - firewall_device_add
+ - firewall_device_remove
+ - firewall_rules_update
+ - host_reboot
+ - image_delete
+ - image_update
+ - image_upload
+ - interface_create
+ - interface_delete
+ - interface_update
+ - ipaddress_update
+ - ipv6pool_add
+ - ipv6pool_delete
+ - lassie_reboot
+ - lish_boot
+ - linode_addip
+ - linode_boot
+ - linode_clone
+ - linode_create
+ - linode_delete
+ - linode_update
+ - linode_deleteip
+ - linode_kvmify
+ - linode_migrate
+ - linode_migrate_datacenter
+ - linode_migrate_datacenter_create
+ - linode_mutate
+ - linode_mutate_create
+ - linode_reboot
+ - linode_rebuild
+ - linode_resize
+ - linode_resize_create
+ - linode_resize_warm_create
+ - linode_shutdown
+ - linode_snapshot
+ - linode_config_create
+ - linode_config_delete
+ - linode_config_update
+ - lke_control_plane_acl_create
+ - lke_control_plane_acl_update
+ - lke_control_plane_acl_delete
+ - lke_cluster_create
+ - lke_cluster_update
+ - lke_cluster_delete
+ - lke_cluster_recycle
+ - lke_cluster_regenerate
+ - lke_node_create
+ - lke_node_delete
+ - lke_node_recycle
+ - lke_pool_create
+ - lke_pool_delete
+ - lke_pool_recycle
+ - lke_kubeconfig_regenerate
+ - lke_token_rotate
+ - longviewclient_create
+ - longviewclient_delete
+ - longviewclient_update
+ - managed_disabled
+ - managed_enabled
+ - managed_service_create
+ - managed_service_delete
+ - nodebalancer_create
+ - nodebalancer_delete
+ - nodebalancer_update
+ - nodebalancer_config_create
+ - nodebalancer_config_delete
+ - nodebalancer_config_update
+ - nodebalancer_node_create
+ - nodebalancer_node_delete
+ - nodebalancer_node_update
+ - oauth_client_create
+ - oauth_client_delete
+ - oauth_client_secret_reset
+ - oauth_client_update
+ - obj_access_key_create
+ - obj_access_key_delete
+ - obj_access_key_update
+ - password_reset
+ - payment_method_add
+ - payment_submitted
+ - placement_group_assign
+ - placement_group_became_compliant
+ - placement_group_became_non_compliant
+ - placement_group_create
+ - placement_group_delete
+ - placement_group_unassign
+ - placement_group_update
+ - profile_update
+ - stackscript_create
+ - stackscript_delete
+ - stackscript_update
+ - stackscript_publicize
+ - stackscript_revise
+ - subnet_create
+ - subnet_delete
+ - subnet_update
+ - tag_create
+ - tag_delete
+ - tag_update
+ - tax_id_valid
+ - tax_id_invalid
+ - tfa_disabled
+ - tfa_enabled
+ - ticket_attachment_upload
+ - ticket_create
+ - ticket_update
+ - token_create
+ - token_delete
+ - token_update
+ - user_create
+ - user_update
+ - user_delete
+ - user_ssh_key_add
+ - user_ssh_key_delete
+ - user_ssh_key_update
+ - vlan_attach
+ - vlan_detach
+ - volume_attach
+ - volume_clone
+ - volume_create
+ - volume_delete
+ - volume_update
+ - volume_detach
+ - volume_resize
+ - volume_migrate
+ - volume_migrate_scheduled
+ - vpc_create
+ - vpc_delete
+ - vpc_update
+ example: ticket_create
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ created:
+ description: __Read-only__ When the system created this event.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ duration:
+ description: >-
+ __Read-only__ The number of seconds that it takes for the
+ event to complete.
+ example: 300.56
+ readOnly: true
+ type: number
+ x-linode-cli-display: 7
+ entity:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Detailed information about the entity that
+ triggered this event.
+ properties:
+ id:
+ description: The unique identifier assigned to the entity.
+ example: 11111
+ type: integer
+ label:
+ description: >-
+ The name of the entity. The label may reflect changes
+ that occur with this event.
+ example: Problem booting my Linode
+ type: string
+ x-linode-cli-display: 5
+ type:
+ description: >-
+ __Read-only__ The type of entity that is being
+ referenced by the event.
+ enum:
+ - account
+ - backups
+ - community
+ - disks
+ - domain
+ - entity_transfer
+ - firewall
+ - image
+ - ipaddress
+ - linode
+ - longview
+ - loadbalancer
+ - managed_service
+ - nodebalancer
+ - oauth_client
+ - profile
+ - stackscript
+ - tag
+ - ticket
+ - token
+ - user
+ - user_ssh_key
+ - volume
+ example: ticket
+ readOnly: true
+ type: string
+ url:
+ description: >-
+ The URL where you can access this event's entity. If
+ it's a relative URL, it's relative to the domain where
+ you retrieved the event.
+ example: /v4/support/tickets/11111
+ type: string
+ readOnly: true
+ type: object
+ id:
+ description: __Read-only__ The unique ID of this event.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ message:
+ description: >-
+ Additional information about the event. This can be a more
+ detailed representation of an event that can help you
+ diagnose non-obvious failures.
+ example: None
+ nullable: true
+ type: string
+ x-linode-cli-display: 9
+ percent_complete:
+ description: >-
+ __Read-only__ A percentage estimating the amount of time
+ remaining for an event. Returned as `null` for
+ notification events.
+ example: null
+ nullable: true
+ readOnly: true
+ type: integer
+ rate:
+ description: >-
+ __Read-only__ The rate of completion of the event. Only
+ some events return a `rate`, such as the `migration` and
+ `resize` events.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ read:
+ description: >-
+ __Read-only__ If a user on your account has [marked an
+ event as
+ read](https://techdocs.akamai.com/linode-api/reference/post-event-read).
+ example: true
+ readOnly: true
+ type: boolean
+ secondary_entity:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Detailed information about the event's
+ secondary entity, if applicable.
+ properties:
+ id:
+ description: The identifier for the secondary entity object.
+ example: linode/debian9
+ type: string
+ label:
+ description: The name of the secondary entity object.
+ example: linode1234
+ type: string
+ type:
+ description: >-
+ __Read-only__ The type of secondary entity object
+ that's being referenced by the event.
+ example: linode
+ readOnly: true
+ type: string
+ url:
+ description: >-
+ The URL where you can access this event's secondary
+ entity object. If it's a relative URL, it's relative
+ to the domain where you retrieved the event.
+ example: /v4/linode/instances/1234
+ type: string
+ readOnly: true
+ type: object
+ seen:
+ description: >-
+ __Read-only__ If a user on your account has [marked an
+ event as
+ seen](https://techdocs.akamai.com/linode-api/reference/post-event-seen).
+ example: true
+ readOnly: true
+ type: boolean
+ status:
+ description: __Read-only__ The current status of this event.
+ enum:
+ - failed
+ - finished
+ - notification
+ - scheduled
+ - started
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ failed: red
+ finished: green
+ started: yellow
+ x-linode-cli-display: 8
+ time_remaining:
+ description: >-
+ __Read-only__ The estimated time remaining until the event
+ completes. This is only returned for some in-progress
+ migration events. Otherwise, `percent_complete` indicates
+ how long until completion.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ username:
+ description: >-
+ __Read-only__ The name of the user whose action caused the
+ event.
+ example: exampleUser
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/event.yaml
+ description: An Event object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - events:read_only
+ summary: Get an event
+ tags:
+ - Events
+ x-akamai:
+ tabs:
+ - syntax: linode-cli events view 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: events:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the Event.
+ example: '{{eventId}}'
+ in: path
+ name: eventId
+ required: true
+ schema:
+ example: 824
+ type: integer
+ x-akamai:
+ file-path: parameters/event-id-path-39255fcf.yaml
+ x-akamai:
+ file-path: paths/event.yaml
+ path-info: /{apiVersion}/account/events/{eventId}
+ x-linode-cli-command: events
+ /account/events/{eventId}/seen:
+ post:
+ description: >-
+ Acknowledge an event by marking it as seen.
+
+
+ > 📘
+
+ >
+
+ > On June 17, 2025, the "Mark an event as read" operation was sunset.
+ Attempts to call it will return a 404. Use this operation instead.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-event-seen
+ operationId: post-event-seen
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-event-seen-200.json
+ description: Event acknowledged and marked as seen.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - events:read_only
+ summary: Mark an event as seen
+ tags:
+ - Events
+ x-akamai:
+ tabs:
+ - syntax: linode-cli events mark-seen 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: events:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: mark-seen
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Event to designate as seen.
+ example: '{{eventId}}'
+ in: path
+ name: eventId
+ required: true
+ schema:
+ example: 824
+ type: integer
+ x-akamai:
+ file-path: parameters/event-id-path-214cd042.yaml
+ x-akamai:
+ file-path: paths/seen.yaml
+ path-info: /{apiVersion}/account/events/{eventId}/seen
+ x-linode-cli-command: events
+ /account/invoices:
+ get:
+ description: >-
+ Returns a paginated list of Invoices against your Account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-invoices
+ operationId: get-invoices
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: Account Invoice object.
+ properties:
+ billing_source:
+ description: >-
+ __Filterable__, __Read-only__ `akamai`: This Invoice
+ was generated according to the terms of an agreement
+ between the customer and Akamai.
+
+
+ `linode`: This Invoice was generated according to
+ the default terms, prices, and discounts.
+ enum:
+ - akamai
+ - linode
+ example: linode
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3.5
+ x-linode-filterable: true
+ date:
+ description: >-
+ __Filterable__, __Read-only__ When this Invoice was
+ generated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ The Invoice's unique ID.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__, __Read-only__ The Invoice's display
+ label.
+ example: Invoice
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ subtotal:
+ description: >-
+ __Read-only__ The amount of the Invoice before taxes
+ in US Dollars.
+ example: 120.25
+ readOnly: true
+ type: number
+ x-linode-cli-display: 4
+ tax:
+ description: >-
+ __Read-only__ The amount of tax levied on the
+ Invoice in US Dollars.
+ example: 12.25
+ readOnly: true
+ type: number
+ x-linode-cli-display: 5
+ tax_summary:
+ description: >-
+ __Read-only__ The amount of tax broken down into
+ subtotals by source.
+ items:
+ additionalProperties: false
+ properties:
+ name:
+ description: The source of this tax subtotal.
+ example: PA STATE TAX
+ type: string
+ tax:
+ description: >-
+ The amount of tax subtotal attributable to
+ this source.
+ example: 12.25
+ type: number
+ type: object
+ readOnly: true
+ type: array
+ total:
+ description: >-
+ __Filterable__, __Read-only__ The amount of the
+ Invoice after taxes in US Dollars.
+ example: 132.5
+ readOnly: true
+ type: number
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/invoice.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-invoices-200.yaml
+ x-example:
+ x-ref: ../examples/get-invoices-200.json
+ description: Returns a paginated list of Invoice objects.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List invoices
+ tags:
+ - Invoices
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account invoices-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: invoices-list
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/invoices.yaml
+ path-info: /{apiVersion}/account/invoices
+ x-linode-cli-command: account
+ /account/invoices/{invoiceId}:
+ get:
+ description: >-
+ Returns a single Invoice object.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-invoice
+ operationId: get-invoice
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Account Invoice object.
+ properties:
+ billing_source:
+ description: >-
+ __Filterable__, __Read-only__ `akamai`: This Invoice was
+ generated according to the terms of an agreement between
+ the customer and Akamai.
+
+
+ `linode`: This Invoice was generated according to the
+ default terms, prices, and discounts.
+ enum:
+ - akamai
+ - linode
+ example: linode
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3.5
+ x-linode-filterable: true
+ date:
+ description: >-
+ __Filterable__, __Read-only__ When this Invoice was
+ generated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ The Invoice's unique ID.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: __Filterable__, __Read-only__ The Invoice's display label.
+ example: Invoice
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ subtotal:
+ description: >-
+ __Read-only__ The amount of the Invoice before taxes in US
+ Dollars.
+ example: 120.25
+ readOnly: true
+ type: number
+ x-linode-cli-display: 4
+ tax:
+ description: >-
+ __Read-only__ The amount of tax levied on the Invoice in
+ US Dollars.
+ example: 12.25
+ readOnly: true
+ type: number
+ x-linode-cli-display: 5
+ tax_summary:
+ description: >-
+ __Read-only__ The amount of tax broken down into subtotals
+ by source.
+ items:
+ additionalProperties: false
+ properties:
+ name:
+ description: The source of this tax subtotal.
+ example: PA STATE TAX
+ type: string
+ tax:
+ description: >-
+ The amount of tax subtotal attributable to this
+ source.
+ example: 12.25
+ type: number
+ type: object
+ readOnly: true
+ type: array
+ total:
+ description: >-
+ __Filterable__, __Read-only__ The amount of the Invoice
+ after taxes in US Dollars.
+ example: 132.5
+ readOnly: true
+ type: number
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/invoice.yaml
+ x-example:
+ x-ref: ../examples/get-invoice-200.json
+ description: An Invoice object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: Get an invoice
+ tags:
+ - Invoices
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account invoice-view 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: invoice-view
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the Invoice.
+ example: '{{invoiceId}}'
+ in: path
+ name: invoiceId
+ required: true
+ schema:
+ example: 387
+ type: integer
+ x-akamai:
+ file-path: parameters/invoice-id-path.yaml
+ x-akamai:
+ file-path: paths/invoice.yaml
+ path-info: /{apiVersion}/account/invoices/{invoiceId}
+ x-linode-cli-command: account
+ /account/invoices/{invoiceId}/items:
+ get:
+ description: >-
+ Returns a paginated list of Invoice items.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-invoice-items
+ operationId: get-invoice-items
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: An InvoiceItem object.
+ properties:
+ amount:
+ description: >-
+ __Read-only__ The price, in US dollars, of the
+ Invoice Item. Equal to the unit price multiplied by
+ quantity.
+ example: 20.2
+ readOnly: true
+ type: number
+ x-linode-cli-display: 4
+ from:
+ description: >-
+ __Read-only__ The date the Invoice Item started,
+ based on month.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ label:
+ description: __Read-only__ The Invoice Item's display label.
+ example: Linode 123
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ quantity:
+ description: >-
+ __Read-only__ The quantity of this Item for the
+ specified Invoice.
+ example: 4
+ readOnly: true
+ type: integer
+ region:
+ description: >-
+ __Read-only__ The ID of the applicable Region
+ associated with this Invoice Item.
+
+
+ `null` if there is no applicable Region.
+ example: us-west
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ tax:
+ description: >-
+ __Read-only__ The amount of tax levied on this Item
+ in US Dollars.
+ example: 1.25
+ readOnly: true
+ type: number
+ x-linode-cli-display: 5
+ to:
+ description: >-
+ __Read-only__ The date the Invoice Item ended, based
+ on month.
+ example: '2018-01-31T11:59:59'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ total:
+ description: >-
+ __Read-only__ The price of this Item after taxes in
+ US Dollars.
+ example: 21.45
+ readOnly: true
+ type: number
+ x-linode-cli-display: 6
+ type:
+ description: >-
+ __Read-only__ The type of service, ether `hourly` or
+ `misc`.
+ enum:
+ - hourly
+ - misc
+ example: hourly
+ readOnly: true
+ type: string
+ unit_price:
+ description: >-
+ __Read-only__ The monthly service fee in US Dollars
+ for this Item.
+ example: 5.05
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/invoice-item.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-invoice-items-200.yaml
+ x-example:
+ x-ref: ../examples/get-invoice-items-200.json
+ description: A paginated list of InvoiceItem objects.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List invoice items
+ tags:
+ - Invoices
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account invoice-items 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: invoice-items
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the Invoice.
+ example: '{{invoiceId}}'
+ in: path
+ name: invoiceId
+ required: true
+ schema:
+ example: 387
+ type: integer
+ x-akamai:
+ file-path: parameters/invoice-id-path.yaml
+ x-akamai:
+ file-path: paths/items.yaml
+ path-info: /{apiVersion}/account/invoices/{invoiceId}/items
+ x-linode-cli-command: account
+ /account/logins:
+ get:
+ description: >-
+ Returns a collection of successful logins for all users on the account
+ during the last 90 days. This operation can only be accessed by the
+ unrestricted users of an account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-account-logins
+ operationId: get-account-logins
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ An object representing a previous successful login for a
+ User.
+ properties:
+ datetime:
+ description: __Read-only__ When the login was initiated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ id:
+ description: __Read-only__ The unique ID of this login object.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip:
+ description: >-
+ __Read-only__ The remote IP address that requested
+ the login.
+ example: 192.0.2.0
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ restricted:
+ description: >-
+ __Read-only__ True if the User that attempted the
+ login was a restricted User, false otherwise.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 6
+ status:
+ description: >-
+ __Read-only__ Whether the login attempt succeeded or
+ failed.
+ enum:
+ - successful
+ - failed
+ example: successful
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ username:
+ description: >-
+ __Read-only__ The username of the User that
+ attempted the login.
+ example: example_user
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ type: object
+ x-akamai:
+ file-path: schemas/login.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-account-logins-200.yaml
+ x-example:
+ x-ref: ../examples/get-account-logins-200.json
+ description: >-
+ A collection of successful logins for all users on the account
+ during the last 90 days.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List user logins
+ tags:
+ - Logins
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account logins-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: logins-list
+ parameters: []
+ x-akamai:
+ file-path: paths/account-logins.yaml
+ path-info: /{apiVersion}/account/logins
+ x-linode-cli-command: account
+ /account/logins/{loginId}:
+ get:
+ description: >-
+ Returns a Login object that displays information about a successful
+ login. The logins that can be viewed can be for any user on the account,
+ and are not limited to only the logins of the user that is accessing
+ this API endpoint. This operation can only be accessed by the
+ unrestricted users of the account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-account-login
+ operationId: get-account-login
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An object representing a previous successful login for a User.
+ properties:
+ datetime:
+ description: __Read-only__ When the login was initiated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ id:
+ description: __Read-only__ The unique ID of this login object.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip:
+ description: >-
+ __Read-only__ The remote IP address that requested the
+ login.
+ example: 192.0.2.0
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ restricted:
+ description: >-
+ __Read-only__ True if the User that attempted the login
+ was a restricted User, false otherwise.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 6
+ status:
+ description: >-
+ __Read-only__ Whether the login attempt succeeded or
+ failed.
+ enum:
+ - successful
+ - failed
+ example: successful
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ username:
+ description: >-
+ __Read-only__ The username of the User that attempted the
+ login.
+ example: example_user
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ type: object
+ x-akamai:
+ file-path: schemas/login.yaml
+ x-example:
+ x-ref: ../examples/get-account-login-200.json
+ description: The requested login object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: Get an account login
+ tags:
+ - Logins
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account login-view 1234
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: login-view
+ parameters:
+ - description: The ID of the login object to access.
+ example: '{{loginId}}'
+ in: path
+ name: loginId
+ required: true
+ schema:
+ example: 863
+ type: integer
+ x-akamai:
+ file-path: parameters/login-id-path.yaml
+ x-akamai:
+ file-path: paths/account-login.yaml
+ path-info: /{apiVersion}/account/logins/{loginId}
+ x-linode-cli-command: account
+ /account/maintenance:
+ get:
+ description: >-
+ Returns a collection of Maintenance objects for any entity a user has
+ permissions to view. Canceled Maintenance objects are not returned.
+
+
+ Currently, Linodes are the only entities available for viewing.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-maintenance
+ operationId: get-maintenance
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: Information about maintenance affecting an entity.
+ properties:
+ entity:
+ additionalProperties: false
+ description: The entity being affected by maintenance.
+ properties:
+ id:
+ description: >-
+ The id of the entity being affected by
+ maintenance.
+ example: 1234
+ type: number
+ label:
+ description: >-
+ The label of the entity being affected by
+ maintenance.
+ example: demo-linode
+ type: string
+ type:
+ description: The type of entity.
+ example: Linode
+ type: string
+ url:
+ description: >-
+ The API endpoint prefix to use in combination
+ with the entity id to find specific information
+ about the entity.
+ example: >-
+ https://api.linode.com/v4/linode/instances/{linodeId}
+ type: string
+ type: object
+ reason:
+ description: The reason maintenance is being performed.
+ example: >-
+ This maintenance will allow us to update the BIOS on
+ the host's motherboard.
+ type: string
+ status:
+ description: >-
+ __Filterable__ The maintenance status.
+
+
+ Maintenance progresses in the following sequence:
+ pending, started, then completed.
+ enum:
+ - completed
+ - pending
+ - started
+ example: started
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type:
+ description: __Filterable__ The type of maintenance.
+ enum:
+ - reboot
+ - cold_migration
+ - live_migration
+ example: reboot
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ when:
+ description: >-
+ __Filterable__ When the maintenance will begin.
+
+
+ [Filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting)
+ with the following parameters:
+
+
+ - A single value in date-time string format
+ (`%Y-%m-%dT%H:%M:%S`), which returns only matches to
+ that value.
+
+
+ - A dictionary containing pairs of inequality
+ operator string keys (`+or`, `+gt`, `+gte`, `+lt`,
+ `+lte`, or `+neq`) and single date-time string
+ format values (`%Y-%m-%dT%H:%M:%S`). `+or` accepts
+ an array of values that may consist of single
+ date-time strings or dictionaries of inequality
+ operator pairs.
+ example: '2020-07-09T00:01:01'
+ format: date-time
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/maintenance.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-maintenance-200.yaml
+ x-example:
+ x-ref: ../examples/get-maintenance-200.json
+ description: Returns a paginated list of Maintenance objects.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth: []
+ summary: List maintenances
+ tags:
+ - Maintenances
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account maintenance-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: maintenance-list
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/maintenance.yaml
+ path-info: /{apiVersion}/account/maintenance
+ x-linode-cli-command: account
+ /account/notifications:
+ get:
+ description: >-
+ Returns a collection of notification objects that represent important,
+ often time-sensitive details about your account. You can't interact
+ directly with notifications, and a notification disappears when the
+ circumstances that caused it have been resolved. For example, if you
+ have an important ticket open, you can respond to that ticket to dismiss
+ its notification.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-notifications
+ operationId: get-notifications
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ An important, often time-sensitive item related to your
+ account.
+ properties:
+ body:
+ description: >-
+ __Read-only__ A full description of this
+ notification, in markdown format. Not all
+ notifications include a `body`.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ entity:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Detailed information about the
+ notification.
+ properties:
+ id:
+ description: >-
+ The unique ID of the notification's entity,
+ based on the entity type. Returns `null` for an
+ `account` or `promotion` entity.
+ example: 3456
+ nullable: true
+ type: integer
+ label:
+ description: >-
+ The current label for this notification's
+ entity.
+
+
+ Returns `null` for the following entity types:
+
+
+ - `entity_transfer`
+
+ - `promotion`
+
+ - `region`
+ example: Linode not booting.
+ nullable: true
+ type: string
+ type:
+ description: The type of entity this is related to.
+ enum:
+ - account
+ - entity_transfer
+ - linode
+ - loadbalancers
+ - nodebalancer
+ - promotion
+ - region
+ - ticket
+ - volume
+ example: ticket
+ type: string
+ url:
+ description: >-
+ The URL where you can access the notification's
+ object. The URL is relative to the domain where
+ you retrieved the notification. This value is
+ `null` for the `promotion` entity type.
+ example: /support/tickets/3456
+ nullable: true
+ type: string
+ readOnly: true
+ type: object
+ label:
+ description: >-
+ __Read-only__ A short description of this
+ notification.
+ example: You have an important ticket open!
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ message:
+ description: >-
+ __Read-only__ A human-readable description of the
+ notification.
+ example: You have an important ticket open!
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ severity:
+ description: >-
+ __Read-only__ The severity of this notification.
+ This field determines how prominently the
+ notification is displayed and the color of the
+ display text.
+ enum:
+ - minor
+ - major
+ - critical
+ example: major
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ critical: b
+ default_: white
+ minor: blue
+ x-linode-cli-display: 3
+ type:
+ description: __Read-only__ The type of notification.
+ enum:
+ - migration_scheduled
+ - migration_imminent
+ - migration_pending
+ - reboot_scheduled
+ - outage
+ - payment_due
+ - ticket_important
+ - ticket_abuse
+ - notice
+ - maintenance
+ - promotion
+ - tax_id_verifying
+ example: ticket_important
+ readOnly: true
+ type: string
+ until:
+ description: >-
+ __Read-only__ If this notification has a duration,
+ this is when the event or action will complete. For
+ example, if there's scheduled maintenance for one of
+ our systems, `until` represents the end of the
+ maintenance window.
+ example: null
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 5
+ when:
+ description: >-
+ __Read-only__ If this notification is for an event
+ in the future, this specifies when the action
+ occurs. For example, if a compute instance needs to
+ migrate in response to a security advisory, this
+ field sets the approximate time the compute instance
+ will be taken offline for migration.
+ example: null
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 4
+ type: object
+ x-akamai:
+ file-path: schemas/notification.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-notifications-200.yaml
+ x-example:
+ x-ref: ../examples/get-notifications-200.json
+ description: Returns a paginated list of notification objects.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List notifications
+ tags:
+ - Notifications
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account notifications-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: notifications-list
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/notifications.yaml
+ path-info: /{apiVersion}/account/notifications
+ x-linode-cli-command: account
+ /account/oauth-clients:
+ post:
+ description: >-
+ Creates an OAuth Client, which can be used to allow users (using their
+ Linode account) to log in to your own application, and optionally grant
+ your application some amount of access to their Linodes or other
+ entities.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-client
+ operationId: post-client
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ A third-party application registered to Linode that users
+ may log into with their Linode account through our
+ authentication server at
+ [login.linode.com](https://login.linode.com). Using an
+ OAuth Client, a third-party developer may be given access to
+ some, or all, of a User's account for the purposes of their
+ application.
+ properties:
+ id:
+ description: >-
+ __Read-only__ The OAuth Client ID. This is used to
+ identify the client, and is a publicly known value (it
+ is not a secret).
+ example: 2737bf16b39ab5d7b4a1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of this application. This will
+ be presented to users when they are asked to grant it
+ access to their Account.
+ example: Test_Client_1
+ maxLength: 512
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ public:
+ default: false
+ description: >-
+ __Filterable__ If this is a public or private OAuth
+ Client. Public clients have a slightly different
+ authentication workflow than private clients. See the
+ [OAuth spec](https://oauth.net/2/) for more details.
+ example: false
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ redirect_uri:
+ description: >-
+ The location a successful log in from
+ [login.linode.com](https://login.linode.com) should be
+ redirected to for this client. The receiver of this
+ redirect should be ready to accept an OAuth exchange
+ code and finish the OAuth exchange.
+ example: https://example.org/oauth/callback
+ format: url
+ type: string
+ x-linode-cli-display: 5
+ secret:
+ description: >-
+ __Read-only__ The OAuth Client secret, used in the OAuth
+ exchange. This is returned as `` except when
+ an OAuth Client is created or its secret is reset. This
+ is a secret, and should not be shared or disclosed
+ publicly.
+ example:
+ readOnly: true
+ type: string
+ status:
+ description: >-
+ __Read-only__ The status of this application. `active`
+ by default.
+ enum:
+ - active
+ - disabled
+ - suspended
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ suspended: red
+ x-linode-cli-display: 3
+ thumbnail_url:
+ description: >-
+ __Read-only__ The URL where this client's thumbnail may
+ be viewed, or `null` if this client does not have a
+ thumbnail set.
+ example: >-
+ https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail
+ format: url
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/oauth-client.yaml
+ required:
+ - label
+ - redirect_uri
+ x-akamai:
+ file-path: schemas/added-post-client.yaml
+ x-example:
+ x-ref: ../examples/post-client.json
+ description: Information about the OAuth Client to create.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A third-party application registered to Linode that users may
+ log into with their Linode account through our authentication
+ server at [login.linode.com](https://login.linode.com). Using
+ an OAuth Client, a third-party developer may be given access
+ to some, or all, of a User's account for the purposes of their
+ application.
+ properties:
+ id:
+ description: >-
+ __Read-only__ The OAuth Client ID. This is used to
+ identify the client, and is a publicly known value (it is
+ not a secret).
+ example: 2737bf16b39ab5d7b4a1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of this application. This will be
+ presented to users when they are asked to grant it access
+ to their Account.
+ example: Test_Client_1
+ maxLength: 512
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ public:
+ default: false
+ description: >-
+ __Filterable__ If this is a public or private OAuth
+ Client. Public clients have a slightly different
+ authentication workflow than private clients. See the
+ [OAuth spec](https://oauth.net/2/) for more details.
+ example: false
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ redirect_uri:
+ description: >-
+ The location a successful log in from
+ [login.linode.com](https://login.linode.com) should be
+ redirected to for this client. The receiver of this
+ redirect should be ready to accept an OAuth exchange code
+ and finish the OAuth exchange.
+ example: https://example.org/oauth/callback
+ format: url
+ type: string
+ x-linode-cli-display: 5
+ secret:
+ description: >-
+ __Read-only__ The OAuth Client secret, used in the OAuth
+ exchange. This is returned as `` except when an
+ OAuth Client is created or its secret is reset. This is a
+ secret, and should not be shared or disclosed publicly.
+ example:
+ readOnly: true
+ type: string
+ status:
+ description: >-
+ __Read-only__ The status of this application. `active` by
+ default.
+ enum:
+ - active
+ - disabled
+ - suspended
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ suspended: red
+ x-linode-cli-display: 3
+ thumbnail_url:
+ description: >-
+ __Read-only__ The URL where this client's thumbnail may be
+ viewed, or `null` if this client does not have a thumbnail
+ set.
+ example: >-
+ https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail
+ format: url
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/oauth-client.yaml
+ x-example:
+ x-ref: ../examples/post-client-200.json
+ description: Client created successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Create an OAuth client
+ tags:
+ - OAuth clients
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli account client-create \
+ --label Test_Client_1 \
+ --redirect_uri https://example.org/callback
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: client-create
+ get:
+ description: >-
+ Returns a paginated list of OAuth Clients registered to your Account.
+ OAuth Clients allow users to log into applications you write or host
+ using their Linode Account, and may allow them to grant some level of
+ access to their Linodes or other entities to your application.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-clients
+ operationId: get-clients
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ A third-party application registered to Linode that
+ users may log into with their Linode account through our
+ authentication server at
+ [login.linode.com](https://login.linode.com). Using an
+ OAuth Client, a third-party developer may be given
+ access to some, or all, of a User's account for the
+ purposes of their application.
+ properties:
+ id:
+ description: >-
+ __Read-only__ The OAuth Client ID. This is used to
+ identify the client, and is a publicly known value
+ (it is not a secret).
+ example: 2737bf16b39ab5d7b4a1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of this application. This
+ will be presented to users when they are asked to
+ grant it access to their Account.
+ example: Test_Client_1
+ maxLength: 512
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ public:
+ default: false
+ description: >-
+ __Filterable__ If this is a public or private OAuth
+ Client. Public clients have a slightly different
+ authentication workflow than private clients. See
+ the [OAuth spec](https://oauth.net/2/) for more
+ details.
+ example: false
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ redirect_uri:
+ description: >-
+ The location a successful log in from
+ [login.linode.com](https://login.linode.com) should
+ be redirected to for this client. The receiver of
+ this redirect should be ready to accept an OAuth
+ exchange code and finish the OAuth exchange.
+ example: https://example.org/oauth/callback
+ format: url
+ type: string
+ x-linode-cli-display: 5
+ secret:
+ description: >-
+ __Read-only__ The OAuth Client secret, used in the
+ OAuth exchange. This is returned as ``
+ except when an OAuth Client is created or its secret
+ is reset. This is a secret, and should not be
+ shared or disclosed publicly.
+ example:
+ readOnly: true
+ type: string
+ status:
+ description: >-
+ __Read-only__ The status of this application.
+ `active` by default.
+ enum:
+ - active
+ - disabled
+ - suspended
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ suspended: red
+ x-linode-cli-display: 3
+ thumbnail_url:
+ description: >-
+ __Read-only__ The URL where this client's thumbnail
+ may be viewed, or `null` if this client does not
+ have a thumbnail set.
+ example: >-
+ https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail
+ format: url
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/oauth-client.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-clients-200.yaml
+ x-example:
+ x-ref: ../examples/get-clients-200.json
+ description: A paginated list of OAuth Clients.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List OAuth clients
+ tags:
+ - OAuth clients
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account clients-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: clients-list
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/oauth-clients.yaml
+ path-info: /{apiVersion}/account/oauth-clients
+ x-linode-cli-command: account
+ /account/oauth-clients/{clientId}:
+ get:
+ description: >-
+ Returns information about a single OAuth client.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-client
+ operationId: get-client
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A third-party application registered to Linode that users may
+ log into with their Linode account through our authentication
+ server at [login.linode.com](https://login.linode.com). Using
+ an OAuth Client, a third-party developer may be given access
+ to some, or all, of a User's account for the purposes of their
+ application.
+ properties:
+ id:
+ description: >-
+ __Read-only__ The OAuth Client ID. This is used to
+ identify the client, and is a publicly known value (it is
+ not a secret).
+ example: 2737bf16b39ab5d7b4a1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of this application. This will be
+ presented to users when they are asked to grant it access
+ to their Account.
+ example: Test_Client_1
+ maxLength: 512
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ public:
+ default: false
+ description: >-
+ __Filterable__ If this is a public or private OAuth
+ Client. Public clients have a slightly different
+ authentication workflow than private clients. See the
+ [OAuth spec](https://oauth.net/2/) for more details.
+ example: false
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ redirect_uri:
+ description: >-
+ The location a successful log in from
+ [login.linode.com](https://login.linode.com) should be
+ redirected to for this client. The receiver of this
+ redirect should be ready to accept an OAuth exchange code
+ and finish the OAuth exchange.
+ example: https://example.org/oauth/callback
+ format: url
+ type: string
+ x-linode-cli-display: 5
+ secret:
+ description: >-
+ __Read-only__ The OAuth Client secret, used in the OAuth
+ exchange. This is returned as `` except when an
+ OAuth Client is created or its secret is reset. This is a
+ secret, and should not be shared or disclosed publicly.
+ example:
+ readOnly: true
+ type: string
+ status:
+ description: >-
+ __Read-only__ The status of this application. `active` by
+ default.
+ enum:
+ - active
+ - disabled
+ - suspended
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ suspended: red
+ x-linode-cli-display: 3
+ thumbnail_url:
+ description: >-
+ __Read-only__ The URL where this client's thumbnail may be
+ viewed, or `null` if this client does not have a thumbnail
+ set.
+ example: >-
+ https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail
+ format: url
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/oauth-client.yaml
+ x-example:
+ x-ref: ../examples/get-client-200.json
+ description: Information about the requested client.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: Get an OAuth client
+ tags:
+ - OAuth clients
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli account client-view \
+ edc6790ea9db4d224c5c
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: client-view
+ put:
+ description: >-
+ Update information about an OAuth Client on your Account. This can be
+ especially useful to update the `redirect_uri` of your client in the
+ event that the callback URL changed in your application.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-client
+ operationId: put-client
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A third-party application registered to Linode that users may
+ log into with their Linode account through our authentication
+ server at [login.linode.com](https://login.linode.com). Using
+ an OAuth Client, a third-party developer may be given access to
+ some, or all, of a User's account for the purposes of their
+ application.
+ properties:
+ id:
+ description: >-
+ __Read-only__ The OAuth Client ID. This is used to identify
+ the client, and is a publicly known value (it is not a
+ secret).
+ example: '{{id}}'
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of this application. This will be
+ presented to users when they are asked to grant it access to
+ their Account.
+ example: '{{label}}'
+ maxLength: 512
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ public:
+ default: false
+ description: >-
+ __Filterable__ If this is a public or private OAuth Client.
+ Public clients have a slightly different authentication
+ workflow than private clients. See the [OAuth
+ spec](https://oauth.net/2/) for more details.
+ example: '{{public}}'
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ redirect_uri:
+ description: >-
+ The location a successful log in from
+ [login.linode.com](https://login.linode.com) should be
+ redirected to for this client. The receiver of this
+ redirect should be ready to accept an OAuth exchange code
+ and finish the OAuth exchange.
+ example: '{{redirect_uri}}'
+ format: url
+ type: string
+ x-linode-cli-display: 5
+ secret:
+ description: >-
+ __Read-only__ The OAuth Client secret, used in the OAuth
+ exchange. This is returned as `` except when an
+ OAuth Client is created or its secret is reset. This is a
+ secret, and should not be shared or disclosed publicly.
+ example: '{{secret}}'
+ readOnly: true
+ type: string
+ status:
+ description: >-
+ __Read-only__ The status of this application. `active` by
+ default.
+ enum:
+ - active
+ - disabled
+ - suspended
+ example: '{{status}}'
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ suspended: red
+ x-linode-cli-display: 3
+ thumbnail_url:
+ description: >-
+ __Read-only__ The URL where this client's thumbnail may be
+ viewed, or `null` if this client does not have a thumbnail
+ set.
+ example: '{{thumbnail_url}}'
+ format: url
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/oauth-client.yaml
+ x-example:
+ x-ref: ../examples/put-client.json
+ description: The fields to update.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A third-party application registered to Linode that users may
+ log into with their Linode account through our authentication
+ server at [login.linode.com](https://login.linode.com). Using
+ an OAuth Client, a third-party developer may be given access
+ to some, or all, of a User's account for the purposes of their
+ application.
+ properties:
+ id:
+ description: >-
+ __Read-only__ The OAuth Client ID. This is used to
+ identify the client, and is a publicly known value (it is
+ not a secret).
+ example: 2737bf16b39ab5d7b4a1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of this application. This will be
+ presented to users when they are asked to grant it access
+ to their Account.
+ example: Test_Client_1
+ maxLength: 512
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ public:
+ default: false
+ description: >-
+ __Filterable__ If this is a public or private OAuth
+ Client. Public clients have a slightly different
+ authentication workflow than private clients. See the
+ [OAuth spec](https://oauth.net/2/) for more details.
+ example: false
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ redirect_uri:
+ description: >-
+ The location a successful log in from
+ [login.linode.com](https://login.linode.com) should be
+ redirected to for this client. The receiver of this
+ redirect should be ready to accept an OAuth exchange code
+ and finish the OAuth exchange.
+ example: https://example.org/oauth/callback
+ format: url
+ type: string
+ x-linode-cli-display: 5
+ secret:
+ description: >-
+ __Read-only__ The OAuth Client secret, used in the OAuth
+ exchange. This is returned as `` except when an
+ OAuth Client is created or its secret is reset. This is a
+ secret, and should not be shared or disclosed publicly.
+ example:
+ readOnly: true
+ type: string
+ status:
+ description: >-
+ __Read-only__ The status of this application. `active` by
+ default.
+ enum:
+ - active
+ - disabled
+ - suspended
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ suspended: red
+ x-linode-cli-display: 3
+ thumbnail_url:
+ description: >-
+ __Read-only__ The URL where this client's thumbnail may be
+ viewed, or `null` if this client does not have a thumbnail
+ set.
+ example: >-
+ https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail
+ format: url
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/oauth-client.yaml
+ x-example:
+ x-ref: ../examples/get-client-200.json
+ description: Client updated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Update an OAuth client
+ tags:
+ - OAuth clients
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli account client-update \
+ edc6790ea9db4d224c5c \
+ --label Test_Client_1
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: client-update
+ delete:
+ description: >-
+ Deletes an OAuth Client registered with Linode. The Client ID and Client
+ secret will no longer be accepted by
+ [login.linode.com](https://login.linode.com), and all tokens issued to
+ this client will be invalidated (meaning that if your application was
+ using a token, it will no longer work).
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-client
+ operationId: delete-client
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-client-200.json
+ description: Client deleted successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Delete an OAuth client
+ tags:
+ - OAuth clients
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli account client-delete \
+ edc6790ea9db4d224c5c
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: client-delete
+ parameters:
+ - description: The OAuth Client ID to look up.
+ example: '{{clientId}}'
+ in: path
+ name: clientId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/client-id-path.yaml
+ x-akamai:
+ file-path: paths/oauth-client.yaml
+ path-info: /{apiVersion}/account/oauth-clients/{clientId}
+ x-linode-cli-command: account
+ /account/oauth-clients/{clientId}/reset-secret:
+ post:
+ description: >-
+ Resets the OAuth Client secret for a client you own, and returns the
+ OAuth Client with the plaintext secret. This secret is not supposed to
+ be publicly known or disclosed anywhere. This can be used to generate a
+ new secret in case the one you have has been leaked, or to get a new
+ secret if you lost the original. The old secret is expired immediately,
+ and logins to your client with the old secret will fail.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-reset-client-secret
+ operationId: post-reset-client-secret
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A third-party application registered to Linode that users may
+ log into with their Linode account through our authentication
+ server at [login.linode.com](https://login.linode.com). Using
+ an OAuth Client, a third-party developer may be given access
+ to some, or all, of a User's account for the purposes of their
+ application.
+ properties:
+ id:
+ description: >-
+ __Read-only__ The OAuth Client ID. This is used to
+ identify the client, and is a publicly known value (it is
+ not a secret).
+ example: 2737bf16b39ab5d7b4a1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of this application. This will be
+ presented to users when they are asked to grant it access
+ to their Account.
+ example: Test_Client_1
+ maxLength: 512
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ public:
+ default: false
+ description: >-
+ __Filterable__ If this is a public or private OAuth
+ Client. Public clients have a slightly different
+ authentication workflow than private clients. See the
+ [OAuth spec](https://oauth.net/2/) for more details.
+ example: false
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ redirect_uri:
+ description: >-
+ The location a successful log in from
+ [login.linode.com](https://login.linode.com) should be
+ redirected to for this client. The receiver of this
+ redirect should be ready to accept an OAuth exchange code
+ and finish the OAuth exchange.
+ example: https://example.org/oauth/callback
+ format: url
+ type: string
+ x-linode-cli-display: 5
+ secret:
+ description: >-
+ __Read-only__ The OAuth Client secret, used in the OAuth
+ exchange. This is returned as `` except when an
+ OAuth Client is created or its secret is reset. This is a
+ secret, and should not be shared or disclosed publicly.
+ example:
+ readOnly: true
+ type: string
+ status:
+ description: >-
+ __Read-only__ The status of this application. `active` by
+ default.
+ enum:
+ - active
+ - disabled
+ - suspended
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ suspended: red
+ x-linode-cli-display: 3
+ thumbnail_url:
+ description: >-
+ __Read-only__ The URL where this client's thumbnail may be
+ viewed, or `null` if this client does not have a thumbnail
+ set.
+ example: >-
+ https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail
+ format: url
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/oauth-client.yaml
+ x-example:
+ x-ref: ../examples/post-reset-client-secret-200.json
+ description: Client secret reset successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Reset an OAuth client secret
+ tags:
+ - OAuth clients
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli account client-reset-secret \
+ edc6790ea9db4d224c5c
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: client-reset-secret
+ parameters:
+ - description: The OAuth Client ID to look up.
+ example: '{{clientId}}'
+ in: path
+ name: clientId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/client-id-path.yaml
+ x-akamai:
+ file-path: paths/reset-secret.yaml
+ path-info: /{apiVersion}/account/oauth-clients/{clientId}/reset-secret
+ x-linode-cli-command: account
+ /account/oauth-clients/{clientId}/thumbnail:
get:
- x-linode-grant: read_only
+ description: >-
+ Returns the PNG thumbnail for this OAuth Client. This is a publicly
+ viewable endpoint, and can be accessed without authentication.
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-client-thumbnail
+ operationId: get-client-thumbnail
+ responses:
+ '200':
+ content:
+ image/png:
+ schema:
+ format: binary
+ type: string
+ description: The client's thumbnail.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: Get the OAuth client's thumbnail
tags:
- - Account
- summary: Account View
- description: |
- Returns the contact and billing information related to your Account.
- operationId: getAccount
- x-linode-cli-action: view
+ - Client thumbnail
+ x-linode-cli-action: client-thumbnail
+ x-linode-cli-skip: true
+ put:
+ description: >-
+ Upload a thumbnail for a client you own. You must upload a PNG image
+ file that will be returned when the thumbnail is retrieved. This image
+ will be publicly viewable. __OAuth scopes__.
+
+ ```
+ account:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-client-thumbnail
+ operationId: put-client-thumbnail
+ requestBody:
+ content:
+ image/png:
+ schema:
+ format: binary
+ type: string
+ description: The image to set as the thumbnail.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/get-client-thumbnail-200.json
+ description: Thumbnail updated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_write
+ summary: Update the OAuth client's thumbnail
+ tags:
+ - Client thumbnail
+ x-akamai:
+ tabs:
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update-client-thumbnail
+ x-linode-cli-skip: true
+ parameters:
+ - description: The OAuth Client ID to look up.
+ example: '{{clientId}}'
+ in: path
+ name: clientId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/client-id-path-ecf807fb.yaml
+ x-akamai:
+ file-path: paths/thumbnail.yaml
+ path-info: /{apiVersion}/account/oauth-clients/{clientId}/thumbnail
+ x-linode-cli-command: account
+ /account/payment-methods:
+ post:
+ description: >-
+ Adds a Payment Method to your Account with the option to set it as the
+ default method.
+
+
+ - Adding a default Payment Method removes the default status from any
+ other Payment Method.
+
+
+ - An Account can have up to 6 active Payment Methods.
+
+
+ - Up to 60 Payment Methods can be added each day.
+
+
+ - Prior to adding a Payment Method, ensure that your billing address
+ information is up-to-date with a valid `zip` by running the [Update your
+ account](https://techdocs.akamai.com/linode-api/reference/put-account)
+ operation.
+
+
+ - A `payment_method_add` event is generated when a payment is
+ successfully submitted.
+
+
+ __Parent and child accounts__
+
+
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, the following apply:
+
+
+ - Child account users can't run this operation. These users don't have
+ access to billing-related operations.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-payment-method
+ operationId: post-payment-method
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Payment Method Request Object.
+ properties:
+ data:
+ additionalProperties: false
+ description: >-
+ An object representing the credit card information you have
+ on file with Linode to make Payments against your Account.
+ properties:
+ card_number:
+ description: >-
+ Your credit card number. No spaces or hyphens (`-`)
+ allowed.
+ example: 4111111111111111
+ format: digits
+ maxLength: 24
+ minLength: 14
+ type: string
+ cvv:
+ description: >-
+ CVV (Card Verification Value) of the credit card,
+ typically found on the back of the card.
+ example: '123'
+ format: digits
+ maxLength: 4
+ minLength: 3
+ type: string
+ expiry_month:
+ description: >-
+ A value from 1-12 representing the expiration month of
+ your credit card.
+
+ - 1 = January
+ - 2 = February
+ - 3 = March
+ - Etc.
+ example: 12
+ maximum: 12
+ minimum: 1
+ type: integer
+ expiry_year:
+ 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
+ maxLength: 4
+ minLength: 4
+ type: integer
+ required:
+ - card_number
+ - expiry_month
+ - expiry_year
+ - cvv
+ type: object
+ x-akamai:
+ file-path: schemas/credit-card.yaml
+ is_default:
+ description: >-
+ Whether this Payment Method is the default method for
+ automatically processing service charges.
+ example: '{{is_default}}'
+ type: boolean
+ x-linode-cli-display: 3
+ type:
+ description: >-
+ The type of Payment Method.
+
+
+ Alternative Payment Methods including Google Pay and PayPal
+ can be added using the Cloud Manager. See the [Manage
+ Payment
+ Methods](https://www.linode.com/docs/products/platform/billing/guides/payment-methods/)
+ guide
+
+ for details and instructions.
+ enum:
+ - credit_card
+ example: '{{type}}'
+ type: string
+ required:
+ - type
+ - data
+ - is_default
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-payment-method.yaml
+ x-example:
+ x-ref: ../examples/post-payment-method.json
+ description: The details of the Payment Method to add.
+ required: true
responses:
'200':
- description: Returns a single Account object.
content:
application/json:
schema:
- $ref: '#/components/schemas/Account'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-payment-method-200.json
+ description: Payment Method added.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account
- - lang: CLI
- source: |
- linode-cli account view
- put:
- x-linode-grant: read_write
- tags:
- - Account
- summary: Account Update
- description: |
- Updates contact and billing information related to your Account.
- operationId: updateAccount
- x-linode-cli-action: update
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: |
- Update contact and billing information.
+ - account:read_write
+ summary: Add a payment method
+ tags:
+ - Payment methods
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli payment-methods add \
+ --type credit_card \
+ --is_default true \
+ --data.card_number 4111111111111111 \
+ --data.expiry_month 11 \
+ --data.expiry_year 2020 \
+ --data.cvv 111
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: add
+ x-linode-grant: read_write
+ get:
+ description: >-
+ Returns a paginated list of Payment Methods for this Account.
- 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:
- schema:
- $ref: '#/components/schemas/Account'
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-payment-methods
+ operationId: get-payment-methods
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: The updated Account.
content:
application/json:
schema:
- $ref: '#/components/schemas/Account'
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: Payment Method Response Object.
+ properties:
+ created:
+ description: >-
+ __Read-only__ When the Payment Method was added to
+ the Account.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ data:
+ oneOf:
+ - additionalProperties: false
+ description: Credit card information.
+ properties:
+ card_type:
+ description: __Read-only__ The type of credit card.
+ example: Discover
+ readOnly: true
+ type: string
+ expiry:
+ description: >-
+ __Read-only__ The expiration month and year
+ of the credit card.
+ example: 06/2022
+ format: MM/YYYY
+ readOnly: true
+ type: string
+ last_four:
+ description: >-
+ __Read-only__ The last four digits of the
+ credit card number.
+ example: '1234'
+ readOnly: true
+ type: string
+ title: Credit card
+ type: object
+ x-akamai:
+ file-path: schemas/credit-card-data.yaml
+ x-linode-ref-name: Credit Card
+ - additionalProperties: false
+ description: Google Pay information.
+ properties:
+ card_type:
+ description: __Read-only__ The type of credit card.
+ example: Discover
+ readOnly: true
+ type: string
+ expiry:
+ description: >-
+ __Read-only__ The expiration month and year
+ of the credit card.
+ example: 06/2022
+ format: MM/YYYY
+ readOnly: true
+ type: string
+ last_four:
+ description: >-
+ __Read-only__ The last four digits of the
+ credit card number.
+ example: '1234'
+ readOnly: true
+ type: string
+ title: Google Pay
+ type: object
+ x-akamai:
+ file-path: schemas/google-pay-data.yaml
+ x-linode-ref-name: Google Pay
+ - additionalProperties: false
+ description: PayPal information.
+ properties:
+ email:
+ description: >-
+ __Read-only__ The email address associated
+ with your PayPal account.
+ example: example@linode.com
+ readOnly: true
+ type: string
+ paypal_id:
+ description: >-
+ __Read-only__ PayPal Merchant ID associated
+ with your PayPal account.
+ example: ABC1234567890
+ readOnly: true
+ type: string
+ title: Paypal
+ type: object
+ x-akamai:
+ file-path: schemas/paypal-data.yaml
+ x-linode-ref-name: Paypal
+ x-linode-cli-display: 4
+ x-linode-cli-format: json
+ id:
+ description: The unique ID of this Payment Method.
+ example: 123
+ type: integer
+ x-linode-cli-display: 1
+ is_default:
+ description: >-
+ Whether this Payment Method is the default method
+ for automatically processing service charges.
+ example: true
+ type: boolean
+ x-linode-cli-display: 3
+ type:
+ description: The type of Payment Method.
+ enum:
+ - credit_card
+ - google_pay
+ - paypal
+ example: credit_card
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/payment-method.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-payment-methods-200.yaml
+ x-example:
+ x-ref: ../examples/get-payment-methods-200.json
+ description: Returns a paginated list of Payment Method objects.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "address_1": "123 Main St.",
- "address_2": "Suite 101",
- "city": "Philadelphia",
- "company": "My Company, LLC",
- "country": "US",
- "email": "jsmith@mycompany.com",
- "first_name": "John",
- "last_name": "Smith",
- "phone": "555-555-1212",
- "state": "PA",
- "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 \
- --phone 555-555-1212 \
- --state PA \
- --tax_id ATU99999999 \
- --zip 19102
- /account/cancel:
- post:
- x-linode-grant: read_write
- tags:
- - Account
- summary: Account Cancel
- description: |
- Cancels an active Linode account. This action will cause Linode to attempt to charge the credit card on file for the remaining balance. An error will occur if Linode fails to charge the credit card on file. Restricted users will not be able to cancel an account.
- operationId: cancelAccount
- x-linode-cli-action: cancel
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: |
- Supply a comment stating the reason that you are cancelling your account.
- required: true
- content:
- application/json:
- schema:
- properties:
- comments:
- type: string
- description: |
- Any reason for cancelling the account, and any other comments you might have about your Linode service.
- example: I'm consolidating multiple accounts into one.
+ - account:read_only
+ summary: List payment methods
+ tags:
+ - Payment methods
+ x-akamai:
+ tabs:
+ - syntax: linode-cli payment-methods list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/payment-methods.yaml
+ path-info: /{apiVersion}/account/payment-methods
+ x-linode-cli-command: payment-methods
+ /account/payment-methods/{paymentMethodId}:
+ get:
+ description: >-
+ View the details of the specified Payment Method.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-payment-method
+ operationId: get-payment-method
responses:
'200':
- description: Account cancelled
content:
application/json:
schema:
- type: object
+ additionalProperties: false
+ description: Payment Method Response Object.
properties:
- survey_link:
+ created:
+ description: >-
+ __Read-only__ When the Payment Method was added to the
+ Account.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
type: string
- description: A link to Linode's exit survey.
- example:
- survey_link: 'https://alinktothesurvey.com'''
- '409':
- description: Could not charge the credit card on file
+ data:
+ oneOf:
+ - additionalProperties: false
+ description: Credit card information.
+ properties:
+ card_type:
+ description: __Read-only__ The type of credit card.
+ example: Discover
+ readOnly: true
+ type: string
+ expiry:
+ description: >-
+ __Read-only__ The expiration month and year of the
+ credit card.
+ example: 06/2022
+ format: MM/YYYY
+ readOnly: true
+ type: string
+ last_four:
+ description: >-
+ __Read-only__ The last four digits of the credit
+ card number.
+ example: '1234'
+ readOnly: true
+ type: string
+ title: Credit card
+ type: object
+ x-akamai:
+ file-path: schemas/credit-card-data.yaml
+ x-linode-ref-name: Credit Card
+ - additionalProperties: false
+ description: Google Pay information.
+ properties:
+ card_type:
+ description: __Read-only__ The type of credit card.
+ example: Discover
+ readOnly: true
+ type: string
+ expiry:
+ description: >-
+ __Read-only__ The expiration month and year of the
+ credit card.
+ example: 06/2022
+ format: MM/YYYY
+ readOnly: true
+ type: string
+ last_four:
+ description: >-
+ __Read-only__ The last four digits of the credit
+ card number.
+ example: '1234'
+ readOnly: true
+ type: string
+ title: Google Pay
+ type: object
+ x-akamai:
+ file-path: schemas/google-pay-data.yaml
+ x-linode-ref-name: Google Pay
+ - additionalProperties: false
+ description: PayPal information.
+ properties:
+ email:
+ description: >-
+ __Read-only__ The email address associated with
+ your PayPal account.
+ example: example@linode.com
+ readOnly: true
+ type: string
+ paypal_id:
+ description: >-
+ __Read-only__ PayPal Merchant ID associated with
+ your PayPal account.
+ example: ABC1234567890
+ readOnly: true
+ type: string
+ title: Paypal
+ type: object
+ x-akamai:
+ file-path: schemas/paypal-data.yaml
+ x-linode-ref-name: Paypal
+ x-linode-cli-display: 4
+ x-linode-cli-format: json
+ id:
+ description: The unique ID of this Payment Method.
+ example: 123
+ type: integer
+ x-linode-cli-display: 1
+ is_default:
+ description: >-
+ Whether this Payment Method is the default method for
+ automatically processing service charges.
+ example: true
+ type: boolean
+ x-linode-cli-display: 3
+ type:
+ description: The type of Payment Method.
+ enum:
+ - credit_card
+ - google_pay
+ - paypal
+ example: credit_card
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/payment-method.yaml
+ x-example:
+ x-ref: ../examples/get-payment-method-200.json
+ description: Returns a Payment Method Object.
+ default:
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
errors:
- type: array
items:
- type: object
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
type: string
- description: |
- A string explaining that the account could not be cancelled because there is an outstanding balance on the account that must be paid first.
- example: |
- We were unable to charge your credit card for services rendered. We cannot cancel this account until the balance has been paid.
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "comments": "I am consolidating my accounts."
- }' \
- https://api.linode.com/v4/account/cancel
- - lang: CLI
- source: |
- linode-cli account cancel \
- --comments "I'm consolidating my accounts"
- /account/credit-card:
- post:
- deprecated: true
- x-linode-cli-skip: true
- x-linode-grant: read_write
- tags:
- - Account
- summary: Credit Card Add/Edit
- description: |
- **DEPRECATED**. Please use Payment Method Add ([POST /account/payment-methods](/docs/api/account/#payment-method-add)).
-
- Adds a credit card Payment Method to your account and sets it as the default method.
- operationId: createCreditCard
- x-linode-cli-action: update-card
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: Update the credit card information associated with your Account.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/CreditCard'
+ - account:read_only
+ summary: Get a payment method
+ tags:
+ - Payment methods
+ x-akamai:
+ tabs:
+ - syntax: linode-cli payment-methods view 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ x-linode-grant: read_only
+ delete:
+ description: >-
+ Deactivate the specified Payment Method.
+
+
+ The default Payment Method can not be deleted. To add a new default
+ Payment Method, run the [Add a payment
+ method](https://techdocs.akamai.com/linode-api/reference/post-payment-method)
+ operation. To designate an existing Payment Method as the default
+ method, run the [Set a default payment
+ method](https://techdocs.akamai.com/linode-api/reference/post-make-payment-method-default)
+ operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-payment-method
+ operationId: delete-payment-method
responses:
'200':
- description: Credit Card updated.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-payment-method-200.json
+ description: Payment Method deactivated.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "card_number": "4111111111111111",
- "expiry_month": 11,
- "expiry_year": 2020,
- "cvv": "111"
- }' \
- https://api.linode.com/v4/account/credit-card
- - lang: CLI
- source: |
- linode-cli account update-card \
- --card_number 4111111111111111 \
- --expiry_month 11 \
- --expiry_year 2025 \
- --cvv 111
- /account/entity-transfers:
- get:
- deprecated: true
- x-linode-grant: unrestricted only
- x-linode-cli-skip: true
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- tags:
- - Account
- summary: Entity Transfers List
- description: |
- **DEPRECATED**. Please use [Service Transfers List](/docs/api/account/#service-transfers-list).
- operationId: getEntityTransfers
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_only
+ summary: Delete a payment method
+ tags:
+ - Payment methods
+ x-akamai:
+ tabs:
+ - syntax: linode-cli payment-methods delete 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - delete
+ - rm
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Payment Method to look up.
+ example: '{{paymentMethodId}}'
+ in: path
+ name: paymentMethodId
+ required: true
+ schema:
+ example: 267
+ type: integer
+ x-akamai:
+ file-path: parameters/payment-method-id-path-6078bc7b.yaml
+ x-akamai:
+ file-path: paths/payment-method.yaml
+ path-info: /{apiVersion}/account/payment-methods/{paymentMethodId}
+ x-linode-cli-command: payment-methods
+ /account/payment-methods/{paymentMethodId}/make-default:
+ post:
+ description: >-
+ Make the specified Payment Method the default method for automatically
+ processing payments. Removes the default status from any other Payment
+ Method.
+
+
+ __Parent and child accounts__
+
+
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, the following apply:
+
+
+ - Child account users can't run this operation. These users don't have
+ access to billing-related operations.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-make-payment-method-default
+ operationId: post-make-payment-method-default
responses:
'200':
- description: |
- Returns a paginated list of Entity Transfer objects containing the details of all transfers that have been created and accepted by this account.
content:
application/json:
schema:
- allOf:
- - $ref: '#/components/schemas/PaginationEnvelope'
- - properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/EntityTransfer'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-make-payment-method-default-200.json
+ description: Payment Method successfully set as the default method.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/entity-transfers
- post:
- deprecated: true
- x-linode-grant: unrestricted only
- x-linode-cli-skip: true
- tags:
- - Account
- summary: Entity Transfer Create
- description: |
- **DEPRECATED**. Please use [Service Transfer Create](/docs/api/account/#service-transfer-create).
- operationId: createEntityTransfer
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
+ - account:read_write
+ summary: Set a default payment method
+ tags:
+ - Payment methods
+ x-akamai:
+ tabs:
+ - syntax: linode-cli payment-methods default 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: default
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Payment Method to make default.
+ example: '{{paymentMethodId}}'
+ in: path
+ name: paymentMethodId
+ required: true
+ schema:
+ example: 267
+ type: integer
+ x-akamai:
+ file-path: parameters/payment-method-id-path-fb39a844.yaml
+ x-akamai:
+ file-path: paths/make-default.yaml
+ path-info: /{apiVersion}/account/payment-methods/{paymentMethodId}/make-default
+ x-linode-cli-command: payment-methods
+ /account/payments:
+ post:
+ description: >-
+ Makes a Payment to your Account.
+
+
+ - The requested amount is charged to the default Payment Method if no
+ `payment_method_id` is specified.
+
+
+ - A `payment_submitted` event is generated when a payment is
+ successfully submitted.
+
+
+ __Parent and child accounts__
+
+
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, the following apply:
+
+
+ - Child account users can't run this operation. These users don't have
+ access to billing-related operations.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-payment
+ operationId: post-payment
requestBody:
- description: The entities to include in this transfer request.
content:
application/json:
schema:
- required:
- - entities
- type: object
- properties:
- entities:
- $ref: '#/components/schemas/EntityTransfer/properties/entities'
- responses:
- '200':
- description: |
- Returns an Entity Transfer object for the request.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/EntityTransfer'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "entities": {
- "linodes": [
- 111,
- 222
- ]
- }
- }' \
- https://api.linode.com/v4/account/entity-transfers
- '/account/entity-transfers/{token}':
- get:
- deprecated: true
- x-linode-grant: unrestricted only
- x-linode-cli-skip: true
- tags:
- - Account
- summary: Entity Transfer View
- description: |
- **DEPRECATED**. Please use [Service Transfer View](/docs/api/account/#service-transfer-view).
- operationId: getEntityTransfer
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
+ additionalProperties: false
+ properties:
+ payment_method_id:
+ description: The ID of the Payment Method to apply to the Payment.
+ example: '{{payment_method_id}}'
+ type: integer
+ usd:
+ description: >-
+ The amount in US Dollars of the Payment.
+
+
+ - Can begin with or without `$`.
+
+ - Commas (`,`) are not accepted.
+
+ - Must end with a decimal expression, such as `.00` or
+ `.99`.
+
+ - Minimum: `$5.00` or the Account balance, whichever is
+ lower.
+
+ - Maximum: `$2000.00` or the Account balance up to
+ `$50000.00`, whichever is greater.
+ example: '{{usd}}'
+ pattern: ^\$?\d+\.\d{2}$
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-payment.yaml
+ x-example:
+ x-ref: ../examples/post-payment.json
+ description: Information about the Payment you are making.
+ required: true
responses:
'200':
- description: |
- Returns an Entity Transfer object containing the details of the transfer for the specified token.
content:
application/json:
schema:
- $ref: '#/components/schemas/EntityTransfer'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/entity-transfers/123E4567-E89B-12D3-A456-426614174000
- parameters:
- - name: token
- in: path
- description: The UUID of the Entity Transfer.
- required: true
- schema:
- type: string
- format: uuid
- delete:
- deprecated: true
- x-linode-grant: unrestricted only
- x-linode-cli-skip: true
- tags:
- - Account
- summary: Entity Transfer Cancel
- description: |
- **DEPRECATED**. Please use [Service Transfer Cancel](/docs/api/account/#service-transfer-cancel).
- operationId: deleteEntityTransfer
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
- responses:
- '200':
- description: |
- Entity Transfer cancelled.
+ additionalProperties: false
+ description: Payment object response.
+ properties:
+ date:
+ description: __Read-only__ When the Payment was made.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ id:
+ description: __Read-only__ The unique ID of the Payment.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ usd:
+ description: __Read-only__ The amount, in US dollars, of the Payment.
+ example: '120.50'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 3
+ type: object
+ x-akamai:
+ file-path: schemas/payment.yaml
+ x-example:
+ x-ref: ../examples/post-payment-200.json
+ description: Payment submitted successfully.
+ '202':
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ warnings:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single warning associated
+ with a response.
+ properties:
+ details:
+ description: Specific information related to the warning.
+ example: Linode 123 could not be rebooted.
+ type: string
+ title:
+ description: The general warning message.
+ example: Unable to reboot Linode.
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/warning-object.yaml
+ type: array
type: object
+ description: |-
+ Accepted with warning.
+
+ A warnings array is included with the standard 200 response body.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/account/entity-transfers/123E4567-E89B-12D3-A456-426614174000
- parameters:
- - name: token
- in: path
- description: The UUID of the Entity Transfer.
- required: true
- schema:
- type: string
- format: uuid
- '/account/entity-transfers/{token}/accept':
- post:
- deprecated: true
- x-linode-grant: unrestricted only
- x-linode-cli-skip: true
- tags:
- - Account
- summary: Entity Transfer Accept
- description: |
- **DEPRECATED**. Please use [Service Transfer Accept](/docs/api/account/#service-transfer-accept).
- operationId: acceptEntityTransfer
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
- responses:
- '200':
- description: |
- Entity Transfer accepted.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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/account/entity-transfers/123E4567-E89B-12D3-A456-426614174000/accept
- parameters:
- - name: token
- in: path
- description: The UUID of the Entity Transfer.
- required: true
- schema:
- type: string
- format: uuid
- /account/events:
- get:
- x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- tags:
- - Account
- summary: Events List
- description: |
- Returns a collection of Event objects representing actions taken on your Account from the last 90 days. The Events returned depend on your grants.
- operationId: getEvents
- x-linode-cli-action:
- - list
- - ls
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'events:read_only'
+ - account:read_write
+ summary: Make a payment
+ tags:
+ - Payments
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli account payment-create \
+ --usd 120.50 \
+ --payment_method_id 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: payment-create
+ x-linode-grant: read_write
+ get:
+ description: >-
+ Returns a paginated list of Payments made on this Account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-payments
+ operationId: get-payments
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: |
- Returns a paginated lists of Event objects from the last 90 days.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
data:
- type: array
items:
- $ref: '#/components/schemas/Event'
+ additionalProperties: false
+ description: Payment object response.
+ properties:
+ date:
+ description: __Read-only__ When the Payment was made.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ id:
+ description: __Read-only__ The unique ID of the Payment.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ usd:
+ description: >-
+ __Read-only__ The amount, in US dollars, of the
+ Payment.
+ example: '120.50'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 3
+ type: object
+ x-akamai:
+ file-path: schemas/payment.yaml
+ type: array
page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-payments-200.yaml
+ x-example:
+ x-ref: ../examples/get-payments-200.json
+ description: Returns a paginated list of Payment objects.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/events
- - lang: CLI
- source: |
- linode-cli events list
- '/account/events/{eventId}':
- get:
- x-linode-grant: read_only
- tags:
- - Account
- summary: Event View
- description: |
- Returns a single Event object.
- operationId: getEvent
- x-linode-cli-action: view
- security:
- - personalAccessToken: []
- - oauth:
- - 'events:read_only'
- responses:
- '200':
- description: An Event object
content:
application/json:
schema:
- $ref: '#/components/schemas/Event'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/events/123
- - lang: CLI
- source: |
- linode-cli events view 123
- parameters:
- - name: eventId
- in: path
- description: The ID of the Event.
- required: true
- schema:
- type: integer
- '/account/events/{eventId}/read':
- post:
- x-linode-grant: read_only
- tags:
- - Account
- summary: Event Mark as Read
- description: Marks a single Event as read.
- operationId: eventRead
- x-linode-cli-action: mark-read
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'events:read_only'
+ - account:read_only
+ summary: List payments
+ tags:
+ - Payments
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account payments-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: payments-list
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/payments.yaml
+ path-info: /{apiVersion}/account/payments
+ x-linode-cli-command: account
+ /account/payments/paypal:
+ post:
+ deprecated: true
+ description: >-
+ __Deprecated__ This operation is disabled and no longer accessible.
+ PayPal can be designated as a Payment Method for automated payments
+ using the Cloud Manager. See [Manage Payment
+ Methods](https://www.linode.com/docs/products/platform/billing/guides/payment-methods/).
+ __OAuth scopes__.
+
+ ```
+ account:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-pay-pal-payment
+ operationId: post-pay-pal-payment
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An object representing the staging of a Payment via PayPal.
+ properties:
+ cancel_url:
+ description: The URL to have PayPal redirect to when Payment is canceled.
+ example: '{{cancel_url}}'
+ type: string
+ redirect_url:
+ description: The URL to have PayPal redirect to when Payment is approved.
+ example: '{{redirect_url}}'
+ type: string
+ usd:
+ description: >-
+ The payment amount in USD. Minimum accepted value of $5 USD.
+ Maximum accepted value of $500 USD or credit card payment
+ limit; whichever value is highest. PayPal's maximum
+ transaction limit is $10,000 USD.
+ example: '{{usd}}'
+ type: string
+ required:
+ - cancel_url
+ - redirect_url
+ - usd
+ type: object
+ x-akamai:
+ file-path: schemas/paypal.yaml
+ x-example:
+ x-ref: ../examples/post-pay-pal-payment.json
+ description: The amount of the Payment to submit via PayPal.
+ required: true
responses:
'200':
- description: Event read.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ checkout_token:
+ description: >-
+ __Read-only__ The checkout token generated for this
+ Payment.
+ example: EC-1A2B3C4D5E6F7G8H9
+ readOnly: true
+ type: string
+ payment_id:
+ description: >-
+ The paypal-generated ID for this Payment. Used when
+ authorizing the Payment in PayPal's interface.
+ example: PAY-1234567890ABCDEFGHIJKLMN
+ type: string
type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/account/events/123/read
- - lang: CLI
- source: |
- linode-cli events mark-read 123
- parameters:
- - name: eventId
- in: path
- description: The ID of the Event to designate as read.
- required: true
- schema:
- type: integer
- '/account/events/{eventId}/seen':
- post:
- x-linode-grant: read_write
- tags:
- - Account
- summary: Event Mark as Seen
- description: |
- Marks all Events up to and including this Event by ID as seen.
- operationId: eventSeen
- x-linode-cli-action: mark-seen
- security:
- - personalAccessToken: []
- - oauth:
- - 'events:read_only'
- responses:
- '200':
- description: Events seen.
+ x-akamai:
+ file-path: schemas/added-post-pay-pal-payment-200.yaml
+ x-example:
+ x-ref: ../examples/post-pay-pal-payment-200.json
+ description: PayPal Payment staged.
+ '299':
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ warnings:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single warning associated
+ with a response.
+ properties:
+ details:
+ description: Specific information related to the warning.
+ example: Linode 123 could not be rebooted.
+ type: string
+ title:
+ description: The general warning message.
+ example: Unable to reboot Linode.
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/warning-object.yaml
+ type: array
type: object
+ description: >-
+ Request successful. This operation is deprecated and may be removed
+ in a future release.
+
+
+ A warnings array is included with the standard 200 response body.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/account/events/123/seen
- - lang: CLI
- source: |
- linode-cli events mark-seen 123
- parameters:
- - name: eventId
- in: path
- description: The ID of the Event to designate as seen.
- required: true
- schema:
- type: integer
- /account/invoices:
- get:
- x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- tags:
- - Account
- summary: Invoices List
- description: |
- Returns a paginated list of Invoices against your Account.
- operationId: getInvoices
- x-linode-cli-action: invoices-list
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_write
+ summary: Stage a PayPal payment
+ tags:
+ - Payments
+ x-akamai:
+ status: DEPRECATED
+ tabs:
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: paypal-start
+ x-linode-cli-skip: true
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/paypal.yaml
+ path-info: /{apiVersion}/account/payments/paypal
+ x-linode-cli-command: account
+ /account/payments/paypal/execute:
+ post:
+ deprecated: true
+ description: >-
+ __Deprecated__ This operation is disabled and no longer accessible.
+ PayPal can be designated as a Payment Method for automated payments
+ using the Cloud Manager. See [Manage Payment
+ Methods](https://www.linode.com/docs/products/platform/billing/guides/payment-methods/).
+ __OAuth scopes__.
+
+ ```
+ account:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-execute-pay-pal-payment
+ operationId: post-execute-pay-pal-payment
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ An object representing an execution of Payment to PayPal to
+ capture the funds and credit your Linode Account.
+ properties:
+ payer_id:
+ description: >-
+ The PayerID returned by PayPal during the transaction
+ authorization process.
+ example: '{{payer_id}}'
+ type: string
+ payment_id:
+ description: >-
+ The PaymentID returned from [Stage a PayPal
+ payment](https://techdocs.akamai.com/linode-api/reference/post-pay-pal-payment)
+ that has been approved with PayPal.
+ example: '{{payment_id}}'
+ type: string
+ required:
+ - payer_id
+ - payment_id
+ type: object
+ x-akamai:
+ file-path: schemas/paypal-execute.yaml
+ x-example:
+ x-ref: ../examples/post-execute-pay-pal-payment.json
+ description: The details of the Payment to execute.
+ required: true
responses:
'200':
- description: Returns a paginated list of Invoice objects.
content:
application/json:
schema:
- type: object
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-execute-pay-pal-payment-200.json
+ description: PayPal Payment executed.
+ '202':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ warnings:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single warning associated
+ with a response.
+ properties:
+ details:
+ description: Specific information related to the warning.
+ example: Linode 123 could not be rebooted.
+ type: string
+ title:
+ description: The general warning message.
+ example: Unable to reboot Linode.
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/warning-object.yaml
+ type: array
+ type: object
+ description: |-
+ Accepted with warning.
+
+ A warnings array is included with the standard 200 response body.
+ '299':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ warnings:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single warning associated
+ with a response.
+ properties:
+ details:
+ description: Specific information related to the warning.
+ example: Linode 123 could not be rebooted.
+ type: string
+ title:
+ description: The general warning message.
+ example: Unable to reboot Linode.
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/warning-object.yaml
+ type: array
+ type: object
+ description: >-
+ Request successful. This operation is deprecated and may be removed
+ in a future release.
+
+
+ A warnings array is included with the standard 200 response body.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
items:
- $ref: '#/components/schemas/Invoice'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/invoices
- - lang: CLI
- source: |
- linode-cli account invoices-list
- '/account/invoices/{invoiceId}':
- get:
- x-linode-grant: read_only
- tags:
- - Account
- summary: Invoice View
- description: Returns a single Invoice object.
- operationId: getInvoice
- x-linode-cli-action: invoice-view
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_write
+ summary: Execute a PayPal payment
+ tags:
+ - Payments
+ x-akamai:
+ status: DEPRECATED
+ tabs:
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: paypal-execute
+ x-linode-cli-skip: true
+ x-linode-grant: read_write
+ parameters: []
+ x-akamai:
+ file-path: paths/execute.yaml
+ path-info: /{apiVersion}/account/payments/paypal/execute
+ x-linode-cli-command: account
+ /account/payments/{paymentId}:
+ get:
+ description: >-
+ Returns information about a specific Payment.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-payment
+ operationId: get-payment
responses:
'200':
- description: An Invoice object
content:
application/json:
schema:
- $ref: '#/components/schemas/Invoice'
+ additionalProperties: false
+ description: Payment object response.
+ properties:
+ date:
+ description: __Read-only__ When the Payment was made.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ id:
+ description: __Read-only__ The unique ID of the Payment.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ usd:
+ description: __Read-only__ The amount, in US dollars, of the Payment.
+ example: '120.50'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 3
+ type: object
+ x-akamai:
+ file-path: schemas/payment.yaml
+ x-example:
+ x-ref: ../examples/get-payment-200.json
+ description: A Payment object.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/invoices/123
- - lang: CLI
- source: |
- linode-cli account invoice-view 123
- parameters:
- - name: invoiceId
- in: path
- description: The ID of the Invoice.
- required: true
- schema:
- type: integer
- '/account/invoices/{invoiceId}/items':
- get:
- x-linode-grant: read_only
- parameters:
- - name: invoiceId
- in: path
- description: The ID of the Invoice.
- required: true
- schema:
- type: integer
- tags:
- - Account
- summary: Invoice Items List
- description: Returns a paginated list of Invoice items.
- operationId: getInvoiceItems
- x-linode-cli-action: invoice-items
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: A paginated list of InvoiceItem objects
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
items:
- $ref: '#/components/schemas/InvoiceItem'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/invoices/123/items
- - lang: CLI
- source: |
- linode-cli account invoice-items 123
- /account/logins:
- get:
- tags:
- - Account
- summary: User Logins List All
- description: |
- Returns a collection of successful logins for all users on the account during the last 90 days. This command can only be accessed by the unrestricted users of an account.
- operationId: getAccountLogins
- x-linode-cli-action: logins-list
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_only
+ summary: Get a payment
+ tags:
+ - Payments
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account payment-view 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: payment-view
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the Payment to look up.
+ example: '{{paymentId}}'
+ in: path
+ name: paymentId
+ required: true
+ schema:
+ example: 627
+ type: integer
+ x-akamai:
+ file-path: parameters/payment-id-path.yaml
+ x-akamai:
+ file-path: paths/payment.yaml
+ path-info: /{apiVersion}/account/payments/{paymentId}
+ x-linode-cli-command: account
+ /account/promo-codes:
+ post:
+ description: >-
+ Adds an expiring Promo Credit to your account. The following
+ restrictions apply:
+
+
+ - Your account needs to be less than 90 days old.
+
+
+ - You can't already have a Promo Credit on your account.
+
+
+ - The user making the request needs to be unrestricted. You can run the
+ [Update a
+ user](https://techdocs.akamai.com/linode-api/reference/put-user)
+ operation to change a user's restricted status.
+
+
+ - The `promo_code` needs to be valid and unexpired.
+
+
+ __Parent and child accounts__
+
+
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, the following apply:
+
+
+ - Child account users can't run this operation. These users don't have
+ access to billing-related operations.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-promo-credit
+ operationId: post-promo-credit
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ promo_code:
+ description: The Promo Code.
+ example: '{{promo_code}}'
+ maxLength: 32
+ minLength: 1
+ type: string
+ required:
+ - promo_code
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-promo-credit.yaml
+ x-example:
+ x-ref: ../examples/post-promo-credit.json
+ description: Enter a Promo Code to add its associated credit to your Account.
responses:
'200':
- description: |
- A collection of successful logins for all users on the account during the last 90 days.
content:
application/json:
schema:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Promotions generally offer a set amount of
+ credit that can be used toward your Linode services, and the
+ promotion expires after a specified date. As well, a monthly
+ cap on the promotional offer is set.
+
+
+ Simply put, a promotion offers a certain amount of credit
+ month, until either the expiration date is passed, or until
+ the total promotional credit is used, whichever comes first.
+ properties:
+ credit_monthly_cap:
+ description: The amount available to spend per month.
+ example: '10.00'
+ type: string
+ x-linode-cli-display: 5
+ credit_remaining:
+ description: The total amount of credit left for this promotion.
+ example: '50.00'
+ type: string
+ x-linode-cli-display: 3
+ description:
+ description: A detailed description of this promotion.
+ example: >-
+ Receive up to $10 off your services every month for 6
+ months! Unused credits will expire once this promotion
+ period ends.
+ type: string
+ expire_dt:
+ description: When this promotion's credits expire.
+ example: '2018-01-31T23:59:59'
+ type: string
+ x-linode-cli-display: 2
+ image_url:
+ description: The location of an image for this promotion.
+ example: https://linode.com/10_a_month_promotion.svg
+ type: string
+ service_type:
+ description: The service to which this promotion applies.
+ enum:
+ - all
+ - backup
+ - blockstorage
+ - db_mysql
+ - ip_v4
+ - linode
+ - linode_disk
+ - linode_memory
+ - longview
+ - managed
+ - nodebalancer
+ - objectstorage
+ - placement_group
+ - transfer_tx
+ example: all
+ type: string
+ x-linode-cli-display: 1
+ summary:
+ description: Short details of this promotion.
+ example: $10 off your Linode a month!
+ type: string
+ x-linode-cli-display: 10
+ this_month_credit_remaining:
+ description: >-
+ The amount of credit left for this month for this
+ promotion.
+ example: '10.00'
+ type: string
+ x-linode-cli-display: 4
+ readOnly: true
type: object
+ x-akamai:
+ file-path: schemas/promotion.yaml
+ x-example:
+ x-ref: ../examples/post-promo-credit-200.json
+ description: Promo Credit successfully added.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
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/account/logins
- - lang: CLI
- source: |
- linode-cli account logins-list
- '/account/logins/{loginId}':
- get:
- tags:
- - Account
- summary: Login View
- description: |
- Returns a Login object that displays information about a successful login. The logins that can be viewed can be for any user on the account, and are not limited to only the logins of the user that is accessing this API endpoint. This command can only be accessed by the unrestricted users of the account.
- operationId: getAccountLogin
- x-linode-cli-action: login-view
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_only
+ summary: Add a promo credit
+ tags:
+ - Promo credits
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli account \
+ promo-add \
+ --promo-code abcdefABCDEF1234567890
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: promo-add
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/promo-codes.yaml
+ path-info: /{apiVersion}/account/promo-codes
+ x-linode-cli-command: account
+ /account/service-transfers:
+ post:
+ description: >-
+ Creates a transfer request for the specified services. A request can
+ contain any of the specified service types and any number of each
+ service type. At this time, only Linodes can be transferred.
+
+
+ When created successfully, a confirmation email is sent to the account
+ that created this transfer containing a transfer token and instructions
+ on completing the transfer.
+
+
+ When a transfer is
+ [accepted](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer),
+ the requested services are moved to the receiving account. Linode
+ services will not experience interruptions due to the transfer process.
+ Backups for Linodes are transferred as well.
+
+
+ DNS records that are associated with requested services will not be
+ transferred or updated. Please ensure that associated DNS records have
+ been updated or communicated to the recipient prior to the transfer.
+
+
+ A transfer can take up to three hours to complete once accepted. When a
+ transfer is completed, billing for transferred services ends for the
+ sending account and begins for the receiving account.
+
+
+ This operation can only be accessed by the unrestricted users of an
+ account.
+
+
+ There are several conditions that you need to meet to successfully
+ create a transfer request:
+
+
+ 1. The account creating the transfer can't have a past due balance or
+ active Terms of Service violation.
+
+
+ 1. The service needs to be owned by the account that is creating the
+ transfer.
+
+
+ 1. The service can't be assigned to another Service Transfer that is
+ pending or that's been accepted and is incomplete.
+
+
+ 1. Linodes can't:
+
+ - be assigned to a NodeBalancer, Firewall, VLAN, VPC, or Managed Service.
+
+ - have any attached Block Storage Volumes.
+
+ - have any shared IP addresses.
+
+ - have any assigned /32, /56, /64, or /116 IPv6 ranges.
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-service-transfer
+ operationId: post-service-transfer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ entities:
+ additionalProperties: false
+ description: >-
+ A collection of the services to include in this transfer
+ request, separated by type.
+ properties:
+ linodes:
+ description: >-
+ An array containing the IDs of each of the Linodes
+ included in this transfer.
+ example:
+ - 111
+ - 222
+ items:
+ type: integer
+ type: array
+ x-linode-cli-display: 5
+ type: object
+ required:
+ - entities
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-service-transfer.yaml
+ x-example:
+ x-ref: ../examples/post-service-transfer.json
+ description: The services to include in this transfer request.
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/account/logins/1234
- - lang: CLI
- source: |
- linode-cli account login-view 1234
- parameters:
- - name: loginId
- in: path
- description: The ID of the login object to access.
- required: true
- schema:
- type: integer
- /account/maintenance:
- get:
- x-linode-grant: read_only
- servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
- tags:
- - Account
- summary: Maintenance List
- description: |
- Returns a collection of Maintenance objects for any entity a user has permissions to view. Cancelled Maintenance objects are not returned.
+ additionalProperties: false
+ description: An object representing a Service Transfer.
+ properties:
+ created:
+ description: When this transfer was created.
+ example: '2021-02-11T16:37:03'
+ format: date-time
+ type: string
+ entities:
+ additionalProperties: false
+ description: >-
+ A collection of the services to include in this transfer
+ request, separated by type.
+ properties:
+ linodes:
+ description: >-
+ An array containing the IDs of each of the Linodes
+ included in this transfer.
+ example:
+ - 111
+ - 222
+ items:
+ type: integer
+ type: array
+ x-linode-cli-display: 5
+ type: object
+ expiry:
+ description: >-
+ When this transfer expires. Transfers will automatically
+ expire 24 hours after creation.
+ example: '2021-02-12T16:37:03'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ is_sender:
+ description: >-
+ __Filterable__ If the requesting account created this
+ transfer.
+ example: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ status:
+ description: >-
+ __Filterable__ The status of the transfer request.
- Currently, Linodes are the only entities available for viewing.
- operationId: getMaintenance
- x-linode-cli-action: maintenance-list
- security:
- - personalAccessToken: []
- - oauth: []
- responses:
- '200':
- description: Returns a paginated list of Maintenance objects.
+
+ `accepted`: The transfer has been accepted by another user
+ and is currently in progress.
+
+ Transfers can take up to 3 hours to complete.
+
+
+ `canceled`: The transfer has been canceled by the sender.
+
+
+ `completed`: The transfer has completed successfully.
+
+
+ `failed`: The transfer has failed after initiation.
+
+
+ `pending`: The transfer is ready to be accepted.
+
+
+ `stale`: The transfer has exceeded its expiration date. It
+ can no longer be accepted or
+
+ canceled.
+ enum:
+ - accepted
+ - canceled
+ - completed
+ - failed
+ - pending
+ - stale
+ example: pending
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ accepted: yellow
+ canceled: red
+ completed: green
+ default_: white
+ failed: red
+ pending: yellow
+ stale: red
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ token:
+ description: >-
+ The token used to identify and accept or cancel this
+ transfer.
+ example: 123E4567-E89B-12D3-A456-426614174000
+ format: uuid
+ type: string
+ x-linode-cli-display: 1
+ updated:
+ description: When this transfer was last updated.
+ example: '2021-02-11T16:37:03'
+ format: date-time
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/service-transfer.yaml
+ x-example:
+ x-ref: ../examples/post-service-transfer-200.json
+ description: Returns a Service Transfer object for the request.
+ default:
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
items:
- $ref: '#/components/schemas/Maintenance'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/maintenance
- - lang: CLI
- source: |
- linode-cli account maintenance-list
- /account/notifications:
- get:
- x-linode-grant: read_only
- tags:
- - Account
- summary: Notifications List
- description: |
- Returns a collection of Notification objects representing important, often time-sensitive items related to your Account.
- You cannot interact directly with Notifications, and a Notification will disappear when the circumstances causing it have been resolved. For example, if you have an important Ticket open, you must respond to the Ticket to dismiss the Notification.
- operationId: getNotifications
- x-linode-cli-action: notifications-list
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_write
+ summary: Request a service transfer
+ tags:
+ - Service transfers
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli service-transfers \
+ create \
+ --entities.linodes 111 \
+ --entities.linodes 222
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: create
+ x-linode-grant: unrestricted only
+ get:
+ description: >-
+ Returns a collection of all created and accepted Service Transfers for
+ this account, regardless of the user that created or accepted the
+ transfer.
+
+
+ This operation can only be accessed by the unrestricted users of an
+ account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-service-transfers
+ operationId: get-service-transfers
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Returns a paginated list of Notification objects.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
data:
- type: array
items:
- $ref: '#/components/schemas/Notification'
+ additionalProperties: false
+ description: An object representing a Service Transfer.
+ properties:
+ created:
+ description: When this transfer was created.
+ example: '2021-02-11T16:37:03'
+ format: date-time
+ type: string
+ entities:
+ additionalProperties: false
+ description: >-
+ A collection of the services to include in this
+ transfer request, separated by type.
+ properties:
+ linodes:
+ description: >-
+ An array containing the IDs of each of the
+ Linodes included in this transfer.
+ example:
+ - 111
+ - 222
+ items:
+ type: integer
+ type: array
+ x-linode-cli-display: 5
+ type: object
+ expiry:
+ description: >-
+ When this transfer expires. Transfers will
+ automatically expire 24 hours after creation.
+ example: '2021-02-12T16:37:03'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ is_sender:
+ description: >-
+ __Filterable__ If the requesting account created
+ this transfer.
+ example: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ status:
+ description: >-
+ __Filterable__ The status of the transfer request.
+
+
+ `accepted`: The transfer has been accepted by
+ another user and is currently in progress.
+
+ Transfers can take up to 3 hours to complete.
+
+
+ `canceled`: The transfer has been canceled by the
+ sender.
+
+
+ `completed`: The transfer has completed
+ successfully.
+
+
+ `failed`: The transfer has failed after initiation.
+
+
+ `pending`: The transfer is ready to be accepted.
+
+
+ `stale`: The transfer has exceeded its expiration
+ date. It can no longer be accepted or
+
+ canceled.
+ enum:
+ - accepted
+ - canceled
+ - completed
+ - failed
+ - pending
+ - stale
+ example: pending
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ accepted: yellow
+ canceled: red
+ completed: green
+ default_: white
+ failed: red
+ pending: yellow
+ stale: red
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ token:
+ description: >-
+ The token used to identify and accept or cancel this
+ transfer.
+ example: 123E4567-E89B-12D3-A456-426614174000
+ format: uuid
+ type: string
+ x-linode-cli-display: 1
+ updated:
+ description: When this transfer was last updated.
+ example: '2021-02-11T16:37:03'
+ format: date-time
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/service-transfer.yaml
+ type: array
page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-service-transfers-200.yaml
+ x-example:
+ x-ref: ../examples/get-service-transfers-200.json
+ description: >-
+ Returns a paginated list of Service Transfer objects containing the
+ details of all transfers that have been created and accepted by this
+ account.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/notifications
- - lang: CLI
- source: |
- linode-cli account notifications-list
- /account/oauth-clients:
- get:
- x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- tags:
- - Account
- summary: OAuth Clients List
- description: |
- Returns a paginated list of OAuth Clients registered to your Account. OAuth Clients allow users to log into applications you write or host using their Linode Account, and may allow them to grant some level of access to their Linodes or other entities to your application.
- operationId: getClients
- x-linode-cli-action: clients-list
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: A paginated list of OAuth Clients.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
items:
- $ref: '#/components/schemas/OAuthClient'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/oauth-clients
- - lang: CLI
- source: |
- linode-cli account clients-list
- post:
- tags:
- - Account
- summary: OAuth Client Create
- description: |
- Creates an OAuth Client, which can be used to allow users (using their Linode account) to log in to your own application, and optionally grant your application some amount of access to their Linodes or other entities.
- operationId: createClient
- x-linode-cli-action: client-create
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: Information about the OAuth Client to create.
- content:
- application/json:
- schema:
- allOf:
- - $ref: '#/components/schemas/OAuthClient'
- required:
- - label
- - redirect_uri
+ - account:read_only
+ summary: List service transfers
+ tags:
+ - Service transfers
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli service-transfers \
+ list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/service-transfers.yaml
+ path-info: /{apiVersion}/account/service-transfers
+ x-linode-cli-command: service-transfers
+ /account/service-transfers/{token}:
+ get:
+ description: >-
+ Returns the details of the Service Transfer for the provided token.
+
+
+ While a transfer is pending, any unrestricted user _of any account_ can
+ access this operation. After a transfer has been accepted, it can only
+ be viewed by unrestricted users of the accounts that created and
+ accepted the transfer. If canceled or expired, only unrestricted users
+ of the account that created the transfer can view it.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-service-transfer
+ operationId: get-service-transfer
responses:
'200':
- description: Client created successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/OAuthClient'
+ additionalProperties: false
+ description: An object representing a Service Transfer.
+ properties:
+ created:
+ description: When this transfer was created.
+ example: '2021-02-11T16:37:03'
+ format: date-time
+ type: string
+ entities:
+ additionalProperties: false
+ description: >-
+ A collection of the services to include in this transfer
+ request, separated by type.
+ properties:
+ linodes:
+ description: >-
+ An array containing the IDs of each of the Linodes
+ included in this transfer.
+ example:
+ - 111
+ - 222
+ items:
+ type: integer
+ type: array
+ x-linode-cli-display: 5
+ type: object
+ expiry:
+ description: >-
+ When this transfer expires. Transfers will automatically
+ expire 24 hours after creation.
+ example: '2021-02-12T16:37:03'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ is_sender:
+ description: >-
+ __Filterable__ If the requesting account created this
+ transfer.
+ example: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ status:
+ description: >-
+ __Filterable__ The status of the transfer request.
+
+
+ `accepted`: The transfer has been accepted by another user
+ and is currently in progress.
+
+ Transfers can take up to 3 hours to complete.
+
+
+ `canceled`: The transfer has been canceled by the sender.
+
+
+ `completed`: The transfer has completed successfully.
+
+
+ `failed`: The transfer has failed after initiation.
+
+
+ `pending`: The transfer is ready to be accepted.
+
+
+ `stale`: The transfer has exceeded its expiration date. It
+ can no longer be accepted or
+
+ canceled.
+ enum:
+ - accepted
+ - canceled
+ - completed
+ - failed
+ - pending
+ - stale
+ example: pending
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ accepted: yellow
+ canceled: red
+ completed: green
+ default_: white
+ failed: red
+ pending: yellow
+ stale: red
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ token:
+ description: >-
+ The token used to identify and accept or cancel this
+ transfer.
+ example: 123E4567-E89B-12D3-A456-426614174000
+ format: uuid
+ type: string
+ x-linode-cli-display: 1
+ updated:
+ description: When this transfer was last updated.
+ example: '2021-02-11T16:37:03'
+ format: date-time
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/service-transfer.yaml
+ x-example:
+ x-ref: ../examples/get-service-transfer-200.json
+ description: >-
+ Returns a Service Transfer object containing the details of the
+ transfer for the specified token.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "redirect_uri": "https://example.org/oauth/callback",
- "label": "Test_Client_1",
- "public": false
- }' \
- https://api.linode.com/v4/account/oauth-clients
- - lang: CLI
- source: |
- linode-cli account client-create \
- --label Test_Client_1 \
- --redirect_uri https://example.org/callback
- '/account/oauth-clients/{clientId}':
- get:
- tags:
- - Account
- summary: OAuth Client View
- description: |
- Returns information about a single OAuth client.
- operationId: getClient
- x-linode-cli-action: client-view
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: Information about the requested client.
content:
application/json:
schema:
- $ref: '#/components/schemas/OAuthClient'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c
- - lang: CLI
- source: |
- linode-cli account client-view \
- edc6790ea9db4d224c5c
- parameters:
- - name: clientId
- in: path
- description: The OAuth Client ID to look up.
- required: true
- schema:
- type: string
- put:
- tags:
- - Account
- summary: OAuth Client Update
- description: |
- Update information about an OAuth Client on your Account. This can be especially useful to update the `redirect_uri` of your client in the event that the callback url changed in your application.
- operationId: updateClient
- x-linode-cli-action: client-update
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: The fields to update.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/OAuthClient'
+ - account:read_only
+ summary: Get a service transfer request
+ tags:
+ - Service transfers
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli service-transfers \
+ view 123E4567-E89B-12D3-A456-426614174000
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ x-linode-grant: unrestricted only
+ delete:
+ description: >-
+ Cancels the Service Transfer for the provided token. Once canceled, a
+ transfer cannot be accepted or otherwise acted on in any way. If
+ canceled in error, the transfer must be
+ [created](https://techdocs.akamai.com/linode-api/reference/post-service-transfer)
+ again.
+
+
+ When canceled, an email notification for the cancellation is sent to the
+ account that created this transfer. Transfers can not be canceled if
+ they are expired or have been accepted.
+
+
+ This operation can only be accessed by the unrestricted users of the
+ account that created this transfer.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-service-transfer
+ operationId: delete-service-transfer
responses:
'200':
- description: Client updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/OAuthClient'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-service-transfer-200.json
+ description: Service Transfer canceled.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "redirect_uri": "https://example.org/oauth/callback",
- "label": "Test_Client_1"
- }
- }' \
- https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c
- - lang: CLI
- source: |
- linode-cli account client-update \
- edc6790ea9db4d224c5c \
- --label Test_Client_1
- parameters:
- - name: clientId
- in: path
- description: The OAuth Client ID to look up.
- required: true
- schema:
- type: string
- delete:
- tags:
- - Account
- summary: OAuth Client Delete
- description: |
- Deletes an OAuth Client registered with Linode. The Client ID and Client secret will no longer be accepted by https://login.linode.com , and all tokens issued to this client will be invalidated (meaning that if your application was using a token, it will no longer work).
- operationId: deleteClient
- x-linode-cli-action: client-delete
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
- responses:
- '200':
- description: Client deleted successfully.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c
- - lang: CLI
- source: |
- linode-cli account client-delete \
- edc6790ea9db4d224c5c
- parameters:
- - name: clientId
- in: path
- description: The OAuth Client ID to look up.
- required: true
- schema:
- type: string
- '/account/oauth-clients/{clientId}/reset-secret':
- post:
- tags:
- - Account
- summary: OAuth Client Secret Reset
- description: |
- Resets the OAuth Client secret for a client you own, and returns the OAuth Client with the plaintext secret. This secret is not supposed to be publicly known or disclosed anywhere. This can be used to generate a new secret in case the one you have has been leaked, or to get a new secret if you lost the original. The old secret is expired immediately, and logins to your client with the old secret will fail.
- operationId: resetClientSecret
- x-linode-cli-action: client-reset-secret
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
+ - account:read_write
+ summary: Cancel a service transfer
+ tags:
+ - Service transfers
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli service-transfers \
+ cancel 123E4567-E89B-12D3-A456-426614174000
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: cancel
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The UUID of the Service Transfer.
+ example: '{{token}}'
+ in: path
+ name: token
+ required: true
+ schema:
+ format: uuid
+ type: string
+ x-akamai:
+ file-path: parameters/token-path-f857f5a2.yaml
+ x-akamai:
+ file-path: paths/service-transfer.yaml
+ path-info: /{apiVersion}/account/service-transfers/{token}
+ x-linode-cli-command: service-transfers
+ /account/service-transfers/{token}/accept:
+ post:
+ description: >-
+ Accept a Service Transfer for the provided token to receive the services
+ included in the transfer to your account. At this time, only Linodes can
+ be transferred.
+
+
+ When accepted, email confirmations are sent to the accounts that created
+ and accepted the transfer. A transfer can take up to three hours to
+ complete once accepted. Once a transfer is completed, billing for
+ transferred services ends for the sending account and begins for the
+ receiving account.
+
+
+ This operation can only be accessed by the unrestricted users of the
+ account that receives the transfer. Users of the same account that
+ created a transfer cannot accept the transfer.
+
+
+ There are several conditions that must be met in order to accept a
+ transfer request:
+
+
+ 1. Only transfers with a `pending` status can be accepted.
+
+
+ 1. The account accepting the transfer must have a registered payment
+ method and must not have a past due balance or other account limitations
+ for the services to be transferred.
+
+
+ 1. Both the account that created the transfer and the account that is
+ accepting the transfer must not have any active Terms of Service
+ violations.
+
+
+ 1. The service must still be owned by the account that created the
+ transfer.
+
+
+ 1. Linodes must not:
+
+ - be assigned to a NodeBalancer, Firewall, VLAN, or Managed Service.
+
+ - have any attached Block Storage Volumes.
+
+ - have any shared IP addresses.
+
+ - have any assigned /56, /64, or /116 IPv6 ranges.
+
+ Any and all of the above conditions must be cured and maintained by the
+ relevant account prior to the transfer's expiration to allow the
+ transfer to be accepted by the receiving account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer
+ operationId: post-accept-service-transfer
responses:
'200':
- description: Client secret reset successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/OAuthClient'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-accept-service-transfer-200.json
+ description: Service Transfer accepted.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c/reset-secret
- - lang: CLI
- source: |
- linode-cli account client-reset-secret \
- edc6790ea9db4d224c5c
- parameters:
- - name: clientId
- in: path
- description: The OAuth Client ID to look up.
- required: true
- schema:
- type: string
- '/account/oauth-clients/{clientId}/thumbnail':
- get:
- tags:
- - Account
- summary: OAuth Client Thumbnail View
- description: |
- Returns the thumbnail for this OAuth Client. This is a publicly-viewable endpoint, and can be accessed without authentication.
- operationId: getClientThumbnail
- x-linode-cli-skip: true
- x-linode-cli-action: client-thumbnail
- responses:
- '200':
- description: The client's thumbnail.
content:
- image/png:
+ application/json:
schema:
- type: string
- format: binary
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c/thumbnail > thumbnail.png
- parameters:
- - name: clientId
- in: path
- description: The OAuth Client ID to look up.
- required: true
- schema:
- type: string
- put:
- tags:
- - Account
- summary: OAuth Client Thumbnail Update
- description: |
- Upload a thumbnail for a client you own. You must upload an image file that will be returned when the thumbnail is retrieved. This image will be publicly-viewable.
- operationId: setClientThumbnail
- x-linode-cli-skip: true
- x-linode-cli-action: update-client-thumbnail
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: The image to set as the thumbnail.
+ - account:read_write
+ summary: Accept a service transfer
+ tags:
+ - Service transfers
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli service-transfers \
+ accept 123E4567-E89B-12D3-A456-426614174000
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: accept
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The UUID of the Service Transfer.
+ example: '{{token}}'
+ in: path
+ name: token
required: true
- content:
- image/png:
- schema:
- type: string
- format: binary
+ schema:
+ format: uuid
+ type: string
+ x-akamai:
+ file-path: parameters/token-path-f857f5a2.yaml
+ x-akamai:
+ file-path: paths/service-transfer-accept.yaml
+ path-info: /{apiVersion}/account/service-transfers/{token}/accept
+ x-linode-cli-command: service-transfers
+ /account/settings:
+ get:
+ description: >-
+ Returns information related to your Account settings: Managed service
+ subscription, interface settings for new Linodes, Longview subscription,
+ and Network Helper.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-account-settings
+ operationId: get-account-settings
responses:
'200':
- description: Thumbnail updated successfully.
content:
application/json:
schema:
+ additionalProperties: false
+ description: Account Settings object.
+ properties:
+ backups_enabled:
+ 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
+ type: boolean
+ x-linode-cli-display: 4
+ interfaces_for_new_linodes:
+ description: >-
+ __Beta__ Defines if new Linodes can use legacy
+ configuration interfaces:
+
+ - `legacy_config_only`. All new Linodes need to use legacy
+ configuration interfaces. Prevously created Linodes with
+ Linode Interfaces can still exist. Linodes using legacy
+ configuration interfaces can't be upgraded to use Linode
+ Interfaces.
+
+ - `legacy_config_default_but_linode_allowed`. New Linodes
+ can use legacy configuration interfaces or Linode
+ Interfaces, depending on the `interface_generation`
+ setting specified when creating the Linode. By default,
+ new Linodes use legacy configuration interfaces unless
+ otherwise specified. Linodes that use legacy configuration
+ interfaces can upgrade to Linode Interfaces. This is the
+ default setting for existing accounts.
+
+ - `linode_default_but_legacy_config_allowed`. New Linodes
+ can use legacy configuration interfaces or Linode
+ Interfaces, depending on the `interface_generation`
+ setting specified when creating the Linode. By default,
+ new Linodes use Linode Interfaces unless otherwise
+ specified. Linodes that use legacy configuration
+ interfaces can upgrade to Linode interfaces. This is the
+ default setting for new accounts.
+
+ - `linode_only`. All new Linodes need to use Linode
+ Interfaces. Prevously created Linodes with legacy
+ configuration profile interfaces can still exist if they
+ were created under a previous setting. Linodes using
+ legacy configuration interfaces can be upgraded to Linode
+ Interfaces.
+ enum:
+ - legacy_config_only
+ - legacy_config_default_but_linode_allowed
+ - linode_default_but_legacy_config_allowed
+ - linode_only
+ example: linode_only
+ type: string
+ x-akamai:
+ status: BETA
+ x-linode-cli-display: 6
+ longview_subscription:
+ description: >-
+ __Read-only__ The Longview Pro tier you are currently
+ subscribed to. The value must be a [Longview
+ subscription](https://techdocs.akamai.com/linode-api/reference/get-longview-subscriptions)
+ ID or `null` for Longview Free.
+ example: longview-3
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ managed:
+ description: >-
+ __Read-only__ 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
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ network_helper:
+ description: >-
+ Enables network helper across all users by default for new
+ Linodes and Linode Configs.
+ example: false
+ type: boolean
+ x-linode-cli-display: 1
+ object_storage:
+ default: disabled
+ description: >-
+ __Read-only__ A string describing the status of this
+ account's Object Storage service enrollment.
+ enum:
+ - disabled
+ - suspended
+ - active
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
type: object
+ x-akamai:
+ file-path: schemas/account-settings.yaml
+ x-example:
+ x-ref: ../examples/get-account-settings-200.json
+ description: Returns a single Account settings object.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: image/png" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT \
- --data-binary "/path/to/image"
- https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c/thumbnail
- parameters:
- - name: clientId
- in: path
- description: The OAuth Client ID to look up.
- required: true
- schema:
- type: string
- /account/payment-methods:
- get:
- servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- x-linode-grant: read_only
- tags:
- - Account
- summary: Payment Methods List
- description: |
- Returns a paginated list of Payment Methods for this Account.
- operationId: getPaymentMethods
- x-linode-cli-action:
- - list
- - ls
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: Returns a paginated list of Payment Method objects.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
items:
- $ref: '#/components/schemas/PaymentMethod'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/payment-methods
- - lang: CLI
- source: |
- linode-cli payment-methods list
- post:
- servers:
- - url: 'https://api.linode.com/v4'
- x-linode-grant: read_write
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: Get account settings
tags:
- - Account
- summary: Payment Method Add
- description: |
- Adds a Payment Method to your Account with the option to set it as the default method.
-
- * Adding a default Payment Method removes the default status from any other Payment Method.
+ - Account settings
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account settings
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: settings
+ x-linode-grant: read_only
+ put:
+ description: >-
+ Updates your account settings. For a Longview subscription plan, see
+ [Update a Longview
+ plan](https://techdocs.akamai.com/linode-api/reference/put-longview-plan).
- * An Account can have up to 6 active Payment Methods.
- * Up to 60 Payment Methods can be added each day.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- * Prior to adding a Payment Method, ensure that your billing address information is up-to-date
- with a valid `zip` by using the Account Update ([PUT /account](/docs/api/account/#account-update)) endpoint.
- * A `payment_method_add` event is generated when a payment is successfully submitted.
- operationId: createPaymentMethod
- x-linode-cli-action: add
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-account-settings
+ operationId: put-account-settings
requestBody:
- description: The details of the Payment Method to add.
- required: true
content:
application/json:
schema:
- type: object
- description: Payment Method Request Object.
- required:
- - type
- - data
- - is_default
+ additionalProperties: false
+ description: Account Settings object.
properties:
- type:
+ backups_enabled:
+ 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: '{{backups_enabled}}'
+ type: boolean
+ x-linode-cli-display: 4
+ interfaces_for_new_linodes:
+ description: >-
+ __Beta__ Defines if new Linodes can use legacy configuration
+ interfaces:
+
+ - `legacy_config_only`. All new Linodes need to use legacy
+ configuration interfaces. Prevously created Linodes with
+ Linode Interfaces can still exist. Linodes using legacy
+ configuration interfaces can't be upgraded to use Linode
+ Interfaces.
+
+ - `legacy_config_default_but_linode_allowed`. New Linodes
+ can use legacy configuration interfaces or Linode
+ Interfaces, depending on the `interface_generation` setting
+ specified when creating the Linode. By default, new Linodes
+ use legacy configuration interfaces unless otherwise
+ specified. Linodes that use legacy configuration interfaces
+ can upgrade to Linode Interfaces. This is the default
+ setting for existing accounts.
+
+ - `linode_default_but_legacy_config_allowed`. New Linodes
+ can use legacy configuration interfaces or Linode
+ Interfaces, depending on the `interface_generation` setting
+ specified when creating the Linode. By default, new Linodes
+ use Linode Interfaces unless otherwise specified. Linodes
+ that use legacy configuration interfaces can upgrade to
+ Linode interfaces. This is the default setting for new
+ accounts.
+
+ - `linode_only`. All new Linodes need to use Linode
+ Interfaces. Prevously created Linodes with legacy
+ configuration profile interfaces can still exist if they
+ were created under a previous setting. Linodes using legacy
+ configuration interfaces can be upgraded to Linode
+ Interfaces.
+ enum:
+ - legacy_config_only
+ - legacy_config_default_but_linode_allowed
+ - linode_default_but_legacy_config_allowed
+ - linode_only
+ example: '{{interfaces_for_new_linodes}}'
+ type: string
+ x-akamai:
+ status: BETA
+ x-linode-cli-display: 6
+ longview_subscription:
+ description: >-
+ __Read-only__ The Longview Pro tier you are currently
+ subscribed to. The value must be a [Longview
+ subscription](https://techdocs.akamai.com/linode-api/reference/get-longview-subscriptions)
+ ID or `null` for Longview Free.
+ example: '{{longview_subscription}}'
+ readOnly: true
type: string
+ x-linode-cli-display: 2
+ managed:
+ description: >-
+ __Read-only__ 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: '{{managed}}'
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ network_helper:
+ description: >-
+ Enables network helper across all users by default for new
+ Linodes and Linode Configs.
+ example: '{{network_helper}}'
+ type: boolean
+ x-linode-cli-display: 1
+ object_storage:
+ default: disabled
+ description: >-
+ __Read-only__ A string describing the status of this
+ account's Object Storage service enrollment.
enum:
- - credit_card
- description: |
- The type of Payment Method.
-
- Alternative Payment Methods including Google Pay and PayPal can be added using the Cloud Manager. See the [Manage Payment Methods](/docs/products/platform/billing/guides/payment-methods/) guide
- for details and instructions.
- example: credit_card
- is_default:
- $ref: '#/components/schemas/PaymentMethod/properties/is_default'
- data:
- $ref: '#/components/schemas/CreditCard'
+ - disabled
+ - suspended
+ - active
+ example: '{{object_storage}}'
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/account-settings.yaml
+ x-example:
+ x-ref: ../examples/put-account-settings.json
+ description: Update Account settings information.
+ required: true
responses:
'200':
- description: Payment Method added.
content:
application/json:
schema:
+ additionalProperties: false
+ description: Account Settings object.
+ properties:
+ backups_enabled:
+ 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
+ type: boolean
+ x-linode-cli-display: 4
+ interfaces_for_new_linodes:
+ description: >-
+ __Beta__ Defines if new Linodes can use legacy
+ configuration interfaces:
+
+ - `legacy_config_only`. All new Linodes need to use legacy
+ configuration interfaces. Prevously created Linodes with
+ Linode Interfaces can still exist. Linodes using legacy
+ configuration interfaces can't be upgraded to use Linode
+ Interfaces.
+
+ - `legacy_config_default_but_linode_allowed`. New Linodes
+ can use legacy configuration interfaces or Linode
+ Interfaces, depending on the `interface_generation`
+ setting specified when creating the Linode. By default,
+ new Linodes use legacy configuration interfaces unless
+ otherwise specified. Linodes that use legacy configuration
+ interfaces can upgrade to Linode Interfaces. This is the
+ default setting for existing accounts.
+
+ - `linode_default_but_legacy_config_allowed`. New Linodes
+ can use legacy configuration interfaces or Linode
+ Interfaces, depending on the `interface_generation`
+ setting specified when creating the Linode. By default,
+ new Linodes use Linode Interfaces unless otherwise
+ specified. Linodes that use legacy configuration
+ interfaces can upgrade to Linode interfaces. This is the
+ default setting for new accounts.
+
+ - `linode_only`. All new Linodes need to use Linode
+ Interfaces. Prevously created Linodes with legacy
+ configuration profile interfaces can still exist if they
+ were created under a previous setting. Linodes using
+ legacy configuration interfaces can be upgraded to Linode
+ Interfaces.
+ enum:
+ - legacy_config_only
+ - legacy_config_default_but_linode_allowed
+ - linode_default_but_legacy_config_allowed
+ - linode_only
+ example: linode_only
+ type: string
+ x-akamai:
+ status: BETA
+ x-linode-cli-display: 6
+ longview_subscription:
+ description: >-
+ __Read-only__ The Longview Pro tier you are currently
+ subscribed to. The value must be a [Longview
+ subscription](https://techdocs.akamai.com/linode-api/reference/get-longview-subscriptions)
+ ID or `null` for Longview Free.
+ example: longview-3
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ managed:
+ description: >-
+ __Read-only__ 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
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ network_helper:
+ description: >-
+ Enables network helper across all users by default for new
+ Linodes and Linode Configs.
+ example: false
+ type: boolean
+ x-linode-cli-display: 1
+ object_storage:
+ default: disabled
+ description: >-
+ __Read-only__ A string describing the status of this
+ account's Object Storage service enrollment.
+ enum:
+ - disabled
+ - suspended
+ - active
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
type: object
+ x-akamai:
+ file-path: schemas/account-settings.yaml
+ x-example:
+ x-ref: ../examples/get-account-settings-200.json
+ description: The updated Account settings.
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": "credit_card",
- "is_default": true,
- "data": {
- "card_number": "4111111111111111",
- "expiry_month": 11,
- "expiry_year": 2020,
- "cvv": "111"
- }
- }' \
- https://api.linode.com/v4/account/payment-methods
- - lang: CLI
- source: |
- linode-cli payment-methods add \
- --type credit_card \
- --is_default true \
- --data.card_number 4111111111111111 \
- --data.expiry_month 11 \
- --data.expiry_year 2020 \
- --data.cvv 111
- '/account/payment-methods/{paymentMethodId}':
- get:
- servers:
- - url: 'https://api.linode.com/v4'
- x-linode-grant: read_only
- tags:
- - Account
- summary: Payment Method View
- description: |
- View the details of the specified Payment Method.
- operationId: getPaymentMethod
- x-linode-cli-action: view
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: Returns a Payment Method Object.
content:
application/json:
schema:
- $ref: '#/components/schemas/PaymentMethod'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/payment-methods/123
- - lang: CLI
- source: |
- linode-cli payment-methods view 123
- parameters:
- - name: paymentMethodId
- in: path
- description: The ID of the Payment Method to look up.
- required: true
- schema:
- type: integer
- delete:
- x-linode-grant: read_write
- tags:
- - Account
- summary: Payment Method Delete
- description: |
- Deactivate the specified Payment Method.
-
- The default Payment Method can not be deleted. To add a new default Payment Method, access the Payment Method
- Add ([POST /account/payment-methods](/docs/api/account/#payment-method-add)) endpoint. To designate an existing
- Payment Method as the default method, access the Payment Method Make Default
- ([POST /account/payment-methods/{paymentMethodId}/make-default](/docs/api/account/#payment-method-make-default))
- endpoint.
- operationId: deletePaymentMethod
- x-linode-cli-action:
- - delete
- - rm
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
- responses:
- '200':
- description: Payment Method deactivated.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/account/payment-methods/123
- - lang: CLI
- source: |
- linode-cli payment-methods delete 123
- parameters:
- - name: paymentMethodId
- in: path
- description: The ID of the Payment Method to look up.
- required: true
- schema:
- type: integer
- '/account/payment-methods/{paymentMethodId}/make-default':
- post:
- servers:
- - url: 'https://api.linode.com/v4'
- x-linode-grant: read_write
+ - account:read_write
+ summary: Update account settings
tags:
- - Account
- summary: Payment Method Make Default
- description: |
- Make the specified Payment Method the default method for automatically processing payments.
+ - Account settings
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli account settings-update \
+ --network_helper false
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: settings-update
+ x-linode-grant: read_write
+ parameters: []
+ x-akamai:
+ file-path: paths/settings.yaml
+ path-info: /{apiVersion}/account/settings
+ x-linode-cli-command: account
+ /account/settings/managed-enable:
+ post:
+ description: >-
+ Enables Linode Managed for the entire account and sends a welcome email
+ to the account's associated email address. Linode Managed can monitor
+ any service or software stack reachable over TCP or HTTP. See our
+ [Linode Managed
+ guide](https://www.linode.com/docs/guides/linode-managed/) to learn
+ more.
- Removes the default status from any other Payment Method.
- operationId: makePaymentMethodDefault
- x-linode-cli-action: default
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-enable-account-managed
+ operationId: post-enable-account-managed
responses:
'200':
- description: Payment Method successfully set as the default method.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-enable-account-managed-200.json
+ description: Managed services enabled for account.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/account/payment-methods/123/make-default
- - lang: CLI
- source: |
- linode-cli payment-methods default 123
- parameters:
- - name: paymentMethodId
- in: path
- description: The ID of the Payment Method to make default.
- required: true
- schema:
- type: integer
- /account/payments:
- get:
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- x-linode-grant: read_only
- tags:
- - Account
- summary: Payments List
- description: |
- Returns a paginated list of Payments made on this Account.
- operationId: getPayments
- x-linode-cli-action: payments-list
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: Returns a paginated list of Payment objects.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
items:
- $ref: '#/components/schemas/Payment'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/payments
- - lang: CLI
- source: |
- linode-cli account payments-list
- post:
- x-linode-grant: read_write
- tags:
- - Account
- summary: Payment Make
- description: |
- Makes a Payment to your Account.
-
- * The requested amount is charged to the default Payment Method if no `payment_method_id` is specified.
-
- * A `payment_submitted` event is generated when a payment is successfully submitted.
- operationId: createPayment
- x-linode-cli-action: payment-create
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: Information about the Payment you are making.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/PaymentRequest'
+ - account:read_write
+ summary: Enable Linode Managed
+ tags:
+ - Settings
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account enable-managed
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: enable-managed
+ x-linode-grant: read_write
+ parameters: []
+ x-akamai:
+ file-path: paths/managed-enable.yaml
+ path-info: /{apiVersion}/account/settings/managed-enable
+ x-linode-cli-command: account
+ /account/transfer:
+ get:
+ description: >-
+ Returns a Transfer object showing your network utilization, in GB, for
+ the current month.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-transfer
+ operationId: get-transfer
responses:
'200':
- description: Payment submitted successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/Payment'
- '202':
- $ref: '#/components/responses/AcceptedResponse'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "cvv": "123",
- "usd": "120.50",
- "payment_method_id": 123
- }' \
- https://api.linode.com/v4/account/payments
- - lang: CLI
- source: |
- linode-cli account payment-create \
- --cvv 123 \
- --usd 120.50 \
- --payment_method_id 123
- '/account/payments/{paymentId}':
- get:
- x-linode-grant: read_only
- tags:
- - Account
- summary: Payment View
- description: |
- Returns information about a specific Payment.
- operationId: getPayment
- x-linode-cli-action: payment-view
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: A Payment object.
+ additionalProperties: false
+ description: >-
+ An object representing your network utilization for the
+ current month, in Gigabytes.
+
+
+ Certain Regions have separate utilization quotas and rates.
+ For Region-specific network utilization data, see
+ `region_transfers`.
+ properties:
+ billable:
+ description: >-
+ __Read-only__ The amount of your transfer pool that is
+ billable this billing cycle.
+ example: 0
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 3
+ quota:
+ description: >-
+ __Read-only__ The amount of network usage allowed this
+ billing cycle.
+ example: 9141
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ region_transfers:
+ items:
+ additionalProperties: false
+ properties:
+ billable:
+ description: >-
+ __Read-only__ The amount of your transfer pool that
+ is billable this billing cycle for this Region.
+ example: 0
+ readOnly: true
+ type: integer
+ id:
+ description: The Region ID for this network utilization data.
+ example: us-east
+ type: string
+ quota:
+ description: >-
+ __Read-only__ The amount of network usage allowed
+ this billing cycle for this Region.
+ example: 5010
+ readOnly: true
+ type: integer
+ used:
+ description: >-
+ __Read-only__ The amount of network usage you have
+ used this billing cycle for this Region.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ used:
+ description: >-
+ __Read-only__ The amount of network usage you have used
+ this billing cycle.
+ example: 2
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/transfer.yaml
+ x-example:
+ x-ref: ../examples/get-transfer-200.json
+ x-linode-cli-subtables:
+ - region_transfers
+ description: Returns a single Transfer object.
+ default:
content:
application/json:
schema:
- $ref: '#/components/schemas/Payment'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/payments/123
- - lang: CLI
- source: |
- linode-cli account payment-view 123
- parameters:
- - name: paymentId
- in: path
- description: The ID of the Payment to look up.
- required: true
- schema:
- type: integer
- /account/payments/paypal:
- post:
- x-linode-grant: read_only
- deprecated: true
- x-linode-cli-skip: true
- tags:
- - Account
- summary: PayPal Payment Stage
- description: |
- **Note**: This endpoint is disabled and no longer accessible. PayPal can be designated as a Payment Method for automated payments using the Cloud Manager. See [Manage Payment Methods](/docs/products/platform/billing/guides/payment-methods/).
- operationId: createPayPalPayment
- x-linode-cli-action: paypal-start
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
+ - account:read_only
+ summary: Get network usage
+ tags:
+ - Account transfer
+ x-akamai:
+ tabs:
+ - syntax: linode-cli account transfer
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: transfer
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/account-transfer.yaml
+ path-info: /{apiVersion}/account/transfer
+ x-linode-cli-command: account
+ /account/users:
+ post:
+ description: >-
+ Creates a user on your account. You determine the new user's account
+ access by setting it to restricted or unrestricted and by defining its
+ grants. After completion, the API sends a confirmation message
+ containing password creation and login instructions to the user's
+ `email` address.
+
+
+ > 📘
+
+ >
+
+ > This operation can only be accessed by account users with
+ _unrestricted_ access.
+
+
+ __Parent and child accounts__
+
+
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, the following apply:
+
+
+ - A parent account user can create new parent account users.
+
+
+ - A child account can
+ [update](https://techdocs.akamai.com/linode-api/reference/put-user) the
+ child account parent user (proxy user) to `unrestricted`. This gives the
+ proxy user access to create new child account users.
+
+
+ - A child account user can create new child account users.
+
+
+ - You can't create a proxy user. The proxy user in a child account is
+ predefined when you initially provision the parent-child relationship.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-user
+ operationId: post-user
requestBody:
- description: |
- The amount of the Payment to submit via PayPal.
- required: true
content:
application/json:
schema:
- $ref: '#/components/schemas/PayPal'
+ allOf:
+ - additionalProperties: false
+ description: >-
+ A user on your account. Unrestricted users can log in and
+ access information about your account, while restricted
+ users may only access entities or perform actions they've
+ been granted access to.
+ properties:
+ email:
+ description: >-
+ This user's email address. Akamai uses this address for
+ account management communications.
+ example: example_user@linode.com
+ format: email
+ type: string
+ x-linode-cli-display: 2
+ last_login:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Details on this user's last login attempt.
+ Returned as `null` if this user hasn't attempted a login
+ since it was created. You can run the [List user
+ logins](https://techdocs.akamai.com/linode-api/reference/get-account-logins)
+ operation for additional login information.
+ nullable: true
+ properties:
+ login_datetime:
+ description: >-
+ __Read-only__ The date and time of this user's most
+ recent login attempt.
+ example: '2018-01-01T01:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ status:
+ description: >-
+ __Read-only__ The result of this user's most recent
+ login attempt.
+ enum:
+ - successful
+ - failed
+ example: successful
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ password_created:
+ description: >-
+ __Read-only__ When this user's current password was
+ created. You initially create a password during the
+ account sign-up process, and you can update it using the
+ [Reset
+ Password](https://login.linode.com/forgot/password)
+ webpage. Returned as `null` if this user doesn't have a
+ password set.
+ example: '2018-01-01T01:01:01'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ restricted:
+ description: >-
+ If `true`, this user needs specific access granted to
+ perform actions or access entities on your account. Run
+ [List a user's
+ grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ for details on how to configure grants for a restricted
+ user.
+ example: true
+ type: boolean
+ x-linode-cli-display: 3
+ ssh_keys:
+ description: >-
+ __Read-only__ A list of the labels for SSH keys added by
+ this user. Users can add keys with the [Add an SSH
+ key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key)
+ operation. These keys are deployed when this user is
+ included in the `authorized_users` field of the
+ following requests:
+
+
+ - [Create a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+
+
+ - [Rebuild a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance)
+
+
+ - [Create a
+ disk](https://techdocs.akamai.com/linode-api/reference/post-add-linode-disk)
+ example:
+ - home-pc
+ - laptop
+ items:
+ type: string
+ readOnly: true
+ type: array
+ tfa_enabled:
+ description: >-
+ __Read-only__ Whether this user has Two Factor
+ Authentication (TFA) enabled. Run the [Create a two
+ factor
+ secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable)
+ operation to enable TFA.
+ example: true
+ readOnly: true
+ type: boolean
+ username:
+ description: >-
+ __Filterable__ The name of this user. This user needs to
+ use this value to log in. It may also display alongside
+ actions this user performs, including events or public
+ StackScripts.
+ example: example_user
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z0-9]((?![_-]{2,})[a-zA-Z0-9-_])+[a-zA-Z0-9]$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ verified_phone_number:
+ description: >-
+ __Read-only__ The
+ [verified](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify)
+ phone number for this user profile. Returned as `null`
+ if the user doesn't have a verified phone number.
+ example: '+5555555555'
+ format: phone
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/user.yaml
+ required:
+ - username
+ - email
+ x-akamai:
+ file-path: schemas/added-post-user.yaml
+ x-example:
+ x-ref: ../examples/post-user.json
+ description: Information about the User to create.
responses:
'200':
- description: PayPal Payment staged.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
+ description: >-
+ A user on your account. Unrestricted users can log in and
+ access information about your account, while restricted users
+ may only access entities or perform actions they've been
+ granted access to.
properties:
- payment_id:
+ email:
+ description: >-
+ This user's email address. Akamai uses this address for
+ account management communications.
+ example: example_user@linode.com
+ format: email
type: string
- description: |
- The paypal-generated ID for this Payment. Used when authorizing the Payment in PayPal's interface.
- example: PAY-1234567890ABCDEFGHIJKLMN
- checkout_token:
+ x-linode-cli-display: 2
+ last_login:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Details on this user's last login attempt.
+ Returned as `null` if this user hasn't attempted a login
+ since it was created. You can run the [List user
+ logins](https://techdocs.akamai.com/linode-api/reference/get-account-logins)
+ operation for additional login information.
+ nullable: true
+ properties:
+ login_datetime:
+ description: >-
+ __Read-only__ The date and time of this user's most
+ recent login attempt.
+ example: '2018-01-01T01:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ status:
+ description: >-
+ __Read-only__ The result of this user's most recent
+ login attempt.
+ enum:
+ - successful
+ - failed
+ example: successful
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ password_created:
+ description: >-
+ __Read-only__ When this user's current password was
+ created. You initially create a password during the
+ account sign-up process, and you can update it using the
+ [Reset Password](https://login.linode.com/forgot/password)
+ webpage. Returned as `null` if this user doesn't have a
+ password set.
+ example: '2018-01-01T01:01:01'
+ format: date-time
+ nullable: true
+ readOnly: true
type: string
- description: |
- The checkout token generated for this Payment.
- example: EC-1A2B3C4D5E6F7G8H9
+ restricted:
+ description: >-
+ If `true`, this user needs specific access granted to
+ perform actions or access entities on your account. Run
+ [List a user's
+ grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ for details on how to configure grants for a restricted
+ user.
+ example: true
+ type: boolean
+ x-linode-cli-display: 3
+ ssh_keys:
+ description: >-
+ __Read-only__ A list of the labels for SSH keys added by
+ this user. Users can add keys with the [Add an SSH
+ key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key)
+ operation. These keys are deployed when this user is
+ included in the `authorized_users` field of the following
+ requests:
+
+
+ - [Create a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+
+
+ - [Rebuild a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance)
+
+
+ - [Create a
+ disk](https://techdocs.akamai.com/linode-api/reference/post-add-linode-disk)
+ example:
+ - home-pc
+ - laptop
+ items:
+ type: string
readOnly: true
- '299':
- $ref: '#/components/responses/DeprecatedResponse'
+ type: array
+ tfa_enabled:
+ description: >-
+ __Read-only__ Whether this user has Two Factor
+ Authentication (TFA) enabled. Run the [Create a two factor
+ secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable)
+ operation to enable TFA.
+ example: true
+ readOnly: true
+ type: boolean
+ username:
+ description: >-
+ __Filterable__ The name of this user. This user needs to
+ use this value to log in. It may also display alongside
+ actions this user performs, including events or public
+ StackScripts.
+ example: example_user
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z0-9]((?![_-]{2,})[a-zA-Z0-9-_])+[a-zA-Z0-9]$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ verified_phone_number:
+ description: >-
+ __Read-only__ The
+ [verified](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify)
+ phone number for this user profile. Returned as `null` if
+ the user doesn't have a verified phone number.
+ example: '+5555555555'
+ format: phone
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/user.yaml
+ x-example:
+ x-ref: ../examples/post-user-200.json
+ description: New User created successfully.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "usd": "120.50",
- "redirect_url": "https://example.org",
- "cancel_url": "https://example.org"
- }' \
- https://api.linode.com/v4/account/payments/paypal
- - lang: CLI
- source: |
- linode-cli account paypal-start \
- --cancel_url https://example.org \
- --redirect_url https://example.org \
- --usd 120.50
- /account/payments/paypal/execute:
- post:
- x-linode-grant: read_write
- deprecated: true
- x-linode-cli-skip: true
- tags:
- - Account
- summary: Staged/Approved PayPal Payment Execute
- description: |
- **Note**: This endpoint is disabled and no longer accessible. PayPal can be designated as a Payment Method for automated payments using the Cloud Manager. See [Manage Payment Methods](/docs/products/platform/billing/guides/payment-methods/).
- operationId: executePayPalPayment
- x-linode-cli-action: paypal-execute
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: |
- The details of the Payment to execute.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/PayPalExecute'
+ - account:read_write
+ summary: Create a user
+ tags:
+ - Users
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli users create \
+ --username example_user \
+ --email example_user@linode.com \
+ --restricted true
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: create
+ x-linode-grant: unrestricted only
+ get:
+ description: >-
+ Returns a paginated list of all users on your account.
+
+
+ > 📘
+
+ >
+
+ > This operation can only be accessed by account users with
+ _unrestricted_ access.
+
+
+ A user can access all or part of an account based on their access status
+ and grants:
+
+
+ - __Unrestricted access__. These users can access everything on an
+ account.
+
+
+ - __Restricted access__. These users can only access entities or perform
+ actions they've been given specific grants to.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-users
+ operationId: get-users
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: PayPal Payment executed.
content:
application/json:
+ example:
+ data:
+ - email: jperez@linode.com
+ last_login:
+ login_datetime: '2018-01-01T01:01:01'
+ status: successful
+ password_created: '2018-01-01T01:01:01'
+ restricted: true
+ ssh_keys:
+ - home-pc
+ - laptop
+ tfa_enabled: true
+ user_type: parent
+ username: jsmith
+ verified_phone_number: '+5555555555'
+ page: 1
+ pages: 1
+ results: 1
schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ A user on your account. Unrestricted users can log
+ in and access information about your account, while
+ restricted users may only access entities or perform
+ actions they've been granted access to.
+ properties:
+ email:
+ description: >-
+ This user's email address. Akamai uses this
+ address for account management communications.
+ example: example_user@linode.com
+ format: email
+ type: string
+ x-linode-cli-display: 2
+ last_login:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Details on this user's last login
+ attempt. Returned as `null` if this user hasn't
+ attempted a login since it was created. You can
+ run the [List user
+ logins](https://techdocs.akamai.com/linode-api/reference/get-account-logins)
+ operation for additional login information.
+ nullable: true
+ properties:
+ login_datetime:
+ description: >-
+ __Read-only__ The date and time of this
+ user's most recent login attempt.
+ example: '2018-01-01T01:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ status:
+ description: >-
+ __Read-only__ The result of this user's most
+ recent login attempt.
+ enum:
+ - successful
+ - failed
+ example: successful
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ password_created:
+ description: >-
+ __Read-only__ When this user's current password
+ was created. You initially create a password
+ during the account sign-up process, and you can
+ update it using the [Reset
+ Password](https://login.linode.com/forgot/password)
+ webpage. Returned as `null` if this user doesn't
+ have a password set.
+ example: '2018-01-01T01:01:01'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ restricted:
+ description: >-
+ If `true`, this user needs specific access
+ granted to perform actions or access entities on
+ your account. Run [List a user's
+ grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ for details on how to configure grants for a
+ restricted user.
+ example: true
+ type: boolean
+ x-linode-cli-display: 3
+ ssh_keys:
+ description: >-
+ __Read-only__ A list of the labels for SSH keys
+ added by this user. Users can add keys with the
+ [Add an SSH
+ key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key)
+ operation. These keys are deployed when this
+ user is included in the `authorized_users` field
+ of the following requests:
+
+
+ - [Create a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+
+
+ - [Rebuild a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance)
+
+
+ - [Create a
+ disk](https://techdocs.akamai.com/linode-api/reference/post-add-linode-disk)
+ example:
+ - home-pc
+ - laptop
+ items:
+ type: string
+ readOnly: true
+ type: array
+ tfa_enabled:
+ description: >-
+ __Read-only__ Whether this user has Two Factor
+ Authentication (TFA) enabled. Run the [Create a
+ two factor
+ secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable)
+ operation to enable TFA.
+ example: true
+ readOnly: true
+ type: boolean
+ username:
+ description: >-
+ __Filterable__ The name of this user. This user
+ needs to use this value to log in. It may also
+ display alongside actions this user performs,
+ including events or public StackScripts.
+ example: example_user
+ maxLength: 32
+ minLength: 3
+ pattern: >-
+ ^[a-zA-Z0-9]((?![_-]{2,})[a-zA-Z0-9-_])+[a-zA-Z0-9]$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ verified_phone_number:
+ description: >-
+ __Read-only__ The
+ [verified](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify)
+ phone number for this user profile. Returned as
+ `null` if the user doesn't have a verified phone
+ number.
+ example: '+5555555555'
+ format: phone
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/user.yaml
+ - additionalProperties: false
+ description: >-
+ The type of user on an account. Mostly applies to
+ the use of the parent and child accounts for Akamai
+ partners functionality.
+ properties:
+ user_type:
+ description: >-
+ __Read-only__ If the user belongs to a [parent
+ or child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ relationship, this defines the user type in the
+ respective account. Possible values include:
+
+
+ - `parent`. This is a user in an Akamai partner
+ account. Akamai partners have a contractural
+ relationship with their end customers, to sell
+ Akamai services. This user can either have full
+ access (a parent account admin user) or limited
+ access. Limited users don't have access to
+ manage child accounts, but they can be granted
+ this access by an admin user.
+
+
+ - `child`. This is an Akamai partner's end
+ customer user, in a child account. A child user
+ can have either full or limited access. Full
+ access lets the user manage other child users
+ and the proxy user in a child account.
+
+
+ - `proxy`. This is a user on a child account
+ that gives parent account users access to that
+ child account. A parent account user with the
+ `child_account_access` grant can [Create a proxy
+ user
+ token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token)
+ from the parent account. The parent user can use
+ this token to run API operations from the child
+ account, as if they were a child user.
+
+
+ - `default`. This applies to all regular,
+ non-parent-child account users.
+ enum:
+ - parent
+ - child
+ - proxy
+ - default
+ example: parent
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/user-type.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
type: object
- '202':
- $ref: '#/components/responses/AcceptedResponse'
- '299':
- $ref: '#/components/responses/DeprecatedResponse'
+ x-akamai:
+ file-path: schemas/added-get-users-200.yaml
+ description: A paginated list of users.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "payment_id": "PAY-1234567890ABCDEFGHIJKLMN",
- "payer_id": "ABCDEFGHIJKLM"
- }' \
- https://api.linode.com/v4/account/payments/paypal
- - lang: CLI
- source: |
- linode-cli account paypal-execute
- /account/promo-codes:
- post:
- x-linode-grant: unrestricted only
- tags:
- - Account
- summary: Promo Credit Add
- description: |
- Adds an expiring Promo Credit to your account.
-
- The following restrictions apply:
-
- * Your account must be less than 90 days old.
- * There must not be an existing Promo Credit already on your account.
- * The requesting User must be unrestricted. Use the User Update
- ([PUT /account/users/{username}](/docs/api/account/#user-update)) to change a User's restricted status.
- * The `promo_code` must be valid and unexpired.
- operationId: createPromoCredit
- x-linode-cli-action: promo-add
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
- requestBody:
- description: Enter a Promo Code to add its associated credit to your Account.
- content:
- application/json:
- schema:
- required:
- - promo_code
- type: object
- properties:
- promo_code:
- type: string
- minLength: 1
- maxLength: 32
- description: |
- The Promo Code.
+ - account:read_only
+ summary: List users
+ tags:
+ - Users
+ x-akamai:
+ tabs:
+ - syntax: linode-cli users list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/users.yaml
+ path-info: /{apiVersion}/account/users
+ x-linode-cli-command: users
+ /account/users/{username}:
+ get:
+ description: >-
+ Returns information about a single user on your account.
+
+
+ > 📘
+
+ >
+
+ > This operation can only be accessed by account users with
+ _unrestricted_ access.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-user
+ operationId: get-user
responses:
'200':
- description: |
- Promo Credit successfully added.
content:
application/json:
+ example:
+ ref: ../examples/get-user-200.json
schema:
- $ref: '#/components/schemas/Promotion'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "promo_code": "abcdefABCDEF1234567890"
- }' \
- https://api.linode.com/v4/account/promo-codes
- - lang: CLI
- source: |
- linode-cli account \
- promo-add \
- --promo-code abcdefABCDEF1234567890
- /account/service-transfers:
- get:
- x-linode-grant: unrestricted only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- tags:
- - Account
- summary: Service Transfers List
- description: |
- Returns a collection of all created and accepted Service Transfers for this account, regardless of the user that created or accepted the transfer.
+ allOf:
+ - additionalProperties: false
+ description: >-
+ A user on your account. Unrestricted users can log in and
+ access information about your account, while restricted
+ users may only access entities or perform actions they've
+ been granted access to.
+ properties:
+ email:
+ description: >-
+ This user's email address. Akamai uses this address
+ for account management communications.
+ example: example_user@linode.com
+ format: email
+ type: string
+ x-linode-cli-display: 2
+ last_login:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Details on this user's last login
+ attempt. Returned as `null` if this user hasn't
+ attempted a login since it was created. You can run
+ the [List user
+ logins](https://techdocs.akamai.com/linode-api/reference/get-account-logins)
+ operation for additional login information.
+ nullable: true
+ properties:
+ login_datetime:
+ description: >-
+ __Read-only__ The date and time of this user's
+ most recent login attempt.
+ example: '2018-01-01T01:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ status:
+ description: >-
+ __Read-only__ The result of this user's most
+ recent login attempt.
+ enum:
+ - successful
+ - failed
+ example: successful
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ password_created:
+ description: >-
+ __Read-only__ When this user's current password was
+ created. You initially create a password during the
+ account sign-up process, and you can update it using
+ the [Reset
+ Password](https://login.linode.com/forgot/password)
+ webpage. Returned as `null` if this user doesn't have
+ a password set.
+ example: '2018-01-01T01:01:01'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ restricted:
+ description: >-
+ If `true`, this user needs specific access granted to
+ perform actions or access entities on your account.
+ Run [List a user's
+ grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ for details on how to configure grants for a
+ restricted user.
+ example: true
+ type: boolean
+ x-linode-cli-display: 3
+ ssh_keys:
+ description: >-
+ __Read-only__ A list of the labels for SSH keys added
+ by this user. Users can add keys with the [Add an SSH
+ key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key)
+ operation. These keys are deployed when this user is
+ included in the `authorized_users` field of the
+ following requests:
- This command can only be accessed by the unrestricted users of an account.
- operationId: getServiceTransfers
- x-linode-cli-action:
- - list
- - ls
+
+ - [Create a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+
+
+ - [Rebuild a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance)
+
+
+ - [Create a
+ disk](https://techdocs.akamai.com/linode-api/reference/post-add-linode-disk)
+ example:
+ - home-pc
+ - laptop
+ items:
+ type: string
+ readOnly: true
+ type: array
+ tfa_enabled:
+ description: >-
+ __Read-only__ Whether this user has Two Factor
+ Authentication (TFA) enabled. Run the [Create a two
+ factor
+ secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable)
+ operation to enable TFA.
+ example: true
+ readOnly: true
+ type: boolean
+ username:
+ description: >-
+ __Filterable__ The name of this user. This user needs
+ to use this value to log in. It may also display
+ alongside actions this user performs, including events
+ or public StackScripts.
+ example: example_user
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z0-9]((?![_-]{2,})[a-zA-Z0-9-_])+[a-zA-Z0-9]$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ verified_phone_number:
+ description: >-
+ __Read-only__ The
+ [verified](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify)
+ phone number for this user profile. Returned as `null`
+ if the user doesn't have a verified phone number.
+ example: '+5555555555'
+ format: phone
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/user.yaml
+ - additionalProperties: false
+ description: >-
+ The type of user on an account. Mostly applies to the use
+ of the parent and child accounts for Akamai partners
+ functionality.
+ properties:
+ user_type:
+ description: >-
+ __Read-only__ If the user belongs to a [parent or
+ child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ relationship, this defines the user type in the
+ respective account. Possible values include:
+
+
+ - `parent`. This is a user in an Akamai partner
+ account. Akamai partners have a contractural
+ relationship with their end customers, to sell Akamai
+ services. This user can either have full access (a
+ parent account admin user) or limited access. Limited
+ users don't have access to manage child accounts, but
+ they can be granted this access by an admin user.
+
+
+ - `child`. This is an Akamai partner's end customer
+ user, in a child account. A child user can have either
+ full or limited access. Full access lets the user
+ manage other child users and the proxy user in a child
+ account.
+
+
+ - `proxy`. This is a user on a child account that
+ gives parent account users access to that child
+ account. A parent account user with the
+ `child_account_access` grant can [Create a proxy user
+ token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token)
+ from the parent account. The parent user can use this
+ token to run API operations from the child account, as
+ if they were a child user.
+
+
+ - `default`. This applies to all regular,
+ non-parent-child account users.
+ enum:
+ - parent
+ - child
+ - proxy
+ - default
+ example: parent
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/user-type.yaml
+ x-akamai:
+ file-path: schemas/added-get-user-200.yaml
+ description: The requested User object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
- responses:
- '200':
- description: |
- Returns a paginated list of Service Transfer objects containing the details of all transfers that have been created and accepted by this account.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/ServiceTransfer'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/service-transfers
- - lang: CLI
- source: |
- linode-cli service-transfers \
- list
- post:
- x-linode-grant: unrestricted only
+ - account:read_only
+ summary: Get a user
tags:
- - Account
- summary: Service Transfer Create
- description: |
- Creates a transfer request for the specified services. A request can contain any of the specified service types
- and any number of each service type. At this time, only Linodes can be transferred.
+ - Users
+ x-akamai:
+ tabs:
+ - syntax: linode-cli users view example_user
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ x-linode-grant: unrestricted only
+ put:
+ description: >-
+ Update information about a user on your account, including its
+ restricted status. When setting a user to `restricted`, the API sets no
+ grants for it. You need to set grants so that user can access things on
+ the account.
- When created successfully, a confirmation email is sent to the account that created this transfer containing a
- transfer token and instructions on completing the transfer.
- When a transfer is [accepted](/docs/api/account/#service-transfer-accept), the requested services are moved to
- the receiving account. Linode services will not experience interruptions due to the transfer process. Backups
- for Linodes are transferred as well.
+ > 📘
- DNS records that are associated with requested services will not be transferred or updated. Please ensure that
- associated DNS records have been updated or communicated to the recipient prior to the transfer.
+ >
- A transfer can take up to three hours to complete once accepted. When a transfer is
- completed, billing for transferred services ends for the sending account and begins for the receiving account.
+ > This operation can only be accessed by account users with
+ _unrestricted_ access.
- This command can only be accessed by the unrestricted users of an account.
- There are several conditions that must be met in order to successfully create a transfer request:
+ __Parent and child accounts__
- 1. The account creating the transfer must not have a past due balance or active Terms of Service violation.
- 1. The service must be owned by the account that is creating the transfer.
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, the following apply:
- 1. The service must not be assigned to another Service Transfer that is pending or that has been accepted and is
- incomplete.
- 1. Linodes must not:
+ - You can't edit the `username` or `email` values for the child account
+ parent user (proxy user). These are predefined for the proxy user when
+ you initially provision the parent-child relationship. Only a proxy
+ user's `restricted` status can be modified. This can only be done by an
+ unrestricted child account user.
- * be assigned to a NodeBalancer, Firewall, VLAN, or Managed Service.
- * have any attached Block Storage Volumes.
+ - A parent account using an unrestricted proxy user in a child account
+ can modify the `username`, `email`, and `restricted` status for an
+ existing child account user.
- * have any shared IP addresses.
- * have any assigned /56, /64, or /116 IPv6 ranges.
- operationId: createServiceTransfer
- x-linode-cli-action: create
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+ - A restricted account user--parent or child--can't change their user to
+ `unrestricted`.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-user
+ operationId: put-user
requestBody:
- description: The services to include in this transfer request.
content:
application/json:
schema:
- required:
- - entities
- type: object
+ additionalProperties: false
+ description: >-
+ A user on your account. Unrestricted users can log in and access
+ information about your account, while restricted users may only
+ access entities or perform actions they've been granted access
+ to.
properties:
- entities:
- $ref: '#/components/schemas/ServiceTransfer/properties/entities'
+ email:
+ description: >-
+ This user's email address. Akamai uses this address for
+ account management communications.
+ example: '{{email}}'
+ format: email
+ type: string
+ x-linode-cli-display: 2
+ last_login:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Details on this user's last login attempt.
+ Returned as `null` if this user hasn't attempted a login
+ since it was created. You can run the [List user
+ logins](https://techdocs.akamai.com/linode-api/reference/get-account-logins)
+ operation for additional login information.
+ nullable: true
+ properties:
+ login_datetime:
+ description: >-
+ __Read-only__ The date and time of this user's most
+ recent login attempt.
+ example: '2018-01-01T01:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ status:
+ description: >-
+ __Read-only__ The result of this user's most recent
+ login attempt.
+ enum:
+ - successful
+ - failed
+ example: successful
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ password_created:
+ description: >-
+ __Read-only__ When this user's current password was created.
+ You initially create a password during the account sign-up
+ process, and you can update it using the [Reset
+ Password](https://login.linode.com/forgot/password) webpage.
+ Returned as `null` if this user doesn't have a password set.
+ example: '{{password_created}}'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ restricted:
+ description: >-
+ If `true`, this user needs specific access granted to
+ perform actions or access entities on your account. Run
+ [List a user's
+ grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ for details on how to configure grants for a restricted
+ user.
+ example: '{{restricted}}'
+ type: boolean
+ x-linode-cli-display: 3
+ ssh_keys:
+ description: >-
+ __Read-only__ A list of the labels for SSH keys added by
+ this user. Users can add keys with the [Add an SSH
+ key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key)
+ operation. These keys are deployed when this user is
+ included in the `authorized_users` field of the following
+ requests:
+
+
+ - [Create a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+
+
+ - [Rebuild a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance)
+
+
+ - [Create a
+ disk](https://techdocs.akamai.com/linode-api/reference/post-add-linode-disk)
+ example:
+ - home-pc
+ - laptop
+ items:
+ type: string
+ readOnly: true
+ type: array
+ tfa_enabled:
+ description: >-
+ __Read-only__ Whether this user has Two Factor
+ Authentication (TFA) enabled. Run the [Create a two factor
+ secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable)
+ operation to enable TFA.
+ example: '{{tfa_enabled}}'
+ readOnly: true
+ type: boolean
+ username:
+ description: >-
+ __Filterable__ The name of this user. This user needs to use
+ this value to log in. It may also display alongside actions
+ this user performs, including events or public StackScripts.
+ example: '{{username}}'
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z0-9]((?![_-]{2,})[a-zA-Z0-9-_])+[a-zA-Z0-9]$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ verified_phone_number:
+ description: >-
+ __Read-only__ The
+ [verified](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify)
+ phone number for this user profile. Returned as `null` if
+ the user doesn't have a verified phone number.
+ example: '{{verified_phone_number}}'
+ format: phone
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/user.yaml
+ x-example:
+ x-ref: ../examples/put-user.json
+ description: The information to update.
responses:
'200':
- description: |
- Returns a Service Transfer object for the request.
content:
application/json:
+ example:
+ email: jkowalski@linode.com
+ last_login:
+ login_datetime: '2018-01-01T01:01:01'
+ status: successful
+ password_created: '2018-01-01T01:01:01'
+ restricted: true
+ ssh_keys:
+ - home-pc
+ - laptop
+ tfa_enabled: true
+ user_type: parent
+ username: adevi
+ verified_phone_number: '+5555555555'
schema:
- $ref: '#/components/schemas/ServiceTransfer'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "entities": {
- "linodes": [
- 111,
- 222
- ]
- }
- }' \
- https://api.linode.com/v4/account/service-transfers
- - lang: CLI
- source: |
- linode-cli service-transfers \
- create \
- --entities.linodes 111 \
- --entities.linodes 222
- '/account/service-transfers/{token}':
- get:
- x-linode-grant: unrestricted only
- tags:
- - Account
- summary: Service Transfer View
- description: |
- Returns the details of the Service Transfer for the provided token.
+ allOf:
+ - additionalProperties: false
+ description: >-
+ A user on your account. Unrestricted users can log in and
+ access information about your account, while restricted
+ users may only access entities or perform actions they've
+ been granted access to.
+ properties:
+ email:
+ description: >-
+ This user's email address. Akamai uses this address
+ for account management communications.
+ example: example_user@linode.com
+ format: email
+ type: string
+ x-linode-cli-display: 2
+ last_login:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Details on this user's last login
+ attempt. Returned as `null` if this user hasn't
+ attempted a login since it was created. You can run
+ the [List user
+ logins](https://techdocs.akamai.com/linode-api/reference/get-account-logins)
+ operation for additional login information.
+ nullable: true
+ properties:
+ login_datetime:
+ description: >-
+ __Read-only__ The date and time of this user's
+ most recent login attempt.
+ example: '2018-01-01T01:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ status:
+ description: >-
+ __Read-only__ The result of this user's most
+ recent login attempt.
+ enum:
+ - successful
+ - failed
+ example: successful
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ password_created:
+ description: >-
+ __Read-only__ When this user's current password was
+ created. You initially create a password during the
+ account sign-up process, and you can update it using
+ the [Reset
+ Password](https://login.linode.com/forgot/password)
+ webpage. Returned as `null` if this user doesn't have
+ a password set.
+ example: '2018-01-01T01:01:01'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ restricted:
+ description: >-
+ If `true`, this user needs specific access granted to
+ perform actions or access entities on your account.
+ Run [List a user's
+ grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ for details on how to configure grants for a
+ restricted user.
+ example: true
+ type: boolean
+ x-linode-cli-display: 3
+ ssh_keys:
+ description: >-
+ __Read-only__ A list of the labels for SSH keys added
+ by this user. Users can add keys with the [Add an SSH
+ key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key)
+ operation. These keys are deployed when this user is
+ included in the `authorized_users` field of the
+ following requests:
- While a transfer is pending, any unrestricted user *of any account* can access this command. After a
- transfer has been accepted, it can only be viewed by unrestricted users of the accounts that created and
- accepted the transfer. If cancelled or expired, only unrestricted users of the account that created the
- transfer can view it.
- operationId: getServiceTransfer
- x-linode-cli-action: view
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: |
- Returns a Service Transfer object containing the details of the transfer for the specified token.
+
+ - [Create a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+
+
+ - [Rebuild a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance)
+
+
+ - [Create a
+ disk](https://techdocs.akamai.com/linode-api/reference/post-add-linode-disk)
+ example:
+ - home-pc
+ - laptop
+ items:
+ type: string
+ readOnly: true
+ type: array
+ tfa_enabled:
+ description: >-
+ __Read-only__ Whether this user has Two Factor
+ Authentication (TFA) enabled. Run the [Create a two
+ factor
+ secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable)
+ operation to enable TFA.
+ example: true
+ readOnly: true
+ type: boolean
+ username:
+ description: >-
+ __Filterable__ The name of this user. This user needs
+ to use this value to log in. It may also display
+ alongside actions this user performs, including events
+ or public StackScripts.
+ example: example_user
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z0-9]((?![_-]{2,})[a-zA-Z0-9-_])+[a-zA-Z0-9]$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ verified_phone_number:
+ description: >-
+ __Read-only__ The
+ [verified](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify)
+ phone number for this user profile. Returned as `null`
+ if the user doesn't have a verified phone number.
+ example: '+5555555555'
+ format: phone
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/user.yaml
+ - additionalProperties: false
+ description: >-
+ The type of user on an account. Mostly applies to the use
+ of the parent and child accounts for Akamai partners
+ functionality.
+ properties:
+ user_type:
+ description: >-
+ __Read-only__ If the user belongs to a [parent or
+ child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ relationship, this defines the user type in the
+ respective account. Possible values include:
+
+
+ - `parent`. This is a user in an Akamai partner
+ account. Akamai partners have a contractural
+ relationship with their end customers, to sell Akamai
+ services. This user can either have full access (a
+ parent account admin user) or limited access. Limited
+ users don't have access to manage child accounts, but
+ they can be granted this access by an admin user.
+
+
+ - `child`. This is an Akamai partner's end customer
+ user, in a child account. A child user can have either
+ full or limited access. Full access lets the user
+ manage other child users and the proxy user in a child
+ account.
+
+
+ - `proxy`. This is a user on a child account that
+ gives parent account users access to that child
+ account. A parent account user with the
+ `child_account_access` grant can [Create a proxy user
+ token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token)
+ from the parent account. The parent user can use this
+ token to run API operations from the child account, as
+ if they were a child user.
+
+
+ - `default`. This applies to all regular,
+ non-parent-child account users.
+ enum:
+ - parent
+ - child
+ - proxy
+ - default
+ example: parent
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/user-type.yaml
+ x-akamai:
+ file-path: schemas/added-put-user-200.yaml
+ description: User updated successfully.
+ default:
content:
application/json:
schema:
- $ref: '#/components/schemas/ServiceTransfer'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/service-transfers/123E4567-E89B-12D3-A456-426614174000
- - lang: CLI
- source: |
- linode-cli service-transfers \
- view 123E4567-E89B-12D3-A456-426614174000
- parameters:
- - name: token
- in: path
- description: The UUID of the Service Transfer.
- required: true
- schema:
- type: string
- format: uuid
- delete:
- x-linode-grant: unrestricted only
- tags:
- - account
- summary: Service Transfer Cancel
- description: |
- Cancels the Service Transfer for the provided token. Once cancelled, a transfer cannot be accepted or otherwise
- acted on in any way. If cancelled in error, the transfer must be
- [created](/docs/api/account/#service-transfer-create) again.
-
- When cancelled, an email notification for the cancellation is sent to the account that created
- this transfer. Transfers can not be cancelled if they are expired or have been accepted.
-
- This command can only be accessed by the unrestricted users of the account that created this transfer.
- operationId: deleteServiceTransfer
- x-linode-cli-action: cancel
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- responses:
- '200':
- description: |
- Service Transfer cancelled.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/account/service-transfers/123E4567-E89B-12D3-A456-426614174000
- - lang: CLI
- source: |
- linode-cli service-transfers \
- cancel 123E4567-E89B-12D3-A456-426614174000
- parameters:
- - name: token
- in: path
- description: The UUID of the Service Transfer.
- required: true
- schema:
- type: string
- format: uuid
- '/account/service-transfers/{token}/accept':
- post:
- x-linode-grant: unrestricted only
+ - account:read_write
+ summary: Update a user
tags:
- - Account
- summary: Service Transfer Accept
- description: |
- Accept a Service Transfer for the provided token to receive the services included in the transfer to your
- account. At this time, only Linodes can be transferred.
+ - Users
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli users update example_user \
+ --username example_user \
+ --email example@linode.com \
+ --restricted true
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update
+ x-linode-grant: unrestricted only
+ delete:
+ description: >-
+ Deletes a user. The API immediately logs the user out and removes all of
+ its `grants`.
- When accepted, email confirmations are sent to the accounts that created and accepted the transfer. A transfer
- can take up to three hours to complete once accepted. Once a transfer is completed, billing for transferred
- services ends for the sending account and begins for the receiving account.
- This command can only be accessed by the unrestricted users of the account that receives the transfer. Users
- of the same account that created a transfer cannot accept the transfer.
+ > 📘
- There are several conditions that must be met in order to accept a transfer request:
+ >
- 1. Only transfers with a `pending` status can be accepted.
+ > This operation can only be accessed by account users with
+ _unrestricted_ access.
- 1. The account accepting the transfer must have a registered payment method and must not have a past due
- balance or other account limitations for the services to be transferred.
- 1. Both the account that created the transfer and the account that is accepting the transfer must not have any
- active Terms of Service violations.
+ __Parent and child accounts__
- 1. The service must still be owned by the account that created the transfer.
- 1. Linodes must not:
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, the following apply:
- * be assigned to a NodeBalancer, Firewall, VLAN, or Managed Service.
- * have any attached Block Storage Volumes.
+ - You can't delete a child account parent user (proxy user). The API
+ returns a 403 error if you target a proxy user with this operation.
- * have any shared IP addresses.
- * have any assigned /56, /64, or /116 IPv6 ranges.
+ - A parent account using an unrestricted proxy user can use this
+ operation to delete a child account user.
- Any and all of the above conditions must be cured and maintained by the relevant account prior to the
- transfer's expiration to allow the transfer to be accepted by the receiving account.
- operationId: acceptServiceTransfer
- x-linode-cli-action: accept
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-user
+ operationId: delete-user
responses:
'200':
- description: |
- Service Transfer accepted.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-user-200.json
+ description: User deleted successfully.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/account/service-transfers/123E4567-E89B-12D3-A456-426614174000/accept
- - lang: CLI
- source: |
- linode-cli service-transfers \
- accept 123E4567-E89B-12D3-A456-426614174000
- parameters:
- - name: token
- in: path
- description: The UUID of the Service Transfer.
- required: true
- schema:
- type: string
- format: uuid
- /account/settings:
- get:
- x-linode-grant: read_only
- tags:
- - Account
- summary: Account Settings View
- description: |
- Returns information related to your Account settings: Managed service subscription, Longview subscription, and network helper.
- operationId: getAccountSettings
- x-linode-cli-action: settings
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: Returns a single Account settings object.
content:
application/json:
schema:
- $ref: '#/components/schemas/AccountSettings'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/settings
- - lang: CLI
- source: |
- linode-cli account settings
- put:
- x-linode-grant: read_write
- tags:
- - Account
- summary: Account Settings Update
- description: |
- Updates your Account settings.
-
- To update your Longview subscription plan, send a request to [Update Longview Plan](/docs/api/longview/#longview-plan-update).
- operationId: updateAccountSettings
- x-linode-cli-action: settings-update
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: Update Account settings information.
+ - account:read_write
+ summary: Delete a user
+ tags:
+ - Users
+ x-akamai:
+ tabs:
+ - syntax: linode-cli users delete example_user
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - delete
+ - rm
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The username to look up.
+ example: '{{username}}'
+ in: path
+ name: username
required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/AccountSettings'
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/username-path.yaml
+ x-akamai:
+ file-path: paths/username.yaml
+ path-info: /{apiVersion}/account/users/{username}
+ x-linode-cli-command: users
+ /account/users/{username}/grants:
+ get:
+ description: >-
+ Returns the full grants structure for an account username you specify.
+ This includes all entities on the account, and the level of access this
+ user has to each of them.
+
+
+ This doesn't apply to the account owner or the current authenticated
+ user. You can run the [List
+ grants](https://techdocs.akamai.com/linode-api/reference/get-profile-grants)
+ operation to view those grants. However, this doesn't show the entities
+ that they _don't_ have access to.
+
+
+ > 📘
+
+ >
+
+ > This operation can only be accessed by account users with
+ _unrestricted_ access. __OAuth scopes__.
+
+ ```
+ account:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-user-grants
+ operationId: get-user-grants
responses:
'200':
- description: The updated Account settings.
content:
application/json:
schema:
- $ref: '#/components/schemas/AccountSettings'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "network_helper": true,
- }' \
- https://api.linode.com/v4/account/settings
- - lang: CLI
- source: |
- linode-cli account settings-update \
- --network_helper false
- /account/settings/managed-enable:
- post:
- x-linode-grant: read_write
- tags:
- - Account
- summary: Linode Managed Enable
- description: |
- Enables Linode Managed for the entire account and sends a welcome email to the account's associated email address. Linode Managed can monitor any service or software stack reachable over TCP or HTTP. See our [Linode Managed guide](/docs/guides/linode-managed/) to learn more.
- operationId: enableAccountManaged
- x-linode-cli-action: enable-managed
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
- responses:
- '200':
- description: Managed services enabled for account.
+ additionalProperties: false
+ properties:
+ database:
+ description: >-
+ The grants this user has for individual Managed Databases
+ on this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ domain:
+ description: >-
+ The grants this user has for individual domains on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ firewall:
+ description: >-
+ The grants this user has for individual firewalls on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ global:
+ additionalProperties: false
+ description: The grants the user has to all resources on your account.
+ properties:
+ account_access:
+ description: >-
+ The level of access this user has to account-level
+ actions, like billing information and user management.
+
+
+ > 📘
+
+ >
+
+ > A `restricted` user can't be used to manage users,
+ even if this is set to `read-write`. Only unrestricted
+ users can manage other users on an account.
+
+
+ __Parent and child accounts__
+
+
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, this grant can be added to a child
+ account user, to give the user `read-write` access.
+ This gives the child user unrestricted access to
+ expected management operations, such as creating other
+ child users. However, child users don't have write
+ access to billing operations. The API issues a
+ specific error message if a write operation is
+ attempted by a child user.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ add_databases:
+ description: >-
+ Whether this user can add Managed Databases on the
+ account.
+ example: true
+ type: boolean
+ add_domains:
+ description: Whether this user can add domains on the account.
+ example: true
+ type: boolean
+ add_firewalls:
+ description: Whether this user can add Firewalls on the account.
+ example: true
+ type: boolean
+ add_images:
+ description: >-
+ Whether this user can create images from disks on your
+ Linodes, on the account.
+ example: true
+ type: boolean
+ add_linodes:
+ description: Whether this user can create Linodes.
+ example: true
+ type: boolean
+ add_longview:
+ description: >-
+ Whether this user can create Longview clients and view
+ the current plan.
+ example: true
+ type: boolean
+ add_nodebalancers:
+ description: >-
+ Whether this user can add NodeBalancers on the
+ account.
+ example: true
+ type: boolean
+ add_stackscripts:
+ description: Whether this user can add StackScripts on the account.
+ example: true
+ type: boolean
+ add_volumes:
+ description: Whether this user can add volumes on the account.
+ example: true
+ type: boolean
+ add_vpcs:
+ description: >-
+ Whether this user can add Virtual Private Clouds
+ (VPCs) on the account.
+ example: true
+ type: boolean
+ cancel_account:
+ description: Whether this user can cancel the entire account.
+ example: false
+ type: boolean
+ child_account_access:
+ description: >-
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, this gives a parent account access to
+ operations that can be used to manage child accounts.
+ Unrestricted parent account users have access to this
+ grant, while restricted parent users don't. An
+ unrestricted parent user can set this to `true` to add
+ this grant to a restricted parent user. Displayed as
+ `null` for all non-parent accounts.
+ example: true
+ nullable: true
+ type: boolean
+ longview_subscription:
+ description: >-
+ Whether this user can manage your account's Longview
+ subscription.
+ example: true
+ type: boolean
+ type: object
+ image:
+ description: >-
+ The grants this user has for individual images on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ linode:
+ description: >-
+ The grants this user has for individual Linodes on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ longview:
+ description: >-
+ The grants this user has for individual Longview Clients
+ on this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ nodebalancer:
+ description: >-
+ The grants this user has for individual NodeBalancers on
+ this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ stackscript:
+ description: >-
+ The grants this User has for individual StackScripts on
+ this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ volume:
+ description: >-
+ The grants this user has individual Block Storage Volumes
+ on this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ vpc:
+ description: >-
+ The grants this user has individual Virtual Private Clouds
+ (VPCs) on this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/grants-response.yaml
+ x-example:
+ x-ref: ../examples/get-user-grants-200.json
+ description: The User's grants.
+ '204':
+ content: {}
+ description: >-
+ This is an unrestricted user. These users don't use grants. They can
+ access everything on the account and perform all actions.
+ default:
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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/account/settings/managed-enable
- - lang: CLI
- source: |
- linode-cli account enable-managed
- /account/transfer:
- get:
- x-linode-grant: read_only
- tags:
- - Account
- summary: Network Utilization View
- description: |
- Returns a Transfer object showing your network utilization, in GB, for the current month.
- operationId: getTransfer
- x-linode-cli-action: transfer
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
- responses:
- '200':
- description: Returns a single Transfer object.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Transfer'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/transfer
- - lang: CLI
- source: |
- linode-cli account transfer
- /account/users:
- get:
- x-linode-grant: unrestricted only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ - account:read_only
+ summary: List a user's grants
tags:
- - Account
- summary: Users List
- description: |
- Returns a paginated list of Users on your Account.
+ - Users
+ x-akamai:
+ tabs:
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: grants
+ x-linode-cli-skip: true
+ x-linode-grant: unrestricted only
+ put:
+ description: >-
+ Update the grants for a
+ [restricted](https://techdocs.akamai.com/linode-api/reference/post-user)
+ user. This can be used to give a user access to new entities or actions,
+ or take access away. Omit a grant object from the request to keep its
+ current setting.
- This command can only be accessed by the unrestricted users of an account.
- Users may access all or part of your Account based on their restricted status and grants. An unrestricted User may access everything on the account, whereas restricted User may only access entities or perform actions they've been given specific grants to.
- operationId: getUsers
- x-linode-cli-action:
- - list
- - ls
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: A paginated list of Users.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/User'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/users
- - lang: CLI
- source: |
- linode-cli users list
- post:
- x-linode-grant: unrestricted only
- tags:
- - Account
- summary: User Create
- description: |
- Creates a User on your Account. Once created, a confirmation message containing
- password creation and login instructions is sent to the User's email address.
+ > 📘
- This command can only be accessed by the unrestricted users of an account.
+ >
- The User's account access is determined by whether or not they are restricted,
- and what grants they have been given.
- operationId: createUser
- x-linode-cli-action: create
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
- requestBody:
- description: Information about the User to create.
- content:
- application/json:
- schema:
- allOf:
- - $ref: '#/components/schemas/User'
- required:
- - username
- - email
- responses:
- '200':
- description: New User created successfully.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/User'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "username": "example_user",
- "email": "person@place.com",
- "restricted": true
- }' \
- https://api.linode.com/v4/account/users
- - lang: CLI
- source: |
- linode-cli users create \
- --username example_user \
- --email example_user@linode.com \
- --restricted true
- '/account/users/{username}':
- get:
- x-linode-grant: unrestricted only
- tags:
- - Account
- summary: User View
- description: |
- Returns information about a single User on your Account.
+ > - This operation can only be accessed by account users with
+ _unrestricted_ access.
- This command can only be accessed by the unrestricted users of an account.
- operationId: getUser
- x-linode-cli-action: view
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: The requested User object
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/User'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/users/example_user
- - lang: CLI
- source: |
- linode-cli users view example_user
- parameters:
- - name: username
- in: path
- description: The username to look up.
- required: true
- schema:
- type: string
- put:
- x-linode-grant: unrestricted only
- tags:
- - Account
- summary: User Update
- description: |
- Update information about a User on your Account. This can be used to
- change the restricted status of a User. When making a User restricted,
- no grants will be configured by default and you must then set up grants
- in order for the User to access anything on the Account.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: updateUser
- x-linode-cli-action: update
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+ >
+
+ > - This operation only applies to _restricted_ users. An unrestricted
+ user has access to everything and doesn't use grants.
+
+
+ __Parent and child accounts__
+
+
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, the following apply:
+
+
+ - No child account user can modify the `account_access` grant for the
+ child account parent user (proxy user).
+
+
+ - An unrestricted child account user can configure all other grants for
+ the proxy user, with the `global` object.
+
+
+ - An unrestricted child account user can enable the `account_access`
+ grant for other child account users. However, enabled child users are
+ still subject to child user restrictions--they can't perform write
+ operations for any billing or account information. __OAuth scopes__.
+
+ ```
+ account:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-user-grants
+ operationId: put-user-grants
requestBody:
- description: The information to update.
content:
application/json:
schema:
- $ref: '#/components/schemas/User'
- responses:
- '200':
- description: User updated successfully.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/User'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "username": example_user,
- "email": example@linode.com,
- "restricted": true
- }' \
- https://api.linode.com/v4/account/users/example_user
- - lang: CLI
- source: |
- linode-cli users update example_user \
- --username example_user \
- --email example@linode.com \
- --restricted true
- parameters:
- - name: username
- in: path
- description: The username to look up.
- required: true
- schema:
- type: string
- delete:
- x-linode-grant: unrestricted only
- tags:
- - Account
- summary: User Delete
- description: |
- Deletes a User. The deleted User will be immediately logged out and
- may no longer log in or perform any actions. All of the User's Grants
- will be removed.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: deleteUser
- x-linode-cli-action:
- - delete
- - rm
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+ additionalProperties: false
+ properties:
+ database:
+ description: >-
+ The grants this user has for individual Managed Databases on
+ this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to a
+ specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ domain:
+ description: >-
+ The grants this user has for individual domains on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to a
+ specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ firewall:
+ description: >-
+ The grants this user has for individual firewalls on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to a
+ specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ global:
+ additionalProperties: false
+ description: The grants the user has to all resources on your account.
+ properties:
+ account_access:
+ description: >-
+ The level of access this user has to account-level
+ actions, like billing information and user management.
+
+
+ > 📘
+
+ >
+
+ > A `restricted` user can't be used to manage users,
+ even if this is set to `read-write`. Only unrestricted
+ users can manage other users on an account.
+
+
+ __Parent and child accounts__
+
+
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, this grant can be added to a child account
+ user, to give the user `read-write` access. This gives
+ the child user unrestricted access to expected
+ management operations, such as creating other child
+ users. However, child users don't have write access to
+ billing operations. The API issues a specific error
+ message if a write operation is attempted by a child
+ user.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ add_databases:
+ description: >-
+ Whether this user can add Managed Databases on the
+ account.
+ example: true
+ type: boolean
+ add_domains:
+ description: Whether this user can add domains on the account.
+ example: true
+ type: boolean
+ add_firewalls:
+ description: Whether this user can add Firewalls on the account.
+ example: true
+ type: boolean
+ add_images:
+ description: >-
+ Whether this user can create images from disks on your
+ Linodes, on the account.
+ example: true
+ type: boolean
+ add_linodes:
+ description: Whether this user can create Linodes.
+ example: true
+ type: boolean
+ add_longview:
+ description: >-
+ Whether this user can create Longview clients and view
+ the current plan.
+ example: true
+ type: boolean
+ add_nodebalancers:
+ description: Whether this user can add NodeBalancers on the account.
+ example: true
+ type: boolean
+ add_stackscripts:
+ description: Whether this user can add StackScripts on the account.
+ example: true
+ type: boolean
+ add_volumes:
+ description: Whether this user can add volumes on the account.
+ example: true
+ type: boolean
+ add_vpcs:
+ description: >-
+ Whether this user can add Virtual Private Clouds (VPCs)
+ on the account.
+ example: true
+ type: boolean
+ cancel_account:
+ description: Whether this user can cancel the entire account.
+ example: false
+ type: boolean
+ child_account_access:
+ description: >-
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, this gives a parent account access to
+ operations that can be used to manage child accounts.
+ Unrestricted parent account users have access to this
+ grant, while restricted parent users don't. An
+ unrestricted parent user can set this to `true` to add
+ this grant to a restricted parent user. Displayed as
+ `null` for all non-parent accounts.
+ example: true
+ nullable: true
+ type: boolean
+ longview_subscription:
+ description: >-
+ Whether this user can manage your account's Longview
+ subscription.
+ example: true
+ type: boolean
+ type: object
+ image:
+ description: >-
+ The grants this user has for individual images on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to a
+ specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ linode:
+ description: >-
+ The grants this user has for individual Linodes on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to a
+ specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ longview:
+ description: >-
+ The grants this user has for individual Longview Clients on
+ this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to a
+ specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ nodebalancer:
+ description: >-
+ The grants this user has for individual NodeBalancers on
+ this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to a
+ specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ stackscript:
+ description: >-
+ The grants this User has for individual StackScripts on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to a
+ specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ volume:
+ description: >-
+ The grants this user has individual Block Storage Volumes on
+ this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to a
+ specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ vpc:
+ description: >-
+ The grants this user has individual Virtual Private Clouds
+ (VPCs) on this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to a
+ specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/grants-response.yaml
+ x-example:
+ x-ref: ../examples/put-user-grants.json
+ required: true
responses:
'200':
- description: User deleted successfully.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ database:
+ description: >-
+ The grants this user has for individual Managed Databases
+ on this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ domain:
+ description: >-
+ The grants this user has for individual domains on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ firewall:
+ description: >-
+ The grants this user has for individual firewalls on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ global:
+ additionalProperties: false
+ description: The grants the user has to all resources on your account.
+ properties:
+ account_access:
+ description: >-
+ The level of access this user has to account-level
+ actions, like billing information and user management.
+
+
+ > 📘
+
+ >
+
+ > A `restricted` user can't be used to manage users,
+ even if this is set to `read-write`. Only unrestricted
+ users can manage other users on an account.
+
+
+ __Parent and child accounts__
+
+
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, this grant can be added to a child
+ account user, to give the user `read-write` access.
+ This gives the child user unrestricted access to
+ expected management operations, such as creating other
+ child users. However, child users don't have write
+ access to billing operations. The API issues a
+ specific error message if a write operation is
+ attempted by a child user.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ add_databases:
+ description: >-
+ Whether this user can add Managed Databases on the
+ account.
+ example: true
+ type: boolean
+ add_domains:
+ description: Whether this user can add domains on the account.
+ example: true
+ type: boolean
+ add_firewalls:
+ description: Whether this user can add Firewalls on the account.
+ example: true
+ type: boolean
+ add_images:
+ description: >-
+ Whether this user can create images from disks on your
+ Linodes, on the account.
+ example: true
+ type: boolean
+ add_linodes:
+ description: Whether this user can create Linodes.
+ example: true
+ type: boolean
+ add_longview:
+ description: >-
+ Whether this user can create Longview clients and view
+ the current plan.
+ example: true
+ type: boolean
+ add_nodebalancers:
+ description: >-
+ Whether this user can add NodeBalancers on the
+ account.
+ example: true
+ type: boolean
+ add_stackscripts:
+ description: Whether this user can add StackScripts on the account.
+ example: true
+ type: boolean
+ add_volumes:
+ description: Whether this user can add volumes on the account.
+ example: true
+ type: boolean
+ add_vpcs:
+ description: >-
+ Whether this user can add Virtual Private Clouds
+ (VPCs) on the account.
+ example: true
+ type: boolean
+ cancel_account:
+ description: Whether this user can cancel the entire account.
+ example: false
+ type: boolean
+ child_account_access:
+ description: >-
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, this gives a parent account access to
+ operations that can be used to manage child accounts.
+ Unrestricted parent account users have access to this
+ grant, while restricted parent users don't. An
+ unrestricted parent user can set this to `true` to add
+ this grant to a restricted parent user. Displayed as
+ `null` for all non-parent accounts.
+ example: true
+ nullable: true
+ type: boolean
+ longview_subscription:
+ description: >-
+ Whether this user can manage your account's Longview
+ subscription.
+ example: true
+ type: boolean
+ type: object
+ image:
+ description: >-
+ The grants this user has for individual images on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ linode:
+ description: >-
+ The grants this user has for individual Linodes on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ longview:
+ description: >-
+ The grants this user has for individual Longview Clients
+ on this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ nodebalancer:
+ description: >-
+ The grants this user has for individual NodeBalancers on
+ this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ stackscript:
+ description: >-
+ The grants this User has for individual StackScripts on
+ this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ volume:
+ description: >-
+ The grants this user has individual Block Storage Volumes
+ on this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ vpc:
+ description: >-
+ The grants this user has individual Virtual Private Clouds
+ (VPCs) on this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
type: object
+ x-akamai:
+ file-path: schemas/grants-response.yaml
+ x-example:
+ x-ref: ../examples/get-user-grants-200.json
+ description: Grants updated successfully.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/account/users/example_user
- - lang: CLI
- source: |
- linode-cli users delete example_user
- parameters:
- - name: username
- in: path
- description: The username to look up.
- required: true
- schema:
- type: string
- '/account/users/{username}/grants':
- get:
- x-linode-grant: unrestricted only
- tags:
- - Account
- summary: User's Grants View
- description: |
- Returns the full grants structure for the specified account User
- (other than the account owner, see below for details). This includes all entities
- on the Account alongside the level of access this User has to each of them.
-
- This command can only be accessed by the unrestricted users of an account.
-
- The current authenticated User, including the account owner, may view their
- own grants at the [/profile/grants](/docs/api/profile/#grants-list)
- endpoint, but will not see entities that they do not have access to.
- operationId: getUserGrants
- x-linode-cli-action: grants
- x-linode-cli-skip: true
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: The User's grants.
content:
application/json:
schema:
- $ref: '#/components/schemas/GrantsResponse'
- '204':
- description: |
- This is an unrestricted User, and therefore has no grants to return. This User may access everything on the Account and perform all actions.
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/account/users/example_user/grants
- parameters:
- - name: username
- in: path
- description: The username to look up.
- required: true
- schema:
- type: string
- put:
- x-linode-grant: unrestricted only
- tags:
- - Account
- summary: User's Grants Update
- description: |
- Update the grants a User has. This can be used to give a User access
- to new entities or actions, or take access away. You do not need to
- include the grant for every entity on the Account in this request; any
- that are not included will remain unchanged.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: updateUserGrants
- x-linode-cli-action: update-grants
- x-linode-cli-skip: true
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: The grants to update. Omitted grants will be left unchanged.
+ - account:read_write
+ summary: Update a user's grants
+ tags:
+ - Users
+ x-akamai:
+ tabs:
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update-grants
+ x-linode-cli-skip: true
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The username to look up.
+ example: '{{username}}'
+ in: path
+ name: username
required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/GrantsResponse'
- responses:
- '200':
- description: Grants updated successfully.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/GrantsResponse'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "global": {
- "add_linodes": true,
- "add_nodebalancers": false,
- "add_databases": true;
- "add_domains": true,
- "add_longview": false,
- "add_stackscripts": true,
- "longview_subscription": true,
- "add_images": true,
- "add_volumes": true,
- "add_firewalls": true,
- "account_access": "read_only",
- "cancel_account": false
- },
- "domain": [
- {
- "id": 123,
- "permissions": "read_only"
- }
- ],
- "image": [
- {
- "id": 123,
- "permissions": "read_only"
- }
- ],
- "linode": [
- {
- "id": 123,
- "permissions": "read_only"
- },
- {
- "id": 234,
- "permissions": "read_write"
- },
- {
- "id": 345,
- "permissions": "read_only"
- },
- ],
- "longview": [
- {
- "id": 123,
- "permissions": "read_only"
- },
- {
- "id": 234,
- "permissions": "read_write"
- }
- ],
- "nodebalancer": [
- {
- "id": 123,
- "permissions": "read_write"
- }
- ],
- "stackscript": [
- {
- "id": 123,
- "permissions": "read_only"
- },
- {
- "id": 124,
- "permissions": "read_write"
- }
- ],
- "volume": [
- {
- "id": 123,
- "permissions": "read_only"
- }
- ]
- }' \
- https://api.linode.com/v4/account/users/example_user/grants
- parameters:
- - name: username
- in: path
- description: The username to look up.
- required: true
- schema:
- type: string
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/username-path.yaml
+ x-akamai:
+ file-path: paths/account-grants.yaml
+ path-info: /{apiVersion}/account/users/{username}/grants
+ x-linode-cli-command: users
+components:
+ x-stackQL-resources:
+ account:
+ id: linode.account.account
+ name: account
+ title: Account
+ methods:
+ get_account:
+ operation:
+ $ref: '#/paths/~1account/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_account:
+ operation:
+ $ref: '#/paths/~1account/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_cancel_account:
+ operation:
+ $ref: '#/paths/~1account~1cancel/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/account/methods/get_account'
+ insert: []
+ update: []
+ delete: []
+ replace:
+ - $ref: '#/components/x-stackQL-resources/account/methods/put_account'
+ agreements:
+ id: linode.account.agreements
+ name: agreements
+ title: Agreements
+ methods:
+ post_account_agreements:
+ operation:
+ $ref: '#/paths/~1account~1agreements/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_account_agreements:
+ operation:
+ $ref: '#/paths/~1account~1agreements/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/agreements/methods/get_account_agreements
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ available_services:
+ id: linode.account.available_services
+ name: available_services
+ title: Available Services
+ methods:
+ get_availability:
+ operation:
+ $ref: '#/paths/~1account~1availability/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/available_services/methods/get_availability
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ availability:
+ id: linode.account.availability
+ name: availability
+ title: Availability
+ methods:
+ get_account_availability:
+ operation:
+ $ref: '#/paths/~1account~1availability~1{id}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/availability/methods/get_account_availability
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ beta_programs:
+ id: linode.account.beta_programs
+ name: beta_programs
+ title: Beta Programs
+ methods:
+ post_beta_program:
+ operation:
+ $ref: '#/paths/~1account~1betas/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_enrolled_beta_programs:
+ operation:
+ $ref: '#/paths/~1account~1betas/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ get_enrolled_beta_program:
+ operation:
+ $ref: '#/paths/~1account~1betas~1{betaId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/beta_programs/methods/get_enrolled_beta_program
+ - $ref: >-
+ #/components/x-stackQL-resources/beta_programs/methods/get_enrolled_beta_programs
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ child_accounts:
+ id: linode.account.child_accounts
+ name: child_accounts
+ title: Child Accounts
+ methods:
+ get_child_accounts:
+ operation:
+ $ref: '#/paths/~1account~1child-accounts/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_child_account:
+ operation:
+ $ref: '#/paths/~1account~1child-accounts~1{euuid}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_child_account_token:
+ operation:
+ $ref: '#/paths/~1account~1child-accounts~1{euuid}~1token/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/child_accounts/methods/get_child_account
+ - $ref: >-
+ #/components/x-stackQL-resources/child_accounts/methods/get_child_accounts
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ payments:
+ id: linode.account.payments
+ name: payments
+ title: Payments
+ methods:
+ post_credit_card:
+ operation:
+ $ref: '#/paths/~1account~1credit-card/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_payment:
+ operation:
+ $ref: '#/paths/~1account~1payments/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_payments:
+ operation:
+ $ref: '#/paths/~1account~1payments/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_pay_pal_payment:
+ operation:
+ $ref: '#/paths/~1account~1payments~1paypal/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_execute_pay_pal_payment:
+ operation:
+ $ref: '#/paths/~1account~1payments~1paypal~1execute/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_payment:
+ operation:
+ $ref: '#/paths/~1account~1payments~1{paymentId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/payments/methods/get_payment'
+ - $ref: '#/components/x-stackQL-resources/payments/methods/get_payments'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/payments/methods/post_credit_card'
+ update: []
+ delete: []
+ replace: []
+ entity_transfers:
+ id: linode.account.entity_transfers
+ name: entity_transfers
+ title: Entity Transfers
+ methods:
+ post_entity_transfer:
+ operation:
+ $ref: '#/paths/~1account~1entity-transfers/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_entity_transfers:
+ operation:
+ $ref: '#/paths/~1account~1entity-transfers/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ get_entity_transfer:
+ operation:
+ $ref: '#/paths/~1account~1entity-transfers~1{token}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_entity_transfer:
+ operation:
+ $ref: '#/paths/~1account~1entity-transfers~1{token}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_accept_entity_transfer:
+ operation:
+ $ref: '#/paths/~1account~1entity-transfers~1{token}~1accept/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/entity_transfers/methods/get_entity_transfer
+ - $ref: >-
+ #/components/x-stackQL-resources/entity_transfers/methods/get_entity_transfers
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/entity_transfers/methods/post_entity_transfer
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/entity_transfers/methods/delete_entity_transfer
+ replace: []
+ events:
+ id: linode.account.events
+ name: events
+ title: Events
+ methods:
+ get_events:
+ operation:
+ $ref: '#/paths/~1account~1events/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_event:
+ operation:
+ $ref: '#/paths/~1account~1events~1{eventId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_event_seen:
+ operation:
+ $ref: '#/paths/~1account~1events~1{eventId}~1seen/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/events/methods/get_event'
+ - $ref: '#/components/x-stackQL-resources/events/methods/get_events'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ invoices:
+ id: linode.account.invoices
+ name: invoices
+ title: Invoices
+ methods:
+ get_invoices:
+ operation:
+ $ref: '#/paths/~1account~1invoices/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_invoice:
+ operation:
+ $ref: '#/paths/~1account~1invoices~1{invoiceId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/invoices/methods/get_invoice'
+ - $ref: '#/components/x-stackQL-resources/invoices/methods/get_invoices'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ invoice_items:
+ id: linode.account.invoice_items
+ name: invoice_items
+ title: Invoice Items
+ methods:
+ get_invoice_items:
+ operation:
+ $ref: '#/paths/~1account~1invoices~1{invoiceId}~1items/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/invoice_items/methods/get_invoice_items
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ logins:
+ id: linode.account.logins
+ name: logins
+ title: Logins
+ methods:
+ get_account_logins:
+ operation:
+ $ref: '#/paths/~1account~1logins/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_account_login:
+ operation:
+ $ref: '#/paths/~1account~1logins~1{loginId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/logins/methods/get_account_login'
+ - $ref: '#/components/x-stackQL-resources/logins/methods/get_account_logins'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ maintenances:
+ id: linode.account.maintenances
+ name: maintenances
+ title: Maintenances
+ methods:
+ get_maintenance:
+ operation:
+ $ref: '#/paths/~1account~1maintenance/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/maintenances/methods/get_maintenance
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ notifications:
+ id: linode.account.notifications
+ name: notifications
+ title: Notifications
+ methods:
+ get_notifications:
+ operation:
+ $ref: '#/paths/~1account~1notifications/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/notifications/methods/get_notifications
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ oauth_clients:
+ id: linode.account.oauth_clients
+ name: oauth_clients
+ title: Oauth Clients
+ methods:
+ post_client:
+ operation:
+ $ref: '#/paths/~1account~1oauth-clients/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_clients:
+ operation:
+ $ref: '#/paths/~1account~1oauth-clients/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_client:
+ operation:
+ $ref: '#/paths/~1account~1oauth-clients~1{clientId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_client:
+ operation:
+ $ref: '#/paths/~1account~1oauth-clients~1{clientId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_client:
+ operation:
+ $ref: '#/paths/~1account~1oauth-clients~1{clientId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_reset_client_secret:
+ operation:
+ $ref: '#/paths/~1account~1oauth-clients~1{clientId}~1reset-secret/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_client_thumbnail:
+ operation:
+ $ref: '#/paths/~1account~1oauth-clients~1{clientId}~1thumbnail/get'
+ response:
+ mediaType: image/png
+ openAPIDocKey: '200'
+ put_client_thumbnail:
+ operation:
+ $ref: '#/paths/~1account~1oauth-clients~1{clientId}~1thumbnail/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/oauth_clients/methods/get_client'
+ - $ref: '#/components/x-stackQL-resources/oauth_clients/methods/get_clients'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/oauth_clients/methods/post_client'
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/oauth_clients/methods/delete_client
+ replace:
+ - $ref: '#/components/x-stackQL-resources/oauth_clients/methods/put_client'
+ payment_methods:
+ id: linode.account.payment_methods
+ name: payment_methods
+ title: Payment Methods
+ methods:
+ post_payment_method:
+ operation:
+ $ref: '#/paths/~1account~1payment-methods/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_payment_methods:
+ operation:
+ $ref: '#/paths/~1account~1payment-methods/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_payment_method:
+ operation:
+ $ref: '#/paths/~1account~1payment-methods~1{paymentMethodId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_payment_method:
+ operation:
+ $ref: '#/paths/~1account~1payment-methods~1{paymentMethodId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_make_payment_method_default:
+ operation:
+ $ref: >-
+ #/paths/~1account~1payment-methods~1{paymentMethodId}~1make-default/post
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/payment_methods/methods/get_payment_method
+ - $ref: >-
+ #/components/x-stackQL-resources/payment_methods/methods/get_payment_methods
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/payment_methods/methods/post_payment_method
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/payment_methods/methods/delete_payment_method
+ replace: []
+ promo_credits:
+ id: linode.account.promo_credits
+ name: promo_credits
+ title: Promo Credits
+ methods:
+ post_promo_credit:
+ operation:
+ $ref: '#/paths/~1account~1promo-codes/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select: []
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/promo_credits/methods/post_promo_credit
+ update: []
+ delete: []
+ replace: []
+ service_transfers:
+ id: linode.account.service_transfers
+ name: service_transfers
+ title: Service Transfers
+ methods:
+ post_service_transfer:
+ operation:
+ $ref: '#/paths/~1account~1service-transfers/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_service_transfers:
+ operation:
+ $ref: '#/paths/~1account~1service-transfers/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_service_transfer:
+ operation:
+ $ref: '#/paths/~1account~1service-transfers~1{token}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_service_transfer:
+ operation:
+ $ref: '#/paths/~1account~1service-transfers~1{token}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_accept_service_transfer:
+ operation:
+ $ref: '#/paths/~1account~1service-transfers~1{token}~1accept/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/service_transfers/methods/get_service_transfer
+ - $ref: >-
+ #/components/x-stackQL-resources/service_transfers/methods/get_service_transfers
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/service_transfers/methods/post_service_transfer
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/service_transfers/methods/delete_service_transfer
+ replace: []
+ settings:
+ id: linode.account.settings
+ name: settings
+ title: Settings
+ methods:
+ get_account_settings:
+ operation:
+ $ref: '#/paths/~1account~1settings/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_account_settings:
+ operation:
+ $ref: '#/paths/~1account~1settings/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_enable_account_managed:
+ operation:
+ $ref: '#/paths/~1account~1settings~1managed-enable/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/settings/methods/get_account_settings
+ insert: []
+ update: []
+ delete: []
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/settings/methods/put_account_settings
+ network_usage:
+ id: linode.account.network_usage
+ name: network_usage
+ title: Network Usage
+ methods:
+ get_transfer:
+ operation:
+ $ref: '#/paths/~1account~1transfer/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/network_usage/methods/get_transfer
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ users:
+ id: linode.account.users
+ name: users
+ title: Users
+ methods:
+ post_user:
+ operation:
+ $ref: '#/paths/~1account~1users/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_users:
+ operation:
+ $ref: '#/paths/~1account~1users/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_user:
+ operation:
+ $ref: '#/paths/~1account~1users~1{username}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.user_type
+ put_user:
+ operation:
+ $ref: '#/paths/~1account~1users~1{username}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_user:
+ operation:
+ $ref: '#/paths/~1account~1users~1{username}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/users/methods/get_user'
+ - $ref: '#/components/x-stackQL-resources/users/methods/get_users'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/users/methods/post_user'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/users/methods/delete_user'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/users/methods/put_user'
+ user_grants:
+ id: linode.account.user_grants
+ name: user_grants
+ title: User Grants
+ methods:
+ get_user_grants:
+ operation:
+ $ref: '#/paths/~1account~1users~1{username}~1grants/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_user_grants:
+ operation:
+ $ref: '#/paths/~1account~1users~1{username}~1grants/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/user_grants/methods/get_user_grants
+ insert: []
+ update: []
+ delete: []
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/user_grants/methods/put_user_grants
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/betas.yaml b/providers/src/linode/v00.00.00000/services/betas.yaml
new file mode 100644
index 00000000..5358b4c8
--- /dev/null
+++ b/providers/src/linode/v00.00.00000/services/betas.yaml
@@ -0,0 +1,465 @@
+openapi: 3.0.1
+info:
+ title: betas API
+ description: linode betas API
+ version: 4.208.1
+paths:
+ /betas:
+ get:
+ description: >-
+ Display all active Beta Programs.
+
+
+ Only unrestricted Users can access this operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-beta-programs
+ operationId: get-beta-programs
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - description: This is an open public beta for an example feature.
+ ended: null
+ greenlight_only: true
+ id: example_open
+ label: Example Open Beta
+ more_info: https://www.linode.com/green-light/
+ started: '2023-07-11T00:00:00'
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: An object representing Beta Program information.
+ properties:
+ description:
+ description: >-
+ __Read-only__ Additional details regarding the
+ Beta Program.
+ example: >-
+ This is an open public beta for an example
+ feature.
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ ended:
+ description: >-
+ __Filterable__, __Read-only__ The date-time that
+ the Beta Program ended.
+
+
+ `null` indicates that the Beta Program is
+ ongoing.
+ example: null
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ greenlight_only:
+ description: >-
+ __Filterable__, __Read-only__ Whether the Beta
+ Program requires [Green
+ Light](https://www.linode.com/green-light/)
+ participation for enrollment.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ id:
+ description: The unique identifier of the Beta Program.
+ example: example_open
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__, __Read-only__ The name of the
+ Beta Program.
+ example: Example Open Beta
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ more_info:
+ description: >-
+ __Read-only__ Additional source of information
+ for the Beta Program.
+ example: https://www.linode.com/green-light/
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ started:
+ description: >-
+ __Filterable__, __Read-only__ The start
+ date-time of the Beta Program.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/beta-program.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-beta-programs-200.yaml
+ description: Returns a paginated list of all available Beta Program objects.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth: []
+ summary: List Beta programs
+ tags:
+ - Beta programs
+ x-akamai:
+ tabs:
+ - syntax: linode-cli betas list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/betas.yaml
+ path-info: /{apiVersion}/betas
+ x-linode-cli-command: betas
+ /betas/{betaId}:
+ get:
+ description: >-
+ Display information about a Beta Program. This operation can be used to
+ access inactive as well as active Beta Programs.
+
+
+ Only unrestricted Users can access this operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-beta-program
+ operationId: get-beta-program
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An object representing Beta Program information.
+ properties:
+ description:
+ description: >-
+ __Read-only__ Additional details regarding the Beta
+ Program.
+ example: This is an open public beta for an example feature.
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ ended:
+ description: >-
+ __Filterable__, __Read-only__ The date-time that the Beta
+ Program ended.
+
+
+ `null` indicates that the Beta Program is ongoing.
+ example: null
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ greenlight_only:
+ description: >-
+ __Filterable__, __Read-only__ Whether the Beta Program
+ requires [Green
+ Light](https://www.linode.com/green-light/) participation
+ for enrollment.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ id:
+ description: The unique identifier of the Beta Program.
+ example: example_open
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__, __Read-only__ The name of the Beta
+ Program.
+ example: Example Open Beta
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ more_info:
+ description: >-
+ __Read-only__ Additional source of information for the
+ Beta Program.
+ example: https://www.linode.com/green-light/
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ started:
+ description: >-
+ __Filterable__, __Read-only__ The start date-time of the
+ Beta Program.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/beta-program.yaml
+ x-example:
+ x-ref: ../examples/get-beta-program-200.json
+ description: Returns a paginated list of all available Beta Program objects.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth: []
+ summary: Get a Beta program
+ tags:
+ - Beta programs
+ x-akamai:
+ tabs:
+ - syntax: linode-cli betas view $betaId
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: view
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The ID of the Beta Program.
+ example: '{{betaId}}'
+ in: path
+ name: betaId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/beta-id.yaml
+ x-akamai:
+ file-path: paths/beta.yaml
+ path-info: /{apiVersion}/betas/{betaId}
+ x-linode-cli-command: betas
+components:
+ x-stackQL-resources:
+ beta_programs:
+ id: linode.betas.beta_programs
+ name: beta_programs
+ title: Beta Programs
+ methods:
+ get_beta_programs:
+ operation:
+ $ref: '#/paths/~1betas/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ get_beta_program:
+ operation:
+ $ref: '#/paths/~1betas~1{betaId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/beta_programs/methods/get_beta_program
+ - $ref: >-
+ #/components/x-stackQL-resources/beta_programs/methods/get_beta_programs
+ insert: []
+ update: []
+ delete: []
+ replace: []
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/databases.yaml b/providers/src/linode/v00.00.00000/services/databases.yaml
index 53d95a19..c2d5f164 100644
--- a/providers/src/linode/v00.00.00000/services/databases.yaml
+++ b/providers/src/linode/v00.00.00000/services/databases.yaml
@@ -1,4133 +1,16270 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
-info:
- version: 4.147.0
- title: Linode API - databases
- description: databases
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- 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
- engine:
- type: string
- 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
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- 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
- readOnly: true
- label:
- type: string
- 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
- type:
- type: string
- 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
- 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 Managed Database engine version.
- example: 8.0.26
- x-linode-filterable: true
- x-linode-cli-display: 7
- readOnly: true
- region:
- type: string
- 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.
-
- If `0.0.0.0/0` is a value in this list, then all IP addresses can access 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
- DatabaseMongoDB:
- type: object
- description: Managed MongoDB 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: mongodb
- x-linode-filterable: true
- x-linode-cli-display: 6
- readOnly: true
- version:
- type: string
- 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
- 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'
- 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 database backup's label, for display purposes only.
-
- 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
- DatabaseBackupSnapshot:
- type: object
- description: Managed Database request object for snapshot backup.
- required:
- - label
- properties:
- label:
- type: string
- minLength: 1
- maxLength: 30
- description: |
- The label for the Database snapshot backup.
-
- * Must include only ASCII letters or numbers.
- * Must be unique among other backup labels for this Database.
- 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
- DatabaseCredentials:
- type: object
- description: Managed Database object for database credentials.
- properties:
- username:
- type: string
- readOnly: true
- description: The root username for the Managed Database instance.
- example: linroot
- x-linode-cli-display: 1
- password:
- type: string
- readOnly: true
- description: The randomly-generated root password for the Managed Database instance.
- example: s3cur3P@ssw0rd
- x-linode-cli-display: 2
- DatabaseSSL:
- type: object
- description: Managed Database SSL object.
- properties:
- ca_certificate:
- type: string
- format: base64
- description: The base64-encoded SSL CA certificate for the Managed Database instance.
- example: LS0tLS1CRUdJ...==
- x-linode-cli-display: 1
- 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
- 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
- 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
- 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: Managed PostgreSQL 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: postgresql
- x-linode-filterable: true
- x-linode-cli-display: 6
- readOnly: true
- version:
- type: string
- description: The Managed Database engine version.
- example: '13.2'
- 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-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
- 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
- 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
- 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'
- 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
- 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
- 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
- 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
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- engines:
- id: linode.databases.engines
- name: engines
- title: Engines
- methods:
- getDatabasesEngines:
- operation:
- $ref: '#/paths/~1databases~1engines/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesEngines:
- operation:
- $ref: '#/paths/~1databases~1engines/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getDatabasesEngine:
- operation:
- $ref: '#/paths/~1databases~1engines~1{engineId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesEngine:
- operation:
- $ref: '#/paths/~1databases~1engines~1{engineId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/engines/methods/getDatabasesEngines'
- - $ref: '#/components/x-stackQL-resources/engines/methods/getDatabasesEngine'
- insert: []
- update: []
- delete: []
- instances:
- id: linode.databases.instances
- name: instances
- title: Instances
- methods:
- getDatabasesInstances:
- operation:
- $ref: '#/paths/~1databases~1instances/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesInstances:
- operation:
- $ref: '#/paths/~1databases~1instances/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/instances/methods/getDatabasesInstances'
- insert: []
- update: []
- delete: []
- mongodb_instances:
- id: linode.databases.mongodb_instances
- name: mongodb_instances
- title: Mongodb Instances
- methods:
- getDatabasesMongoDBInstances:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesMongoDBInstances:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getDatabasesMongoDBInstance:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesMongoDBInstance:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteDatabasesMongoDBInstance:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- putDatabasesMongoDBInstance:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postDatabasesMongoDBInstancePatch:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}~1patch/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/mongodb_instances/methods/getDatabasesMongoDBInstances'
- - $ref: '#/components/x-stackQL-resources/mongodb_instances/methods/getDatabasesMongoDBInstance'
- insert: []
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/mongodb_instances/methods/deleteDatabasesMongoDBInstance'
- mongodb_instances_backups:
- id: linode.databases.mongodb_instances_backups
- name: mongodb_instances_backups
- title: Mongodb Instances Backups
- methods:
- getDatabasesMongoDBInstanceBackups:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}~1backups/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesMongoDBInstanceBackups:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}~1backups/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postDatabasesMongoDBInstanceBackup:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}~1backups/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getDatabasesMongoDBInstanceBackup:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}~1backups~1{backupId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesMongoDBInstanceBackup:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}~1backups~1{backupId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteDatabaseMongoDBInstanceBackup:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}~1backups~1{backupId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postDatabasesMongoDBInstanceBackupRestore:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}~1backups~1{backupId}~1restore/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/mongodb_instances_backups/methods/getDatabasesMongoDBInstanceBackups'
- - $ref: '#/components/x-stackQL-resources/mongodb_instances_backups/methods/getDatabasesMongoDBInstanceBackup'
- insert: []
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/mongodb_instances_backups/methods/deleteDatabaseMongoDBInstanceBackup'
- mongodb_instances_credentials:
- id: linode.databases.mongodb_instances_credentials
- name: mongodb_instances_credentials
- title: Mongodb Instances Credentials
- methods:
- getDatabasesMongoDBInstanceCredentials:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}~1credentials/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getDatabasesMongoDBInstanceCredentials:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}~1credentials/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postDatabasesMongoDBInstanceCredentialsReset:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}~1credentials~1reset/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/mongodb_instances_credentials/methods/getDatabasesMongoDBInstanceCredentials'
- insert: []
- update: []
- delete: []
- mongodb_instances_ssl:
- id: linode.databases.mongodb_instances_ssl
- name: mongodb_instances_ssl
- title: Mongodb Instances Ssl
- methods:
- getDatabasesMongoDBInstanceSSL:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}~1ssl/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getDatabasesMongoDBInstanceSSL:
- operation:
- $ref: '#/paths/~1databases~1mongodb~1instances~1{instanceId}~1ssl/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/mongodb_instances_ssl/methods/getDatabasesMongoDBInstanceSSL'
- insert: []
- update: []
- delete: []
- mysql_instances:
- id: linode.databases.mysql_instances
- name: mysql_instances
- title: Mysql Instances
- methods:
- getDatabasesMySQLInstances:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesMySQLInstances:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postDatabasesMySQLInstances:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getDatabasesMySQLInstance:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesMySQLInstance:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteDatabasesMySQLInstance:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- putDatabasesMySQLInstance:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postDatabasesMySQLInstancePatch:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1patch/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/mysql_instances/methods/getDatabasesMySQLInstances'
- - $ref: '#/components/x-stackQL-resources/mysql_instances/methods/getDatabasesMySQLInstance'
- insert: []
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/mysql_instances/methods/deleteDatabasesMySQLInstance'
- mysql_instances_backups:
- id: linode.databases.mysql_instances_backups
- name: mysql_instances_backups
- title: Mysql Instances Backups
- methods:
- getDatabasesMySQLInstanceBackups:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1backups/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesMySQLInstanceBackups:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1backups/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postDatabasesMySQLInstanceBackup:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1backups/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getDatabasesMySQLInstanceBackup:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1backups~1{backupId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesMySQLInstanceBackup:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1backups~1{backupId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteDatabaseMySQLInstanceBackup:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1backups~1{backupId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postDatabasesMySQLInstanceBackupRestore:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1backups~1{backupId}~1restore/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/mysql_instances_backups/methods/getDatabasesMySQLInstanceBackups'
- - $ref: '#/components/x-stackQL-resources/mysql_instances_backups/methods/getDatabasesMySQLInstanceBackup'
- insert: []
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/mysql_instances_backups/methods/deleteDatabaseMySQLInstanceBackup'
- mysql_instances_credentials:
- id: linode.databases.mysql_instances_credentials
- name: mysql_instances_credentials
- title: Mysql Instances Credentials
- methods:
- getDatabasesMySQLInstanceCredentials:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1credentials/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getDatabasesMySQLInstanceCredentials:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1credentials/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postDatabasesMySQLInstanceCredentialsReset:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1credentials~1reset/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/mysql_instances_credentials/methods/getDatabasesMySQLInstanceCredentials'
- insert: []
- update: []
- delete: []
- mysql_instances_ssl:
- id: linode.databases.mysql_instances_ssl
- name: mysql_instances_ssl
- title: Mysql Instances Ssl
- methods:
- getDatabasesMySQLInstanceSSL:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1ssl/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getDatabasesMySQLInstanceSSL:
- operation:
- $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1ssl/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/mysql_instances_ssl/methods/getDatabasesMySQLInstanceSSL'
- insert: []
- update: []
- delete: []
- postgresql_instances:
- id: linode.databases.postgresql_instances
- name: postgresql_instances
- title: Postgresql Instances
- methods:
- getDatabasesPostgreSQLInstances:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesPostgreSQLInstances:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postDatabasesPostgreSQLInstances:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getDatabasesPostgreSQLInstance:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesPostgreSQLInstance:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteDatabasesPostgreSQLInstance:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- putDatabasesPostgreSQLInstance:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postDatabasesPostgreSQLInstancePatch:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}~1patch/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/postgresql_instances/methods/getDatabasesPostgreSQLInstances'
- - $ref: '#/components/x-stackQL-resources/postgresql_instances/methods/getDatabasesPostgreSQLInstance'
- insert: []
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/postgresql_instances/methods/deleteDatabasesPostgreSQLInstance'
- postgresql_instances_backups:
- id: linode.databases.postgresql_instances_backups
- name: postgresql_instances_backups
- title: Postgresql Instances Backups
- methods:
- getDatabasesPostgreSQLInstanceBackups:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}~1backups/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesPostgreSQLInstanceBackups:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}~1backups/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postDatabasesPostgreSQLInstanceBackup:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}~1backups/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getDatabasesPostgreSQLInstanceBackup:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}~1backups~1{backupId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesPostgreSQLInstanceBackup:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}~1backups~1{backupId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteDatabasePostgreSQLInstanceBackup:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}~1backups~1{backupId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postDatabasesPostgreSQLInstanceBackupRestore:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}~1backups~1{backupId}~1restore/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/postgresql_instances_backups/methods/getDatabasesPostgreSQLInstanceBackups'
- - $ref: '#/components/x-stackQL-resources/postgresql_instances_backups/methods/getDatabasesPostgreSQLInstanceBackup'
- insert: []
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/postgresql_instances_backups/methods/deleteDatabasePostgreSQLInstanceBackup'
- postgresql_instances_credentials:
- id: linode.databases.postgresql_instances_credentials
- name: postgresql_instances_credentials
- title: Postgresql Instances Credentials
- methods:
- getDatabasesPostgreSQLInstanceCredentials:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}~1credentials/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getDatabasesPostgreSQLInstanceCredentials:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}~1credentials/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postDatabasesPostgreSQLInstanceCredentialsReset:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}~1credentials~1reset/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/postgresql_instances_credentials/methods/getDatabasesPostgreSQLInstanceCredentials'
- insert: []
- update: []
- delete: []
- postgresql_instances_ssl:
- id: linode.databases.postgresql_instances_ssl
- name: postgresql_instances_ssl
- title: Postgresql Instances Ssl
- methods:
- getDatabasesPostgreSQLInstanceSSL:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}~1ssl/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getDatabasesPostgreSQLInstanceSSL:
- operation:
- $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}~1ssl/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/postgresql_instances_ssl/methods/getDatabasesPostgreSQLInstanceSSL'
- insert: []
- update: []
- delete: []
- types:
- id: linode.databases.types
- name: types
- title: Types
- methods:
- getDatabasesTypes:
- operation:
- $ref: '#/paths/~1databases~1types/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesTypes:
- operation:
- $ref: '#/paths/~1databases~1types/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getDatabasesType:
- operation:
- $ref: '#/paths/~1databases~1types~1{typeId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDatabasesType:
- operation:
- $ref: '#/paths/~1databases~1types~1{typeId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/types/methods/getDatabasesTypes'
- - $ref: '#/components/x-stackQL-resources/types/methods/getDatabasesType'
- insert: []
- update: []
- delete: []
+info:
+ title: databases API
+ description: linode databases API
+ version: 4.208.1
paths:
/databases/engines:
get:
- 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
+ description: >-
+ Display all available Managed Databases engine types and versions. Use
+ an engine's `id` to create a new Managed Databases instance.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-databases-engines
+ operationId: get-databases-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.
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Returns a paginated list of all available Managed Database engines and versions.
content:
application/json:
+ example:
+ data:
+ - engine: mysql
+ id: mysql/8.0.26
+ version: 8.0.26
+ page: 1
+ pages: 1
+ results: 1
schema:
allOf:
- - $ref: '#/components/schemas/PaginationEnvelope'
- - type: object
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
data:
- type: array
items:
- $ref: '#/components/schemas/DatabaseEngine'
+ additionalProperties: false
+ description: Managed Database engine object.
+ properties:
+ engine:
+ description: __Filterable__ The Managed Database engine type.
+ example: mysql
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ id:
+ description: >-
+ The Managed Database engine ID in engine/version
+ format.
+ example: mysql/8.0.26
+ type: string
+ x-linode-cli-display: 1
+ version:
+ description: >-
+ __Filterable__ The Managed Database engine
+ version.
+ example: 8.0.26
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/database-engine.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/get-databases-engines-200.yaml
+ description: >-
+ Returns a paginated list of all available Managed Databases engines
+ and versions.
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}':
- get:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: List Managed Databases engines
tags:
- - 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
+ - Engines
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases engines
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: engines
+ parameters: []
+ x-akamai:
+ file-path: paths/engines.yaml
+ path-info: /{apiVersion}/databases/engines
+ x-linode-cli-command: databases
+ /databases/engines/{engineId}:
+ get:
+ description: >-
+ Display information for a single Managed Databases engine type and
+ version. Run the [List Managed Databases
+ engines](https://techdocs.akamai.com/linode-api/reference/get-databases-engines)
+ operation and store the `id` for the applicable database engine.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-databases-engine
+ operationId: get-databases-engine
parameters:
- - name: engineId
- in: path
- description: The ID of the Managed Database engine.
- required: true
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
schema:
- type: string
- description: |
- Display information for a single Managed Database engine type and version.
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Returns information for a single Managed Database engine type and version.
content:
application/json:
+ example:
+ engine: mysql
+ id: mysql/8.0.26
+ version: 8.0.26
schema:
- $ref: '#/components/schemas/DatabaseEngine'
+ additionalProperties: false
+ description: Managed Database engine object.
+ properties:
+ engine:
+ description: __Filterable__ The Managed Database engine type.
+ example: mysql
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ id:
+ description: The Managed Database engine ID in engine/version format.
+ example: mysql/8.0.26
+ type: string
+ x-linode-cli-display: 1
+ version:
+ description: __Filterable__ The Managed Database engine version.
+ example: 8.0.26
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/database-engine.yaml
+ description: >-
+ Returns information for a single Managed Databases engine type and
+ version.
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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: Get a Managed Databases engine
+ tags:
+ - Engines
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases engine-view
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: engine-view
+ parameters:
+ - description: The ID of the Managed Database engine.
+ example: '{{engineId}}'
+ in: path
+ name: engineId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/engine-id-path.yaml
+ x-akamai:
+ file-path: paths/engine.yaml
+ path-info: /{apiVersion}/databases/engines/{engineId}
+ x-linode-cli-command: databases
/databases/instances:
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
- - ls
- 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.
+ description: >-
+ Display all Managed Databases accessible to your user, regardless of
+ engine type. For more detailed information on a particular database
+ instance, make a request to its `instance_uri`.
- For more detailed information on a particular Database instance, make a request to its `instance_uri`.
- security:
- - personalAccessToken: []
- - oauth:
- - 'databases:read_only'
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-databases-instances
+ operationId: get-databases-instances
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Returns a paginated list of all accessible Managed Databases on your Account.
content:
application/json:
+ example:
+ data:
+ - allow_list:
+ - 192.0.2.202/24
+ - 192.0.2.14/24
+ cluster_size: 3
+ created: '2022-01-01T00:01:01'
+ encrypted: true
+ engine: mysql
+ fork:
+ restore_time: '2024-10-14T19:55:12'
+ source: '176881'
+ hosts:
+ primary: lin-123-456-mysql-mysql-primary.servers.linodedb.net
+ secondary: lin-123-456-mysql-primary-private.servers.linodedb.net
+ id: 123
+ instance_uri: /v4/databases/mysql/instances/123
+ label: example-db
+ members:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ 69.164.209.80: failover
+ oldest_restore_time: '2024-10-03T20:48:05'
+ platform: rdbms-default
+ port: 3306
+ region: us-east
+ status: active
+ total_disk_size_gb: 15
+ type: g6-dedicated-2
+ updated: '2022-01-01T00:01:01'
+ updates:
+ day_of_week: 1
+ duration: 3
+ frequency: weekly
+ hour_of_day: 0
+ pending: []
+ used_disk_size_gb: 2
+ version: 8.0.26
+ page: 1
+ pages: 1
+ results: 1
schema:
allOf:
- - $ref: '#/components/schemas/PaginationEnvelope'
- - type: object
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
data:
- type: array
items:
- $ref: '#/components/schemas/Database'
+ additionalProperties: false
+ description: >-
+ A general Managed Database instance object
+ containing properties that are identical for all
+ database types.
+ properties:
+ allow_list:
+ description: >-
+ Controls access to the Managed Database.
+
+
+ - Individually included IP addresses or CIDR
+ ranges can access the Managed Database while all
+ other sources are blocked.
+
+
+ - A standalone value of `0.0.0.0/0` allows all
+ IP addresses access to the Managed Database.
+
+
+ - An empty array (`[]`) blocks all public and
+ private connections to the Managed Database.
+ example:
+ - 203.0.113.1/32
+ - 192.0.1.0/24
+ items:
+ format: ipv4/prefix_length
+ pattern: >-
+ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
+ type: string
+ minItems: 0
+ type: array
+ cluster_size:
+ default: 1
+ description: >-
+ The number of Linode instance nodes deployed to
+ the Managed Database.
+
+ - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes.
+
+ - A `2` node cluster is only available with a
+ dedicated plan. It consists of one primary node
+ and one replica node.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: 3
+ type: integer
+ x-linode-cli-display: 5
+ created:
+ description: >-
+ __Read-only__ When this Managed Database was
+ created.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encrypted:
+ default: true
+ description: >-
+ __Read-only__ Whether the Managed Databases is
+ encrypted. Currently required to be `true`.
+ example: true
+ readOnly: true
+ type: boolean
+ engine:
+ description: >-
+ __Filterable__, __Read-only__ The Managed
+ Database engine type.
+ enum:
+ - mysql
+ - postgresql
+ example: mysql
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ fork:
+ additionalProperties: false
+ description: >-
+ Details on the database that was the target of
+ the fork. This only exists if the database was
+ restored by creating a fork from another
+ [MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances)
+ or
+ [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)
+ database.
+ properties:
+ restore_time:
+ description: >-
+ The database timestamp from which it was
+ restored. This is _not_ when the fork was
+ created.
+ example: '2024-10-14 19:55:12'
+ format: date-time
+ type: string
+ source:
+ description: >-
+ The instance id of the database that was
+ forked from.
+ example: 176881
+ type: integer
+ type: object
+ hosts:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The primary and secondary hosts
+ for the Managed Database. These are assigned
+ after provisioning is complete.
+ properties:
+ primary:
+ description: The primary host for the Managed Database.
+ example: >-
+ lin-123-456-mysql-mysql-primary.servers.linodedb.net
+ nullable: true
+ type: string
+ secondary:
+ 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.
+
+
+ > 📘
+
+ >
+
+ > The secondary hostname is publicly visible
+ and accessible.
+ example: >-
+ lin-123-456-mysql-primary-private.servers.linodedb.net
+ nullable: true
+ type: string
+ readOnly: true
+ type: object
+ id:
+ description: >-
+ __Read-only__ A unique ID that can be used to
+ identify and reference the Managed Database.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ instance_uri:
+ description: >-
+ __Read-only__ Append this to
+ `https://api.linode.com` to run commands for the
+ Managed Database.
+ example: /v4/databases/mysql/instances/123
+ readOnly: true
+ type: string
+ label:
+ description: >-
+ __Filterable__ A unique, user-defined string
+ referring to the Managed Database. This string
+ needs to be unique per Managed Database engine
+ type.
+ example: example-db
+ maxLength: 32
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ members:
+ description: >-
+ __Read-only__ A mapping between IP addresses and
+ strings designating them as `primary` or
+ `failover`.
+ example:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ readOnly: true
+ type: object
+ oldest_restore_time:
+ description: >-
+ __Read-only__ The oldest time to which a
+ database can be restored.
+ example: '2024-10-03 20:48:05'
+ format: date-time
+ readOnly: true
+ type: string
+ platform:
+ description: >-
+ __Filterable__, __Read-only__ The back-end
+ platform for relational databases used by the
+ service.
+ enum:
+ - rdbms-legacy
+ - rdbms-default
+ example: rdbms-default
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ port:
+ description: >-
+ __Read-only__ The access port for this Managed
+ Database.
+ example: 3306
+ readOnly: true
+ type: integer
+ region:
+ description: >-
+ __Filterable__ The
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ ID for the Managed Database.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The operating
+ status of the Managed Database.
+ enum:
+ - provisioning
+ - active
+ - suspending
+ - suspended
+ - resuming
+ - failed
+ - degraded
+ - updating
+ - resizing
+ example: active
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ active: green
+ default_: white
+ degraded: red
+ failed: red
+ provisioning: yellow
+ restoring: yellow
+ resuming: yellow
+ updating: yellow
+ x-linode-cli-display: 100
+ x-linode-filterable: true
+ total_disk_size_gb:
+ description: >-
+ __Read-only__ The total disk size of the
+ database, in GB.
+ example: 15
+ readOnly: true
+ type: integer
+ type:
+ description: >-
+ __Filterable__ The Linode Instance type used by
+ the Managed Database for its nodes.
+ example: g6-dedicated-2
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Read-only__ When this Managed Database was
+ last updated.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ updates:
+ additionalProperties: false
+ description: >-
+ Configuration settings for automated patch
+ update maintenance for the Managed Database.
+ properties:
+ day_of_week:
+ description: >-
+ The numeric reference for the day of the
+ week to perform maintenance. `1` is Monday,
+ `2` is Tuesday, through to `7` which is
+ Sunday.
+ example: 1
+ maximum: 7
+ minimum: 1
+ type: integer
+ duration:
+ description: >-
+ The maximum maintenance window time in
+ hours.
+ example: 3
+ maximum: 3
+ minimum: 1
+ type: integer
+ frequency:
+ default: weekly
+ description: >-
+ How frequently maintenance occurs. Currently
+ can only be `weekly`.
+ enum:
+ - weekly
+ example: weekly
+ type: string
+ hour_of_day:
+ description: >-
+ The hour to begin maintenance based in UTC
+ time.
+ example: 0
+ maximum: 23
+ minimum: 0
+ type: integer
+ pending:
+ description: __Read-only__ An array of pending updates.
+ example: []
+ items:
+ additionalProperties: false
+ description: A planned maintenance update.
+ properties:
+ deadline:
+ description: >-
+ The time when a mandatory update needs
+ to be applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ description:
+ description: A description of the update.
+ example: TimescaleDB version 2.17.1 is available.
+ type: string
+ planned_for:
+ description: >-
+ The date and time a maintenance update
+ will be applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ type: object
+ minItems: 0
+ readOnly: true
+ type: array
+ type: object
+ used_disk_size_gb:
+ description: >-
+ __Read-only__ The amount of space currently in
+ use in the database, in GB.
+ example: 2
+ readOnly: true
+ type: integer
+ version:
+ description: >-
+ __Filterable__ The Managed Database engine
+ version.
+ example: 8.0.26
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/database.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/get-databases-instances-200.yaml
+ description: >-
+ Returns a paginated list of all accessible Managed Databases on your
+ account.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - 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:
- get:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_only
+ summary: List Managed Databases
tags:
- 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-akamai:
+ tabs:
+ - syntax: linode-cli databases list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- description: |
- Display all accessible Managed MongoDB Databases.
+ parameters: []
+ x-akamai:
+ file-path: paths/database-instances.yaml
+ path-info: /{apiVersion}/databases/instances
+ x-linode-cli-command: databases
+ /databases/mysql/config:
+ get:
+ description: >-
+ All advanced parameters you can apply to a MySQL Managed Database, via
+ our partner
+ [Aiven](https://aiven.io/docs/products/mysql/reference/advanced-params).
+
+
+ > 📘
+
+ >
+
+ > Aiven may offer other parameters, but Akamai Managed Databases only
+ supports the ones listed in this operation.
+
- **Note**: New MongoDB Databases cannot currently be created.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-config
+ operationId: get-databases-mysql-config
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ binlog_retention_period:
+ description: >-
+ The minimum amount of time in seconds to keep binlog entries
+ before deletion. This may be extended for services that
+ require binlog entries for longer than the default for
+ example if using the MySQL Debezium Kafka connector.
+ example: 600
+ maximum: 86400
+ minimum: 600
+ requires_restart: false
+ type: integer
+ mysql:
+ connect_timeout:
+ description: >-
+ The number of seconds that the mysqld server waits for a
+ connect packet before responding with Bad handshake
+ example: 10
+ maximum: 3600
+ minimum: 2
+ requires_restart: false
+ type: integer
+ default_time_zone:
+ description: >-
+ Default server time zone as an offset from UTC (from
+ -12:00 to +12:00), a time zone name, or 'SYSTEM' to use
+ the MySQL server default.
+ example: '+03:00'
+ maxLength: 100
+ minLength: 2
+ pattern: ^([-+][\d:]*|[\w/]*)$
+ requires_restart: false
+ type: string
+ group_concat_max_len:
+ description: >-
+ The maximum permitted result length in bytes for the
+ GROUP_CONCAT() function.
+ example: 1024
+ maximum: 18446744073709552000
+ minimum: 4
+ requires_restart: false
+ type: integer
+ information_schema_stats_expiry:
+ description: The time, in seconds, before cached statistics expire
+ example: 86400
+ maximum: 31536000
+ minimum: 900
+ requires_restart: false
+ type: integer
+ innodb_change_buffer_max_size:
+ description: >-
+ Maximum size for the InnoDB change buffer, as a percentage
+ of the total size of the buffer pool. Default is 25
+ example: 30
+ maximum: 50
+ minimum: 0
+ requires_restart: false
+ type: integer
+ innodb_flush_neighbors:
+ description: >-
+ Specifies whether flushing a page from the InnoDB buffer
+ pool also flushes other dirty pages in the same extent
+ (default is 1): 0 - dirty pages in the same extent are not
+ flushed, 1 - flush contiguous dirty pages in the same
+ extent, 2 - flush dirty pages in the same extent
+ example: 0
+ maximum: 2
+ minimum: 0
+ requires_restart: false
+ type: integer
+ innodb_ft_min_token_size:
+ description: >-
+ Minimum length of words that are stored in an InnoDB
+ FULLTEXT index. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 3
+ maximum: 16
+ minimum: 0
+ requires_restart: true
+ type: integer
+ innodb_ft_server_stopword_table:
+ description: >-
+ This option is used to specify your own InnoDB FULLTEXT
+ index stopword list for all InnoDB tables.
+ example: db_name/table_name
+ maxLength: 1024
+ pattern: ^.+/.+$
+ requires_restart: false
+ type:
+ - 'null'
+ - string
+ innodb_lock_wait_timeout:
+ description: >-
+ The length of time in seconds an InnoDB transaction waits
+ for a row lock before giving up. Default is 120.
+ example: 50
+ maximum: 3600
+ minimum: 1
+ requires_restart: false
+ type: integer
+ innodb_log_buffer_size:
+ description: >-
+ The size in bytes of the buffer that InnoDB uses to write
+ to the log files on disk.
+ example: 16777216
+ maximum: 4294967295
+ minimum: 1048576
+ requires_restart: false
+ type: integer
+ innodb_online_alter_log_max_size:
+ description: >-
+ The upper limit in bytes on the size of the temporary log
+ files used during online DDL operations for InnoDB tables.
+ example: 134217728
+ maximum: 1099511627776
+ minimum: 65536
+ requires_restart: false
+ type: integer
+ innodb_read_io_threads:
+ description: >-
+ The number of I/O threads for read operations in InnoDB.
+ Default is 4. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 10
+ maximum: 64
+ minimum: 1
+ requires_restart: true
+ type: integer
+ innodb_rollback_on_timeout:
+ description: >-
+ When enabled a transaction timeout causes InnoDB to abort
+ and roll back the entire transaction. Changing this
+ parameter will lead to a restart of the MySQL service.
+ example: true
+ requires_restart: true
+ type: boolean
+ innodb_thread_concurrency:
+ description: >-
+ Defines the maximum number of threads permitted inside of
+ InnoDB. Default is 0 (infinite concurrency - no limit)
+ example: 10
+ maximum: 1000
+ minimum: 0
+ requires_restart: false
+ type: integer
+ innodb_write_io_threads:
+ description: >-
+ The number of I/O threads for write operations in InnoDB.
+ Default is 4. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 10
+ maximum: 64
+ minimum: 1
+ requires_restart: true
+ type: integer
+ interactive_timeout:
+ description: >-
+ The number of seconds the server waits for activity on an
+ interactive connection before closing it.
+ example: 3600
+ maximum: 604800
+ minimum: 30
+ requires_restart: false
+ type: integer
+ internal_tmp_mem_storage_engine:
+ description: >-
+ The storage engine for in-memory internal temporary
+ tables.
+ enum:
+ - TempTable
+ - MEMORY
+ example: TempTable
+ requires_restart: false
+ type: string
+ max_allowed_packet:
+ description: >-
+ Size of the largest message in bytes that can be received
+ by the server. Default is 67108864 (64M)
+ example: 67108864
+ maximum: 1073741824
+ minimum: 102400
+ requires_restart: false
+ type: integer
+ max_heap_table_size:
+ description: >-
+ Limits the size of internal in-memory tables. Also set
+ tmp_table_size. Default is 16777216 (16M)
+ example: 16777216
+ maximum: 1073741824
+ minimum: 1048576
+ requires_restart: false
+ type: integer
+ net_buffer_length:
+ description: >-
+ Start sizes of connection buffer and result buffer.
+ Default is 16384 (16K). Changing this parameter will lead
+ to a restart of the MySQL service.
+ example: 16384
+ maximum: 1048576
+ minimum: 1024
+ requires_restart: true
+ type: integer
+ net_read_timeout:
+ description: >-
+ The number of seconds to wait for more data from a
+ connection before aborting the read.
+ example: 30
+ maximum: 3600
+ minimum: 1
+ requires_restart: false
+ type: integer
+ net_write_timeout:
+ description: >-
+ The number of seconds to wait for a block to be written to
+ a connection before aborting the write.
+ example: 30
+ maximum: 3600
+ minimum: 1
+ requires_restart: false
+ type: integer
+ sort_buffer_size:
+ description: >-
+ Sort buffer size in bytes for ORDER BY optimization.
+ Default is 262144 (256K)
+ example: 262144
+ maximum: 1073741824
+ minimum: 32768
+ requires_restart: false
+ type: integer
+ sql_mode:
+ description: >-
+ Global SQL mode. Set to empty to use MySQL server
+ defaults. When creating a new service and not setting this
+ field Akamai default SQL mode (strict, SQL standard
+ compliant) will be assigned.
+ example: ANSI,TRADITIONAL
+ maxLength: 1024
+ pattern: ^[A-Z_]*(,[A-Z_]+)*$
+ requires_restart: false
+ type: string
+ sql_require_primary_key:
+ description: >-
+ Require primary key to be defined for new tables or old
+ tables modified with ALTER TABLE and fail if missing. It
+ is recommended to always have primary keys because various
+ functionality may break if any large table is missing
+ them.
+ example: true
+ requires_restart: false
+ type: boolean
+ tmp_table_size:
+ description: >-
+ Limits the size of internal in-memory tables. Also set
+ max_heap_table_size. Default is 16777216 (16M)
+ example: 16777216
+ maximum: 1073741824
+ minimum: 1048576
+ requires_restart: false
+ type: integer
+ wait_timeout:
+ description: >-
+ The number of seconds the server waits for activity on a
+ noninteractive connection before closing it.
+ example: 28800
+ maximum: 2147483
+ minimum: 1
+ requires_restart: false
+ type: integer
+ schema:
+ additionalProperties: false
+ description: >-
+ Available [advanced
+ parameters](https://aiven.io/docs/products/mysql/reference/advanced-params)
+ for a MySQL Managed Database.
+ properties:
+ binlog_retention_period:
+ additionalProperties: false
+ description: >-
+ Settings available to configure a
+ `binlog_retention_period`, per Aiven's specifications.
+ type: integer
+ mysql:
+ additionalProperties: false
+ description: >-
+ Parameters available to configure a MySQL Managed
+ Database.
+ properties:
+ connect_timeout:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the `connect_timeout`,
+ per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ default_time_zone:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the `connect_timeout`,
+ per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: >-
+ An example value for this parameter, using the
+ required `pattern`.
+ type: string
+ maxLength:
+ description: The maximum character length for this parameter.
+ type: integer
+ minLength:
+ description: The minimum character length for this parameter.
+ type: integer
+ pattern:
+ description: >-
+ The pattern to follow when defining this
+ parameter.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ group_concat_max_len:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `group_concat_max_len`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ information_schema_stats_expiry:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `information_schema_stats_expiry`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ innodb_change_buffer_max_size:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `innodb_change_buffer_max_size`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ innodb_flush_neighbors:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `innodb_flush_neighbors`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ innodb_ft_min_token_size:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `innodb_ft_min_token_size`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ innodb_ft_server_stopword_table:
+ additionalProperties: false
+ description: >-
+ Settings available to configure your own
+ `innodb_ft_server_stopword_table`, per Aiven's
+ specifications. Set to `null` for no value.
+ nullable: true
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: >-
+ An example value for this parameter, using the
+ required `pattern`, or `null` for no value.
+ type: string
+ maxLength:
+ description: The maximum character length for this parameter.
+ type: integer
+ pattern:
+ description: >-
+ The pattern to follow when defining this
+ parameter.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ innodb_lock_wait_timeout:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `innodb_lock_wait_timeout`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ innodb_log_buffer_size:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `innodb_log_buffer_size`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ innodb_online_alter_log_max_size:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `innodb_online_alter_log_max_size`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ innodb_read_io_threads:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `innodb_read_io_threads`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ innodb_rollback_on_timeout:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `innodb_rollback_on_timeout`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example boolean value for this parameter.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ innodb_thread_concurrency:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `innodb_thread_concurrency`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ innodb_write_io_threads:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `innodb_write_io_threads`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ interactive_timeout:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `interactive_timeout`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ internal_tmp_mem_storage_engine:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `internal_tmp_mem_storage_engine`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ enum:
+ description: >-
+ Specific values available for use as this
+ parameter.
+ type: string
+ example:
+ description: One of the `enum` values available for use.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_allowed_packet:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `max_allowed_packet`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_heap_table_size:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `max_heap_table_size`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ net_buffer_length:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `net_buffer_length`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ net_read_timeout:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `net_read_timeout`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ net_write_timeout:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `net_write_timeout`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ sql_mode:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the `sql_mode`, per
+ Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: >-
+ An example value for this parameter, using the
+ required `pattern`.
+ type: string
+ maxLength:
+ description: The maximum character length for this parameter.
+ type: integer
+ pattern:
+ description: >-
+ The pattern to follow when defining this
+ parameter.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ sql_require_primary_key:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `sql_require_primary_key`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example boolean value for this parameter.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ tmp_table_size:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the `tmp_table_size`,
+ per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ wait_timeout:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the `wait_timeout`,
+ per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the MySQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/database-mysql-config-200.yaml
+ description: MySQL Managed Database advanced parameters.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'databases:read_only'
+ - databases:read_only
+ summary: List MySQL Managed Database advanced parameters
+ tags:
+ - Advanced parameters
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases mysql-config
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: mysql-config-view
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/mysql-config.yaml
+ path-info: /{apiVersion}/databases/mysql/config
+ x-linode-cli-command: databases
+ /databases/mysql/instances:
+ post:
+ description: >-
+ **Provision a MySQL Managed Database**
+
+
+ Use this operation to create a new MySQL Managed Database.
+
+
+ - Restricted users need the `add_databases` [user
+ grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).
+
+
+ - New instances can take 10 to 15 minutes to deploy.
+
+
+ - When you create a new MySQL Managed Database, our partner
+ [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption)
+ automatically enables disk encryption on each cluster.
+
+
+ - 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 updates, which apply security
+ patches to the underlying operating system of the MySQL Managed
+ Database. Configure the maintenance window for these updates with the
+ [Update a managed MySQL
+ database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance)
+ operation.
+
+
+ - If your database cluster is configured with a single node, downtime
+ occurs during maintenance updates. You should adjust the window to match
+ a time that's the least disruptive to your application and users. Also
+ consider upgrading to a [high
+ availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability)
+ plan to avoid any maintenance downtime.
+
+
+ - Major upgrades are optional until the service reaches end of service,
+ and can be done in place.
+
+
+ - A successful request triggers a `database_create`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events).
+
+
+ **Restore a MySQL Managed Database**
+
+
+ Include the `fork` object in the request to target a backed-up database.
+ Your user needs `read_write` access to the target database and its
+ status can be `active`, `degraded`, or `failed`.
+
+
+ > 📘
+
+ >
+
+ > Restoring from a backup creates a second running cluster, which incurs
+ billing. Delete the first cluster after the restore is complete, to
+ avoid this billing. __CLI for create operation__.
+
+ ```
+ linode-cli databases mysql-create \
+ --label example-db1 \
+ --region us-east \
+ --type g6-dedicated-2 \
+ --cluster_size 3 \
+ --engine mysql/8.0.26 \
+ --engine_config.binlog_retention_period 60 \
+ --engine_config.mysql.connect_timeout 10 \
+ --engine_config.mysql.default_time_zone +03:00 \
+ --ssl_connection true \
+ --allow_list 203.0.113.1 \
+ --allow_list 192.0.1.0/24
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances
+ operationId: post-databases-mysql-instances
+ requestBody:
+ content:
+ application/json:
+ example:
+ allow_list:
+ - 192.0.2.152/24
+ - 192.0.2.229/24
+ cluster_size: 3
+ engine: mysql
+ engine_config:
+ binlog_retention_period: 600
+ mysql:
+ connect_timeout: 10
+ default_time_zone: '+03:00'
+ group_concat_max_len: 1024
+ information_schema_stats_expiry: 86400
+ innodb_change_buffer_max_size: 30
+ innodb_flush_neighbors: 0
+ innodb_ft_min_token_size: 3
+ innodb_ft_server_stopword_table: db_name/table_name
+ innodb_lock_wait_timeout: 50
+ innodb_log_buffer_size: 16777216
+ innodb_online_alter_log_max_size: 134217728
+ innodb_read_io_threads: 10
+ innodb_rollback_on_timeout: true
+ innodb_thread_concurrency: 10
+ innodb_write_io_threads: 10
+ interactive_timeout: 3600
+ internal_tmp_mem_storage_engine: TempTable
+ max_allowed_packet: 67108864
+ max_heap_table_size: 16777216
+ net_buffer_length: 16384
+ net_read_timeout: 30
+ net_write_timeout: 30
+ sort_buffer_size: 262144
+ sql_mode: ANSI,TRADITIONAL
+ sql_require_primary_key: true
+ tmp_table_size: 16777216
+ wait_timeout: 28800
+ fork:
+ restore_time: '2024-10-14T19:55:12'
+ source: 176881
+ label: example-db
+ region: us-east
+ ssl_connection: true
+ type: g6-dedicated-2
+ schema:
+ additionalProperties: false
+ description: Managed MySQL Database request object.
+ properties:
+ allow_list:
+ description: >-
+ Controls access to the Managed Database.
+
+
+ - Individually included IP addresses or CIDR ranges can
+ access the Managed Database while all other sources are
+ blocked.
+
+
+ - A standalone value of `0.0.0.0/0` allows all IP addresses
+ access to the Managed Database.
+
+
+ - An empty array (`[]`) blocks all public and private
+ connections to the Managed Database.
+ example:
+ - 203.0.113.1/32
+ - 192.0.1.0/24
+ items:
+ format: ipv4/prefix_length
+ pattern: >-
+ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
+ type: string
+ minItems: 0
+ type: array
+ cluster_size:
+ default: 1
+ description: >-
+ The number of Linode instance nodes deployed to the Managed
+ Database.
+
+ - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes.
+
+ - A `2` node cluster is only available with a dedicated
+ plan. It consists of one primary node and one replica node.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: '{{cluster_size}}'
+ type: integer
+ x-linode-cli-display: 5
+ engine:
+ description: The Managed Database engine in engine/version format.
+ example: '{{engine}}'
+ type: string
+ engine_config:
+ additionalProperties: false
+ description: >-
+ Advanced parameters you can apply to a MySQL Managed
+ Database, via our partner [Aiven's
+ specification](https://aiven.io/docs/products/mysql/reference/advanced-params).
+ Only include the objects for parameters you want to set in
+ your database. Omit objects for parameters you don't want to
+ define or change.
+
+
+ > 📘
+
+ >
+
+ > Aiven may offer additional parameters in their
+ specification. Currently, only those listed here are
+ supported for use in a MySQL Managed Database. You can also
+ run the [List MySQL Managed Database advanced
+ parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-config)
+ operation to see an up-to-date list.
+ properties:
+ binlog_retention_period:
+ description: >-
+ The minimum amount of time in seconds to keep `binlog`
+ entries before deletion. This may be extended for
+ services that require `binlog` entries for longer than
+ the default, for example if using the MySQL Debezium
+ Kafka connector.
+ example: 600
+ maximum: 86400
+ minimum: 600
+ type: integer
+ mysql:
+ additionalProperties: false
+ description: MySQL-specific advanced configuration parameters.
+ properties:
+ connect_timeout:
+ description: >-
+ The number of seconds that the `mysqld` server waits
+ for a connect packet before responding with bad
+ handshake.
+ example: 10
+ maximum: 3600
+ minimum: 2
+ type: integer
+ default_time_zone:
+ description: >-
+ Default server time zone as an offset from UTC (from
+ -12:00 to +12:00), a time zone name, or `SYSTEM` to
+ use the MySQL server default.
+ example: '+03:00'
+ maxLength: 100
+ minLength: 2
+ pattern: ^([-+][\\d:]*|[\\w/]*)$
+ type: string
+ group_concat_max_len:
+ description: >-
+ The maximum permitted result length in bytes for the
+ `GROUP_CONCAT()` function.
+ example: 1024
+ maximum: 18446744073709552000
+ minimum: 4
+ type: integer
+ information_schema_stats_expiry:
+ description: >-
+ The time, in seconds, before cached statistics
+ expire.
+ example: 86400
+ maximum: 31536000
+ minimum: 900
+ type: integer
+ innodb_change_buffer_max_size:
+ default: 25
+ description: >-
+ Maximum size for the InnoDB change buffer, as a
+ percentage of the total size of the buffer pool.
+ example: 30
+ maximum: 50
+ minimum: 0
+ type: integer
+ innodb_flush_neighbors:
+ default: 1
+ description: >-
+ Specifies whether flushing a page from the InnoDB
+ buffer pool also flushes other dirty pages in the
+ same extent: `0` - dirty pages in the same extent
+ are not flushed, `1` - flush contiguous dirty pages
+ in the same extent, `2` - flush dirty pages in the
+ same extent.
+ example: 0
+ maximum: 2
+ minimum: 0
+ type: integer
+ innodb_ft_min_token_size:
+ description: >-
+ Minimum length of words that are stored in an InnoDB
+ `-1FULLTEXT` index. Changing this parameter will
+ lead to a restart of the MySQL service.
+ example: 3
+ maximum: 16
+ minimum: 0
+ type: integer
+ innodb_ft_server_stopword_table:
+ description: >-
+ This option is used to specify your own InnoDB
+ `FULLTEXT` index `stopword` list for all InnoDB
+ tables. Set to `null` for no value.
+ example: db_name/table_name
+ maxLength: 1024
+ nullable: true
+ pattern: ^.+/.+$
+ type: string
+ innodb_lock_wait_timeout:
+ default: 120
+ description: >-
+ The length of time in seconds an InnoDB transaction
+ waits for a row lock before giving up.
+ example: 50
+ maximum: 3600
+ minimum: 1
+ type: integer
+ innodb_log_buffer_size:
+ description: >-
+ The size in bytes of the buffer that InnoDB uses to
+ write to the log files on disk.
+ example: 16777216
+ maximum: 4294967295
+ minimum: 1048576
+ type: integer
+ innodb_online_alter_log_max_size:
+ description: >-
+ The upper limit in bytes on the size of the
+ temporary log files used during online DDL
+ operations for InnoDB tables.
+ example: 134217728
+ maximum: 1099511627776
+ minimum: 65536
+ type: integer
+ innodb_read_io_threads:
+ default: 4
+ description: >-
+ The number of I/O threads for read operations in
+ InnoDB. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 10
+ maximum: 64
+ minimum: 1
+ type: integer
+ innodb_rollback_on_timeout:
+ description: >-
+ When enabled a transaction timeout causes InnoDB to
+ abort and roll back the entire transaction. Changing
+ this parameter will lead to a restart of the MySQL
+ service.
+ example: true
+ type: boolean
+ innodb_thread_concurrency:
+ default: 0
+ description: >-
+ Defines the maximum number of threads permitted
+ inside of InnoDB. The default is `0` which indicates
+ infinite concurrency, or no limit.
+ example: 10
+ maximum: 1000
+ minimum: 0
+ type: integer
+ innodb_write_io_threads:
+ default: 4
+ description: >-
+ The number of I/O threads for write operations in
+ InnoDB. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 10
+ maximum: 64
+ minimum: 1
+ type: integer
+ interactive_timeout:
+ description: >-
+ The number of seconds the server waits for activity
+ on an interactive connection before closing it.
+ example: 3600
+ maximum: 604800
+ minimum: 30
+ type: integer
+ internal_tmp_mem_storage_engine:
+ description: >-
+ The storage engine for in-memory internal temporary
+ tables.
+ enum:
+ - TempTable
+ - MEMORY
+ example: TempTable
+ type: string
+ max_allowed_packet:
+ default: 7108864
+ description: >-
+ Size of the largest message in bytes that can be
+ received by the server.
+ example: 67108864
+ maximum: 1073741824
+ minimum: 102400
+ type: integer
+ max_heap_table_size:
+ default: 16777216
+ description: >-
+ Limits the size of internal in-memory tables. Also
+ set `tmp_table_size`.
+ example: 24777216
+ maximum: 1073741824
+ minimum: 1048576
+ type: integer
+ net_buffer_length:
+ default: 16384
+ description: >-
+ Start sizes of connection buffer and result buffer.
+ Changing this parameter will lead to a restart of
+ the MySQL service.
+ example: 16384
+ maximum: 1048576
+ minimum: 1024
+ type: integer
+ net_read_timeout:
+ description: >-
+ The number of seconds to wait for more data from a
+ connection before aborting the read.
+ example: 30
+ maximum: 3600
+ minimum: 1
+ type: integer
+ net_write_timeout:
+ description: >-
+ The number of seconds to wait for a block to be
+ written to a connection before aborting the write.
+ example: 30
+ maximum: 3600
+ minimum: 1
+ type: integer
+ sql_mode:
+ description: >-
+ Global SQL mode. Set to empty to use MySQL server
+ defaults. When creating a new service and not
+ setting this field, Akamai defaults to SQL mode
+ which is strict, SQL standard compliant.
+ example: ANSI,TRADITIONAL
+ maxLength: 1024
+ pattern: ^[A-Z_]*(,[A-Z_]+)*$
+ type: string
+ sql_require_primary_key:
+ description: >-
+ Require primary key to be defined for new tables or
+ old tables modified with `ALTER TABLE` and fail if
+ missing. You should always have primary keys because
+ various functionality may break if any large table
+ is missing them.
+ example: true
+ type: boolean
+ tmp_table_size:
+ default: 16777216
+ description: >-
+ Limits the size of internal in-memory tables. This
+ also requires a `max_heap_table_size`.
+ example: 24777216
+ maximum: 1073741824
+ minimum: 1048576
+ type: integer
+ wait_timeout:
+ description: >-
+ The number of seconds the server waits for activity
+ on a non-interactive connection before closing it.
+ example: 28800
+ maximum: 2147483
+ minimum: 1
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/database-mysql-engine-config.yaml
+ fork:
+ additionalProperties: false
+ description: >-
+ Include this object to restore a Managed Database by forking
+ from a backup.
+
+
+ - If you include this object, all other fields are optional.
+
+
+ - Don't include this object if you're creating a new Managed
+ Database.
+ properties:
+ restore_time:
+ description: A specific database timestamp to restore from.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ type: string
+ source:
+ description: >-
+ The unique instance id for the database to fork from.
+ Run the [List Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-instances)
+ operation and store the unique `id` for the target
+ Managed Database.
+ example: 176881
+ type: integer
+ required:
+ - source
+ type: object
+ x-akamai:
+ file-path: schemas/database-restore-fork.yaml
+ label:
+ description: >-
+ __Filterable__ A unique, user-defined string referring to
+ the Managed Database. This string needs to be unique per
+ Managed Database engine type.
+ example: '{{label}}'
+ maxLength: 32
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ region:
+ description: >-
+ __Filterable__ The
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ ID for the Managed Database.
+ example: '{{region}}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ ssl_connection:
+ default: true
+ description: >-
+ Currently required to be `true`. Whether to require SSL
+ credentials to establish a connection to the Managed
+ Database. Run the [Get managed MySQL database
+ credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-credentials)
+ operation for access information.
+ example: '{{ssl_connection}}'
+ type: boolean
+ type:
+ description: >-
+ __Filterable__ The Linode Instance type used by the Managed
+ Database for its nodes.
+ example: '{{type}}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ required:
+ - label
+ - type
+ - engine
+ - region
+ type: object
+ x-akamai:
+ file-path: schemas/database-mysql-request.yaml
+ required: true
+ x-linode-cli-allowed-defaults:
+ - engine
+ - region
+ - type
responses:
'200':
- description: Returns a paginated list of all accessible Managed MongoDB Databases on your Account.
content:
application/json:
+ example:
+ allow_list:
+ - 192.0.2.152/24
+ - 192.0.2.229/24
+ cluster_size: 3
+ created: '2022-01-01T00:01:01'
+ encrypted: true
+ engine: mysql
+ engine_config:
+ binlog_retention_period: 600
+ mysql:
+ connect_timeout: 10
+ default_time_zone: '+03:00'
+ group_concat_max_len: 1024
+ information_schema_stats_expiry: 86400
+ innodb_change_buffer_max_size: 30
+ innodb_flush_neighbors: 0
+ innodb_ft_min_token_size: 3
+ innodb_ft_server_stopword_table: db_name/table_name
+ innodb_lock_wait_timeout: 50
+ innodb_log_buffer_size: 16777216
+ innodb_online_alter_log_max_size: 134217728
+ innodb_read_io_threads: 10
+ innodb_rollback_on_timeout: true
+ innodb_thread_concurrency: 10
+ innodb_write_io_threads: 10
+ interactive_timeout: 3600
+ internal_tmp_mem_storage_engine: TempTable
+ max_allowed_packet: 67108864
+ max_heap_table_size: 16777216
+ net_buffer_length: 16384
+ net_read_timeout: 30
+ net_write_timeout: 30
+ sort_buffer_size: 262144
+ sql_mode: ANSI,TRADITIONAL
+ sql_require_primary_key: true
+ tmp_table_size: 16777216
+ wait_timeout: 28800
+ fork:
+ restore_time: '2024-10-14T19:55:12'
+ source: 176881
+ hosts:
+ primary: lin-123-456-mysql-mysql-primary.servers.linodedb.net
+ secondary: lin-123-456-mysql-primary-private.servers.linodedb.net
+ id: 123
+ label: example-db
+ members:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ oldest_restore_time: '2025-01-01T00:01:01'
+ platform: rdbms-default
+ port: 3306
+ region: us-east
+ ssl_connection: true
+ status: active
+ total_disk_size_gb: 15
+ type: g6-dedicated-2
+ updated: '2025-01-01T00:01:01'
+ updates:
+ day_of_week: 1
+ duration: 3
+ frequency: weekly
+ hour_of_day: 0
+ pending: []
+ used_disk_size_gb: 2
+ version: 8.0.26
schema:
- allOf:
- - $ref: '#/components/schemas/PaginationEnvelope'
- - type: object
+ additionalProperties: false
+ description: Managed MySQL Databases object.
+ properties:
+ allow_list:
+ description: >-
+ Controls access to the Managed Database.
+
+
+ - Individually included IP addresses or CIDR ranges can
+ access the Managed Database while all other sources are
+ blocked.
+
+
+ - A standalone value of `0.0.0.0/0` allows all IP
+ addresses access to the Managed Database.
+
+
+ - An empty array (`[]`) blocks all public and private
+ connections to the Managed Database.
+ example:
+ - 203.0.113.1/32
+ - 192.0.1.0/24
+ items:
+ format: ipv4/prefix_length
+ pattern: >-
+ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
+ type: string
+ minItems: 0
+ type: array
+ cluster_size:
+ default: 1
+ description: >-
+ The number of Linode instance nodes deployed to the
+ Managed Database.
+
+ - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes.
+
+ - A `2` node cluster is only available with a dedicated
+ plan. It consists of one primary node and one replica
+ node.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: 3
+ type: integer
+ x-linode-cli-display: 7
+ created:
+ description: __Read-only__ When this Managed Database was created.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encrypted:
+ default: true
+ description: >-
+ __Read-only__ Whether the Managed Databases is encrypted.
+ Currently required to be `true`.
+ example: true
+ readOnly: true
+ type: boolean
+ engine:
+ description: >-
+ __Filterable__, __Read-only__ The Managed Database engine
+ type.
+ example: mysql
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ engine_config:
+ additionalProperties: false
+ description: >-
+ Advanced parameters you can apply to a MySQL Managed
+ Database, via our partner [Aiven's
+ specification](https://aiven.io/docs/products/mysql/reference/advanced-params).
+ Only include the objects for parameters you want to set in
+ your database. Omit objects for parameters you don't want
+ to define or change.
+
+
+ > 📘
+
+ >
+
+ > Aiven may offer additional parameters in their
+ specification. Currently, only those listed here are
+ supported for use in a MySQL Managed Database. You can
+ also run the [List MySQL Managed Database advanced
+ parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-config)
+ operation to see an up-to-date list.
properties:
- data:
- type: array
+ binlog_retention_period:
+ description: >-
+ The minimum amount of time in seconds to keep `binlog`
+ entries before deletion. This may be extended for
+ services that require `binlog` entries for longer than
+ the default, for example if using the MySQL Debezium
+ Kafka connector.
+ example: 600
+ maximum: 86400
+ minimum: 600
+ type: integer
+ mysql:
+ additionalProperties: false
+ description: MySQL-specific advanced configuration parameters.
+ properties:
+ connect_timeout:
+ description: >-
+ The number of seconds that the `mysqld` server
+ waits for a connect packet before responding with
+ bad handshake.
+ example: 10
+ maximum: 3600
+ minimum: 2
+ type: integer
+ default_time_zone:
+ description: >-
+ Default server time zone as an offset from UTC
+ (from -12:00 to +12:00), a time zone name, or
+ `SYSTEM` to use the MySQL server default.
+ example: '+03:00'
+ maxLength: 100
+ minLength: 2
+ pattern: ^([-+][\\d:]*|[\\w/]*)$
+ type: string
+ group_concat_max_len:
+ description: >-
+ The maximum permitted result length in bytes for
+ the `GROUP_CONCAT()` function.
+ example: 1024
+ maximum: 18446744073709552000
+ minimum: 4
+ type: integer
+ information_schema_stats_expiry:
+ description: >-
+ The time, in seconds, before cached statistics
+ expire.
+ example: 86400
+ maximum: 31536000
+ minimum: 900
+ type: integer
+ innodb_change_buffer_max_size:
+ default: 25
+ description: >-
+ Maximum size for the InnoDB change buffer, as a
+ percentage of the total size of the buffer pool.
+ example: 30
+ maximum: 50
+ minimum: 0
+ type: integer
+ innodb_flush_neighbors:
+ default: 1
+ description: >-
+ Specifies whether flushing a page from the InnoDB
+ buffer pool also flushes other dirty pages in the
+ same extent: `0` - dirty pages in the same extent
+ are not flushed, `1` - flush contiguous dirty
+ pages in the same extent, `2` - flush dirty pages
+ in the same extent.
+ example: 0
+ maximum: 2
+ minimum: 0
+ type: integer
+ innodb_ft_min_token_size:
+ description: >-
+ Minimum length of words that are stored in an
+ InnoDB `-1FULLTEXT` index. Changing this parameter
+ will lead to a restart of the MySQL service.
+ example: 3
+ maximum: 16
+ minimum: 0
+ type: integer
+ innodb_ft_server_stopword_table:
+ description: >-
+ This option is used to specify your own InnoDB
+ `FULLTEXT` index `stopword` list for all InnoDB
+ tables. Set to `null` for no value.
+ example: db_name/table_name
+ maxLength: 1024
+ nullable: true
+ pattern: ^.+/.+$
+ type: string
+ innodb_lock_wait_timeout:
+ default: 120
+ description: >-
+ The length of time in seconds an InnoDB
+ transaction waits for a row lock before giving up.
+ example: 50
+ maximum: 3600
+ minimum: 1
+ type: integer
+ innodb_log_buffer_size:
+ description: >-
+ The size in bytes of the buffer that InnoDB uses
+ to write to the log files on disk.
+ example: 16777216
+ maximum: 4294967295
+ minimum: 1048576
+ type: integer
+ innodb_online_alter_log_max_size:
+ description: >-
+ The upper limit in bytes on the size of the
+ temporary log files used during online DDL
+ operations for InnoDB tables.
+ example: 134217728
+ maximum: 1099511627776
+ minimum: 65536
+ type: integer
+ innodb_read_io_threads:
+ default: 4
+ description: >-
+ The number of I/O threads for read operations in
+ InnoDB. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 10
+ maximum: 64
+ minimum: 1
+ type: integer
+ innodb_rollback_on_timeout:
+ description: >-
+ When enabled a transaction timeout causes InnoDB
+ to abort and roll back the entire transaction.
+ Changing this parameter will lead to a restart of
+ the MySQL service.
+ example: true
+ type: boolean
+ innodb_thread_concurrency:
+ default: 0
+ description: >-
+ Defines the maximum number of threads permitted
+ inside of InnoDB. The default is `0` which
+ indicates infinite concurrency, or no limit.
+ example: 10
+ maximum: 1000
+ minimum: 0
+ type: integer
+ innodb_write_io_threads:
+ default: 4
+ description: >-
+ The number of I/O threads for write operations in
+ InnoDB. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 10
+ maximum: 64
+ minimum: 1
+ type: integer
+ interactive_timeout:
+ description: >-
+ The number of seconds the server waits for
+ activity on an interactive connection before
+ closing it.
+ example: 3600
+ maximum: 604800
+ minimum: 30
+ type: integer
+ internal_tmp_mem_storage_engine:
+ description: >-
+ The storage engine for in-memory internal
+ temporary tables.
+ enum:
+ - TempTable
+ - MEMORY
+ example: TempTable
+ type: string
+ max_allowed_packet:
+ default: 7108864
+ description: >-
+ Size of the largest message in bytes that can be
+ received by the server.
+ example: 67108864
+ maximum: 1073741824
+ minimum: 102400
+ type: integer
+ max_heap_table_size:
+ default: 16777216
+ description: >-
+ Limits the size of internal in-memory tables. Also
+ set `tmp_table_size`.
+ example: 24777216
+ maximum: 1073741824
+ minimum: 1048576
+ type: integer
+ net_buffer_length:
+ default: 16384
+ description: >-
+ Start sizes of connection buffer and result
+ buffer. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 16384
+ maximum: 1048576
+ minimum: 1024
+ type: integer
+ net_read_timeout:
+ description: >-
+ The number of seconds to wait for more data from a
+ connection before aborting the read.
+ example: 30
+ maximum: 3600
+ minimum: 1
+ type: integer
+ net_write_timeout:
+ description: >-
+ The number of seconds to wait for a block to be
+ written to a connection before aborting the write.
+ example: 30
+ maximum: 3600
+ minimum: 1
+ type: integer
+ sql_mode:
+ description: >-
+ Global SQL mode. Set to empty to use MySQL server
+ defaults. When creating a new service and not
+ setting this field, Akamai defaults to SQL mode
+ which is strict, SQL standard compliant.
+ example: ANSI,TRADITIONAL
+ maxLength: 1024
+ pattern: ^[A-Z_]*(,[A-Z_]+)*$
+ type: string
+ sql_require_primary_key:
+ description: >-
+ Require primary key to be defined for new tables
+ or old tables modified with `ALTER TABLE` and fail
+ if missing. You should always have primary keys
+ because various functionality may break if any
+ large table is missing them.
+ example: true
+ type: boolean
+ tmp_table_size:
+ default: 16777216
+ description: >-
+ Limits the size of internal in-memory tables. This
+ also requires a `max_heap_table_size`.
+ example: 24777216
+ maximum: 1073741824
+ minimum: 1048576
+ type: integer
+ wait_timeout:
+ description: >-
+ The number of seconds the server waits for
+ activity on a non-interactive connection before
+ closing it.
+ example: 28800
+ maximum: 2147483
+ minimum: 1
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/database-mysql-engine-config.yaml
+ x-linode-cli-display: 9
+ fork:
+ additionalProperties: false
+ description: >-
+ Details on the database that was the target of the fork.
+ This only exists if the database was restored by creating
+ a fork from another
+ [MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances)
+ or
+ [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)
+ database.
+ properties:
+ restore_time:
+ description: >-
+ The database timestamp from which it was restored.
+ This is _not_ when the fork was created.
+ example: '2024-10-14 19:55:12'
+ format: date-time
+ type: string
+ source:
+ description: The instance id of the database that was forked from.
+ example: 176881
+ type: integer
+ type: object
+ hosts:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The primary and secondary hosts for the
+ Managed Database. These are assigned after provisioning is
+ complete.
+ properties:
+ primary:
+ description: The primary host for the Managed Database.
+ example: lin-123-456-mysql-mysql-primary.servers.linodedb.net
+ nullable: true
+ type: string
+ secondary:
+ 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.
+
+
+ > 📘
+
+ >
+
+ > The secondary hostname is publicly visible and
+ accessible.
+ example: lin-123-456-mysql-primary-private.servers.linodedb.net
+ nullable: true
+ type: string
+ readOnly: true
+ type: object
+ id:
+ description: >-
+ __Read-only__ A unique ID that can be used to identify and
+ reference the Managed Database.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ A unique, user-defined string referring to
+ the Managed Database. This string needs to be unique per
+ Managed Database engine type.
+ example: example-db
+ maxLength: 32
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ members:
+ description: >-
+ __Read-only__ A mapping between IP addresses and strings
+ designating them as `primary` or `failover`.
+ example:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ readOnly: true
+ type: object
+ oldest_restore_time:
+ description: >-
+ __Read-only__ The oldest time to which a database can be
+ restored.
+ example: '2024-10-03 20:48:05'
+ format: date-time
+ readOnly: true
+ type: string
+ platform:
+ description: >-
+ __Filterable__, __Read-only__ The back-end platform for
+ relational databases used by the service.
+ enum:
+ - rdbms-legacy
+ - rdbms-default
+ example: rdbms-default
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ port:
+ description: __Read-only__ The access port for this Managed Database.
+ example: 3306
+ readOnly: true
+ type: integer
+ region:
+ description: >-
+ __Filterable__ The
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ ID for the Managed Database.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ ssl_connection:
+ default: true
+ description: >-
+ Currently required to be `true`. Whether to require SSL
+ credentials to establish a connection to the Managed
+ Database. Run the [Get managed MySQL database
+ credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-credentials)
+ operation for access information.
+ example: true
+ type: boolean
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The operating status of the
+ Managed Database.
+ enum:
+ - provisioning
+ - active
+ - suspending
+ - suspended
+ - resuming
+ - failed
+ - degraded
+ - updating
+ - resizing
+ example: active
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ active: green
+ default_: white
+ degraded: red
+ failed: red
+ provisioning: yellow
+ restoring: yellow
+ resuming: yellow
+ x-linode-cli-display: 100
+ x-linode-filterable: true
+ total_disk_size_gb:
+ description: __Read-only__ The total disk size of the database, in GB.
+ example: 15
+ readOnly: true
+ type: integer
+ type:
+ description: >-
+ __Filterable__ The Linode Instance type used by the
+ Managed Database for its nodes.
+ example: g6-dedicated-2
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Managed Database was last updated.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ updates:
+ additionalProperties: false
+ description: >-
+ Configuration settings for automated patch update
+ maintenance for the Managed Database.
+ properties:
+ day_of_week:
+ description: >-
+ The numeric reference for the day of the week to
+ perform maintenance. `1` is Monday, `2` is Tuesday,
+ through to `7` which is Sunday.
+ example: 1
+ maximum: 7
+ minimum: 1
+ type: integer
+ duration:
+ description: The maximum maintenance window time in hours.
+ example: 3
+ maximum: 3
+ minimum: 1
+ type: integer
+ frequency:
+ default: weekly
+ description: >-
+ How frequently maintenance occurs. Currently can only
+ be `weekly`.
+ enum:
+ - weekly
+ example: weekly
+ type: string
+ hour_of_day:
+ description: The hour to begin maintenance based in UTC time.
+ example: 0
+ maximum: 23
+ minimum: 0
+ type: integer
+ pending:
+ description: __Read-only__ An array of pending updates.
+ example: []
items:
- $ref: '#/components/schemas/DatabaseMongoDB'
+ additionalProperties: false
+ description: A planned maintenance update.
+ properties:
+ deadline:
+ description: >-
+ The time when a mandatory update needs to be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ description:
+ description: A description of the update.
+ example: TimescaleDB version 2.17.1 is available.
+ type: string
+ planned_for:
+ description: >-
+ The date and time a maintenance update will be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ type: object
+ minItems: 0
+ readOnly: true
+ type: array
+ type: object
+ used_disk_size_gb:
+ description: >-
+ __Read-only__ The amount of space currently in use in the
+ database, in GB.
+ example: 2
+ readOnly: true
+ type: integer
+ version:
+ description: __Filterable__ The Managed Database engine version.
+ example: 8.0.26
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 9
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/database-mysql.yaml
+ description: A new MySQL Managed Database is deploying.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/databases/mongodb/instances/
- - lang: CLI
- source: |
- linode-cli databases mongodb-list
- '/databases/mongodb/instances/{instanceId}':
- 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.
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'databases:read_only'
+ - databases:read_write
+ summary: Create or restore a MySQL Managed Database
+ tags:
+ - Databases
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli databases mysql-create \
+ --label example-db1 \
+ --region us-east \
+ --type g6-dedicated-2 \
+ --cluster_size 3 \
+ --engine mysql/8.0.26 \
+ --engine_config.binlog_retention_period 60 \
+ --engine_config.mysql.connect_timeout 10 \
+ --engine_config.mysql.default_time_zone +03:00 \
+ --ssl_connection true \
+ --allow_list 203.0.113.1 \
+ --allow_list 192.0.1.0/24
+ title: CLI for create operation
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: mysql-create
+ x-linode-grant: add_databases
+ get:
+ description: >-
+ Display all accessible MySQL Managed Databases.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instances
+ operationId: get-databases-mysql-instances
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Returns information for a single Managed MongoDB Database.
content:
application/json:
+ example:
+ data:
+ - allow_list:
+ - 192.0.2.101/24
+ - 192.0.2.29/24
+ cluster_size: 3
+ created: '2022-01-01T00:01:01'
+ encrypted: true
+ engine: mysql
+ engine_config:
+ binlog_retention_period: 600
+ mysql:
+ connect_timeout: 10
+ default_time_zone: '+03:00'
+ group_concat_max_len: 1024
+ information_schema_stats_expiry: 86400
+ innodb_change_buffer_max_size: 30
+ innodb_flush_neighbors: 0
+ innodb_ft_min_token_size: 3
+ innodb_ft_server_stopword_table: db_name/table_name
+ innodb_lock_wait_timeout: 50
+ innodb_log_buffer_size: 16777216
+ innodb_online_alter_log_max_size: 134217728
+ innodb_read_io_threads: 10
+ innodb_rollback_on_timeout: true
+ innodb_thread_concurrency: 10
+ innodb_write_io_threads: 10
+ interactive_timeout: 3600
+ internal_tmp_mem_storage_engine: TempTable
+ max_allowed_packet: 67108864
+ max_heap_table_size: 16777216
+ net_buffer_length: 16384
+ net_read_timeout: 30
+ net_write_timeout: 30
+ sort_buffer_size: 262144
+ sql_mode: ANSI,TRADITIONAL
+ sql_require_primary_key: true
+ tmp_table_size: 16777216
+ wait_timeout: 28800
+ fork:
+ restore_time: '2024-10-14T19:55:12'
+ source: '176881'
+ hosts:
+ primary: lin-123-456-mysql-mysql-primary.servers.linodedb.net
+ secondary: lin-123-456-mysql-primary-private.servers.linodedb.net
+ id: 123
+ label: example-db
+ members:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ 69.164.209.80: failover
+ oldest_restore_time: '2024-10-03T20:48:05'
+ platform: rdbms-default
+ port: 3306
+ region: us-east
+ ssl_connection: true
+ status: active
+ total_disk_size_gb: 15
+ type: g6-dedicated-2
+ updated: '2022-01-01T00:01:01'
+ updates:
+ day_of_week: 1
+ duration: 3
+ frequency: weekly
+ hour_of_day: 0
+ pending: []
+ used_disk_size_gb: 2
+ version: 8.0.26
+ page: 1
+ pages: 1
+ results: 1
schema:
- $ref: '#/components/schemas/DatabaseMongoDB'
+ allOf:
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: Managed MySQL Databases object.
+ properties:
+ allow_list:
+ description: >-
+ Controls access to the Managed Database.
+
+
+ - Individually included IP addresses or CIDR
+ ranges can access the Managed Database while all
+ other sources are blocked.
+
+
+ - A standalone value of `0.0.0.0/0` allows all
+ IP addresses access to the Managed Database.
+
+
+ - An empty array (`[]`) blocks all public and
+ private connections to the Managed Database.
+ example:
+ - 203.0.113.1/32
+ - 192.0.1.0/24
+ items:
+ format: ipv4/prefix_length
+ pattern: >-
+ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
+ type: string
+ minItems: 0
+ type: array
+ cluster_size:
+ default: 1
+ description: >-
+ The number of Linode instance nodes deployed to
+ the Managed Database.
+
+ - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes.
+
+ - A `2` node cluster is only available with a
+ dedicated plan. It consists of one primary node
+ and one replica node.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: 3
+ type: integer
+ x-linode-cli-display: 7
+ created:
+ description: >-
+ __Read-only__ When this Managed Database was
+ created.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encrypted:
+ default: true
+ description: >-
+ __Read-only__ Whether the Managed Databases is
+ encrypted. Currently required to be `true`.
+ example: true
+ readOnly: true
+ type: boolean
+ engine:
+ description: >-
+ __Filterable__, __Read-only__ The Managed
+ Database engine type.
+ example: mysql
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ engine_config:
+ additionalProperties: false
+ description: >-
+ Advanced parameters you can apply to a MySQL
+ Managed Database, via our partner [Aiven's
+ specification](https://aiven.io/docs/products/mysql/reference/advanced-params).
+ Only include the objects for parameters you want
+ to set in your database. Omit objects for
+ parameters you don't want to define or change.
+
+
+ > 📘
+
+ >
+
+ > Aiven may offer additional parameters in their
+ specification. Currently, only those listed here
+ are supported for use in a MySQL Managed
+ Database. You can also run the [List MySQL
+ Managed Database advanced
+ parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-config)
+ operation to see an up-to-date list.
+ properties:
+ binlog_retention_period:
+ description: >-
+ The minimum amount of time in seconds to
+ keep `binlog` entries before deletion. This
+ may be extended for services that require
+ `binlog` entries for longer than the
+ default, for example if using the MySQL
+ Debezium Kafka connector.
+ example: 600
+ maximum: 86400
+ minimum: 600
+ type: integer
+ mysql:
+ additionalProperties: false
+ description: >-
+ MySQL-specific advanced configuration
+ parameters.
+ properties:
+ connect_timeout:
+ description: >-
+ The number of seconds that the `mysqld`
+ server waits for a connect packet before
+ responding with bad handshake.
+ example: 10
+ maximum: 3600
+ minimum: 2
+ type: integer
+ default_time_zone:
+ description: >-
+ Default server time zone as an offset
+ from UTC (from -12:00 to +12:00), a time
+ zone name, or `SYSTEM` to use the MySQL
+ server default.
+ example: '+03:00'
+ maxLength: 100
+ minLength: 2
+ pattern: ^([-+][\\d:]*|[\\w/]*)$
+ type: string
+ group_concat_max_len:
+ description: >-
+ The maximum permitted result length in
+ bytes for the `GROUP_CONCAT()` function.
+ example: 1024
+ maximum: 18446744073709552000
+ minimum: 4
+ type: integer
+ information_schema_stats_expiry:
+ description: >-
+ The time, in seconds, before cached
+ statistics expire.
+ example: 86400
+ maximum: 31536000
+ minimum: 900
+ type: integer
+ innodb_change_buffer_max_size:
+ default: 25
+ description: >-
+ Maximum size for the InnoDB change
+ buffer, as a percentage of the total
+ size of the buffer pool.
+ example: 30
+ maximum: 50
+ minimum: 0
+ type: integer
+ innodb_flush_neighbors:
+ default: 1
+ description: >-
+ Specifies whether flushing a page from
+ the InnoDB buffer pool also flushes
+ other dirty pages in the same extent:
+ `0` - dirty pages in the same extent are
+ not flushed, `1` - flush contiguous
+ dirty pages in the same extent, `2` -
+ flush dirty pages in the same extent.
+ example: 0
+ maximum: 2
+ minimum: 0
+ type: integer
+ innodb_ft_min_token_size:
+ description: >-
+ Minimum length of words that are stored
+ in an InnoDB `-1FULLTEXT` index.
+ Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 3
+ maximum: 16
+ minimum: 0
+ type: integer
+ innodb_ft_server_stopword_table:
+ description: >-
+ This option is used to specify your own
+ InnoDB `FULLTEXT` index `stopword` list
+ for all InnoDB tables. Set to `null` for
+ no value.
+ example: db_name/table_name
+ maxLength: 1024
+ nullable: true
+ pattern: ^.+/.+$
+ type: string
+ innodb_lock_wait_timeout:
+ default: 120
+ description: >-
+ The length of time in seconds an InnoDB
+ transaction waits for a row lock before
+ giving up.
+ example: 50
+ maximum: 3600
+ minimum: 1
+ type: integer
+ innodb_log_buffer_size:
+ description: >-
+ The size in bytes of the buffer that
+ InnoDB uses to write to the log files on
+ disk.
+ example: 16777216
+ maximum: 4294967295
+ minimum: 1048576
+ type: integer
+ innodb_online_alter_log_max_size:
+ description: >-
+ The upper limit in bytes on the size of
+ the temporary log files used during
+ online DDL operations for InnoDB tables.
+ example: 134217728
+ maximum: 1099511627776
+ minimum: 65536
+ type: integer
+ innodb_read_io_threads:
+ default: 4
+ description: >-
+ The number of I/O threads for read
+ operations in InnoDB. Changing this
+ parameter will lead to a restart of the
+ MySQL service.
+ example: 10
+ maximum: 64
+ minimum: 1
+ type: integer
+ innodb_rollback_on_timeout:
+ description: >-
+ When enabled a transaction timeout
+ causes InnoDB to abort and roll back the
+ entire transaction. Changing this
+ parameter will lead to a restart of the
+ MySQL service.
+ example: true
+ type: boolean
+ innodb_thread_concurrency:
+ default: 0
+ description: >-
+ Defines the maximum number of threads
+ permitted inside of InnoDB. The default
+ is `0` which indicates infinite
+ concurrency, or no limit.
+ example: 10
+ maximum: 1000
+ minimum: 0
+ type: integer
+ innodb_write_io_threads:
+ default: 4
+ description: >-
+ The number of I/O threads for write
+ operations in InnoDB. Changing this
+ parameter will lead to a restart of the
+ MySQL service.
+ example: 10
+ maximum: 64
+ minimum: 1
+ type: integer
+ interactive_timeout:
+ description: >-
+ The number of seconds the server waits
+ for activity on an interactive
+ connection before closing it.
+ example: 3600
+ maximum: 604800
+ minimum: 30
+ type: integer
+ internal_tmp_mem_storage_engine:
+ description: >-
+ The storage engine for in-memory
+ internal temporary tables.
+ enum:
+ - TempTable
+ - MEMORY
+ example: TempTable
+ type: string
+ max_allowed_packet:
+ default: 7108864
+ description: >-
+ Size of the largest message in bytes
+ that can be received by the server.
+ example: 67108864
+ maximum: 1073741824
+ minimum: 102400
+ type: integer
+ max_heap_table_size:
+ default: 16777216
+ description: >-
+ Limits the size of internal in-memory
+ tables. Also set `tmp_table_size`.
+ example: 24777216
+ maximum: 1073741824
+ minimum: 1048576
+ type: integer
+ net_buffer_length:
+ default: 16384
+ description: >-
+ Start sizes of connection buffer and
+ result buffer. Changing this parameter
+ will lead to a restart of the MySQL
+ service.
+ example: 16384
+ maximum: 1048576
+ minimum: 1024
+ type: integer
+ net_read_timeout:
+ description: >-
+ The number of seconds to wait for more
+ data from a connection before aborting
+ the read.
+ example: 30
+ maximum: 3600
+ minimum: 1
+ type: integer
+ net_write_timeout:
+ description: >-
+ The number of seconds to wait for a
+ block to be written to a connection
+ before aborting the write.
+ example: 30
+ maximum: 3600
+ minimum: 1
+ type: integer
+ sql_mode:
+ description: >-
+ Global SQL mode. Set to empty to use
+ MySQL server defaults. When creating a
+ new service and not setting this field,
+ Akamai defaults to SQL mode which is
+ strict, SQL standard compliant.
+ example: ANSI,TRADITIONAL
+ maxLength: 1024
+ pattern: ^[A-Z_]*(,[A-Z_]+)*$
+ type: string
+ sql_require_primary_key:
+ description: >-
+ Require primary key to be defined for
+ new tables or old tables modified with
+ `ALTER TABLE` and fail if missing. You
+ should always have primary keys because
+ various functionality may break if any
+ large table is missing them.
+ example: true
+ type: boolean
+ tmp_table_size:
+ default: 16777216
+ description: >-
+ Limits the size of internal in-memory
+ tables. This also requires a
+ `max_heap_table_size`.
+ example: 24777216
+ maximum: 1073741824
+ minimum: 1048576
+ type: integer
+ wait_timeout:
+ description: >-
+ The number of seconds the server waits
+ for activity on a non-interactive
+ connection before closing it.
+ example: 28800
+ maximum: 2147483
+ minimum: 1
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/database-mysql-engine-config.yaml
+ x-linode-cli-display: 9
+ fork:
+ additionalProperties: false
+ description: >-
+ Details on the database that was the target of
+ the fork. This only exists if the database was
+ restored by creating a fork from another
+ [MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances)
+ or
+ [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)
+ database.
+ properties:
+ restore_time:
+ description: >-
+ The database timestamp from which it was
+ restored. This is _not_ when the fork was
+ created.
+ example: '2024-10-14 19:55:12'
+ format: date-time
+ type: string
+ source:
+ description: >-
+ The instance id of the database that was
+ forked from.
+ example: 176881
+ type: integer
+ type: object
+ hosts:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The primary and secondary hosts
+ for the Managed Database. These are assigned
+ after provisioning is complete.
+ properties:
+ primary:
+ description: The primary host for the Managed Database.
+ example: >-
+ lin-123-456-mysql-mysql-primary.servers.linodedb.net
+ nullable: true
+ type: string
+ secondary:
+ 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.
+
+
+ > 📘
+
+ >
+
+ > The secondary hostname is publicly visible
+ and accessible.
+ example: >-
+ lin-123-456-mysql-primary-private.servers.linodedb.net
+ nullable: true
+ type: string
+ readOnly: true
+ type: object
+ id:
+ description: >-
+ __Read-only__ A unique ID that can be used to
+ identify and reference the Managed Database.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ A unique, user-defined string
+ referring to the Managed Database. This string
+ needs to be unique per Managed Database engine
+ type.
+ example: example-db
+ maxLength: 32
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ members:
+ description: >-
+ __Read-only__ A mapping between IP addresses and
+ strings designating them as `primary` or
+ `failover`.
+ example:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ readOnly: true
+ type: object
+ oldest_restore_time:
+ description: >-
+ __Read-only__ The oldest time to which a
+ database can be restored.
+ example: '2024-10-03 20:48:05'
+ format: date-time
+ readOnly: true
+ type: string
+ platform:
+ description: >-
+ __Filterable__, __Read-only__ The back-end
+ platform for relational databases used by the
+ service.
+ enum:
+ - rdbms-legacy
+ - rdbms-default
+ example: rdbms-default
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ port:
+ description: >-
+ __Read-only__ The access port for this Managed
+ Database.
+ example: 3306
+ readOnly: true
+ type: integer
+ region:
+ description: >-
+ __Filterable__ The
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ ID for the Managed Database.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ ssl_connection:
+ default: true
+ description: >-
+ Currently required to be `true`. Whether to
+ require SSL credentials to establish a
+ connection to the Managed Database. Run the [Get
+ managed MySQL database
+ credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-credentials)
+ operation for access information.
+ example: true
+ type: boolean
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The operating
+ status of the Managed Database.
+ enum:
+ - provisioning
+ - active
+ - suspending
+ - suspended
+ - resuming
+ - failed
+ - degraded
+ - updating
+ - resizing
+ example: active
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ active: green
+ default_: white
+ degraded: red
+ failed: red
+ provisioning: yellow
+ restoring: yellow
+ resuming: yellow
+ x-linode-cli-display: 100
+ x-linode-filterable: true
+ total_disk_size_gb:
+ description: >-
+ __Read-only__ The total disk size of the
+ database, in GB.
+ example: 15
+ readOnly: true
+ type: integer
+ type:
+ description: >-
+ __Filterable__ The Linode Instance type used by
+ the Managed Database for its nodes.
+ example: g6-dedicated-2
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Read-only__ When this Managed Database was
+ last updated.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ updates:
+ additionalProperties: false
+ description: >-
+ Configuration settings for automated patch
+ update maintenance for the Managed Database.
+ properties:
+ day_of_week:
+ description: >-
+ The numeric reference for the day of the
+ week to perform maintenance. `1` is Monday,
+ `2` is Tuesday, through to `7` which is
+ Sunday.
+ example: 1
+ maximum: 7
+ minimum: 1
+ type: integer
+ duration:
+ description: >-
+ The maximum maintenance window time in
+ hours.
+ example: 3
+ maximum: 3
+ minimum: 1
+ type: integer
+ frequency:
+ default: weekly
+ description: >-
+ How frequently maintenance occurs. Currently
+ can only be `weekly`.
+ enum:
+ - weekly
+ example: weekly
+ type: string
+ hour_of_day:
+ description: >-
+ The hour to begin maintenance based in UTC
+ time.
+ example: 0
+ maximum: 23
+ minimum: 0
+ type: integer
+ pending:
+ description: __Read-only__ An array of pending updates.
+ example: []
+ items:
+ additionalProperties: false
+ description: A planned maintenance update.
+ properties:
+ deadline:
+ description: >-
+ The time when a mandatory update needs
+ to be applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ description:
+ description: A description of the update.
+ example: TimescaleDB version 2.17.1 is available.
+ type: string
+ planned_for:
+ description: >-
+ The date and time a maintenance update
+ will be applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ type: object
+ minItems: 0
+ readOnly: true
+ type: array
+ type: object
+ used_disk_size_gb:
+ description: >-
+ __Read-only__ The amount of space currently in
+ use in the database, in GB.
+ example: 2
+ readOnly: true
+ type: integer
+ version:
+ description: >-
+ __Filterable__ The Managed Database engine
+ version.
+ example: 8.0.26
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 9
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/database-mysql.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/get-databases-mysql-instances-200.yaml
+ description: >-
+ Returns a paginated list of all accessible MySQL Managed Databases
+ on your account.
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
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MongoDB Database.
- required: true
- schema:
- type: integer
- delete:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_only
+ summary: List MySQL Managed Databases
tags:
- 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.
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases mysql-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: mysql-list
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/mysql-instances.yaml
+ path-info: /{apiVersion}/databases/mysql/instances
+ x-linode-cli-command: databases
+ /databases/mysql/instances/{instanceId}:
+ get:
+ description: >-
+ Display information for a single, accessible MySQL Managed Database.
- Requires `read_write` access to the Database.
- The Database must have an `active`, `failed`, or `degraded` status to perform this command.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- 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:
- - 'databases:read_write'
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance
+ operationId: get-databases-mysql-instance
responses:
'200':
- description: Managed MongoDB Database successfully deleted.
+ content:
+ application/json:
+ example:
+ allow_list:
+ - 192.0.2.250/24
+ - 192.0.2.131/24
+ cluster_size: 3
+ created: '2022-01-01T00:01:01'
+ encrypted: true
+ engine: mysql
+ engine_config:
+ binlog_retention_period: 600
+ mysql:
+ connect_timeout: 10
+ default_time_zone: '+03:00'
+ group_concat_max_len: 1024
+ information_schema_stats_expiry: 86400
+ innodb_change_buffer_max_size: 30
+ innodb_flush_neighbors: 0
+ innodb_ft_min_token_size: 3
+ innodb_ft_server_stopword_table: db_name/table_name
+ innodb_lock_wait_timeout: 50
+ innodb_log_buffer_size: 16777216
+ innodb_online_alter_log_max_size: 134217728
+ innodb_read_io_threads: 10
+ innodb_rollback_on_timeout: true
+ innodb_thread_concurrency: 10
+ innodb_write_io_threads: 10
+ interactive_timeout: 3600
+ internal_tmp_mem_storage_engine: TempTable
+ max_allowed_packet: 67108864
+ max_heap_table_size: 16777216
+ net_buffer_length: 16384
+ net_read_timeout: 30
+ net_write_timeout: 30
+ sort_buffer_size: 262144
+ sql_mode: ANSI,TRADITIONAL
+ sql_require_primary_key: true
+ tmp_table_size: 16777216
+ wait_timeout: 28800
+ fork:
+ restore_time: '2024-10-14T19:55:12'
+ source: 176881
+ hosts:
+ primary: lin-123-456-mysql-mysql-primary.servers.linodedb.net
+ secondary: lin-123-456-mysql-primary-private.servers.linodedb.net
+ id: 123
+ label: example-db
+ members:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ oldest_restore_time: '2024-10-03T20:48:05'
+ platform: rdbms-default
+ port: 3306
+ region: us-east
+ ssl_connection: true
+ status: active
+ total_disk_size_gb: 15
+ type: g6-dedicated-2
+ updated: '2022-01-01T00:01:01'
+ updates:
+ day_of_week: 1
+ duration: 3
+ frequency: weekly
+ hour_of_day: 0
+ pending: []
+ used_disk_size_gb: 2
+ version: 8.0.26
+ schema:
+ additionalProperties: false
+ description: Managed MySQL Databases object.
+ properties:
+ allow_list:
+ description: >-
+ Controls access to the Managed Database.
+
+
+ - Individually included IP addresses or CIDR ranges can
+ access the Managed Database while all other sources are
+ blocked.
+
+
+ - A standalone value of `0.0.0.0/0` allows all IP
+ addresses access to the Managed Database.
+
+
+ - An empty array (`[]`) blocks all public and private
+ connections to the Managed Database.
+ example:
+ - 203.0.113.1/32
+ - 192.0.1.0/24
+ items:
+ format: ipv4/prefix_length
+ pattern: >-
+ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
+ type: string
+ minItems: 0
+ type: array
+ cluster_size:
+ default: 1
+ description: >-
+ The number of Linode instance nodes deployed to the
+ Managed Database.
+
+ - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes.
+
+ - A `2` node cluster is only available with a dedicated
+ plan. It consists of one primary node and one replica
+ node.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: 3
+ type: integer
+ x-linode-cli-display: 7
+ created:
+ description: __Read-only__ When this Managed Database was created.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encrypted:
+ default: true
+ description: >-
+ __Read-only__ Whether the Managed Databases is encrypted.
+ Currently required to be `true`.
+ example: true
+ readOnly: true
+ type: boolean
+ engine:
+ description: >-
+ __Filterable__, __Read-only__ The Managed Database engine
+ type.
+ example: mysql
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ engine_config:
+ additionalProperties: false
+ description: >-
+ Advanced parameters you can apply to a MySQL Managed
+ Database, via our partner [Aiven's
+ specification](https://aiven.io/docs/products/mysql/reference/advanced-params).
+ Only include the objects for parameters you want to set in
+ your database. Omit objects for parameters you don't want
+ to define or change.
+
+
+ > 📘
+
+ >
+
+ > Aiven may offer additional parameters in their
+ specification. Currently, only those listed here are
+ supported for use in a MySQL Managed Database. You can
+ also run the [List MySQL Managed Database advanced
+ parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-config)
+ operation to see an up-to-date list.
+ properties:
+ binlog_retention_period:
+ description: >-
+ The minimum amount of time in seconds to keep `binlog`
+ entries before deletion. This may be extended for
+ services that require `binlog` entries for longer than
+ the default, for example if using the MySQL Debezium
+ Kafka connector.
+ example: 600
+ maximum: 86400
+ minimum: 600
+ type: integer
+ mysql:
+ additionalProperties: false
+ description: MySQL-specific advanced configuration parameters.
+ properties:
+ connect_timeout:
+ description: >-
+ The number of seconds that the `mysqld` server
+ waits for a connect packet before responding with
+ bad handshake.
+ example: 10
+ maximum: 3600
+ minimum: 2
+ type: integer
+ default_time_zone:
+ description: >-
+ Default server time zone as an offset from UTC
+ (from -12:00 to +12:00), a time zone name, or
+ `SYSTEM` to use the MySQL server default.
+ example: '+03:00'
+ maxLength: 100
+ minLength: 2
+ pattern: ^([-+][\\d:]*|[\\w/]*)$
+ type: string
+ group_concat_max_len:
+ description: >-
+ The maximum permitted result length in bytes for
+ the `GROUP_CONCAT()` function.
+ example: 1024
+ maximum: 18446744073709552000
+ minimum: 4
+ type: integer
+ information_schema_stats_expiry:
+ description: >-
+ The time, in seconds, before cached statistics
+ expire.
+ example: 86400
+ maximum: 31536000
+ minimum: 900
+ type: integer
+ innodb_change_buffer_max_size:
+ default: 25
+ description: >-
+ Maximum size for the InnoDB change buffer, as a
+ percentage of the total size of the buffer pool.
+ example: 30
+ maximum: 50
+ minimum: 0
+ type: integer
+ innodb_flush_neighbors:
+ default: 1
+ description: >-
+ Specifies whether flushing a page from the InnoDB
+ buffer pool also flushes other dirty pages in the
+ same extent: `0` - dirty pages in the same extent
+ are not flushed, `1` - flush contiguous dirty
+ pages in the same extent, `2` - flush dirty pages
+ in the same extent.
+ example: 0
+ maximum: 2
+ minimum: 0
+ type: integer
+ innodb_ft_min_token_size:
+ description: >-
+ Minimum length of words that are stored in an
+ InnoDB `-1FULLTEXT` index. Changing this parameter
+ will lead to a restart of the MySQL service.
+ example: 3
+ maximum: 16
+ minimum: 0
+ type: integer
+ innodb_ft_server_stopword_table:
+ description: >-
+ This option is used to specify your own InnoDB
+ `FULLTEXT` index `stopword` list for all InnoDB
+ tables. Set to `null` for no value.
+ example: db_name/table_name
+ maxLength: 1024
+ nullable: true
+ pattern: ^.+/.+$
+ type: string
+ innodb_lock_wait_timeout:
+ default: 120
+ description: >-
+ The length of time in seconds an InnoDB
+ transaction waits for a row lock before giving up.
+ example: 50
+ maximum: 3600
+ minimum: 1
+ type: integer
+ innodb_log_buffer_size:
+ description: >-
+ The size in bytes of the buffer that InnoDB uses
+ to write to the log files on disk.
+ example: 16777216
+ maximum: 4294967295
+ minimum: 1048576
+ type: integer
+ innodb_online_alter_log_max_size:
+ description: >-
+ The upper limit in bytes on the size of the
+ temporary log files used during online DDL
+ operations for InnoDB tables.
+ example: 134217728
+ maximum: 1099511627776
+ minimum: 65536
+ type: integer
+ innodb_read_io_threads:
+ default: 4
+ description: >-
+ The number of I/O threads for read operations in
+ InnoDB. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 10
+ maximum: 64
+ minimum: 1
+ type: integer
+ innodb_rollback_on_timeout:
+ description: >-
+ When enabled a transaction timeout causes InnoDB
+ to abort and roll back the entire transaction.
+ Changing this parameter will lead to a restart of
+ the MySQL service.
+ example: true
+ type: boolean
+ innodb_thread_concurrency:
+ default: 0
+ description: >-
+ Defines the maximum number of threads permitted
+ inside of InnoDB. The default is `0` which
+ indicates infinite concurrency, or no limit.
+ example: 10
+ maximum: 1000
+ minimum: 0
+ type: integer
+ innodb_write_io_threads:
+ default: 4
+ description: >-
+ The number of I/O threads for write operations in
+ InnoDB. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 10
+ maximum: 64
+ minimum: 1
+ type: integer
+ interactive_timeout:
+ description: >-
+ The number of seconds the server waits for
+ activity on an interactive connection before
+ closing it.
+ example: 3600
+ maximum: 604800
+ minimum: 30
+ type: integer
+ internal_tmp_mem_storage_engine:
+ description: >-
+ The storage engine for in-memory internal
+ temporary tables.
+ enum:
+ - TempTable
+ - MEMORY
+ example: TempTable
+ type: string
+ max_allowed_packet:
+ default: 7108864
+ description: >-
+ Size of the largest message in bytes that can be
+ received by the server.
+ example: 67108864
+ maximum: 1073741824
+ minimum: 102400
+ type: integer
+ max_heap_table_size:
+ default: 16777216
+ description: >-
+ Limits the size of internal in-memory tables. Also
+ set `tmp_table_size`.
+ example: 24777216
+ maximum: 1073741824
+ minimum: 1048576
+ type: integer
+ net_buffer_length:
+ default: 16384
+ description: >-
+ Start sizes of connection buffer and result
+ buffer. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 16384
+ maximum: 1048576
+ minimum: 1024
+ type: integer
+ net_read_timeout:
+ description: >-
+ The number of seconds to wait for more data from a
+ connection before aborting the read.
+ example: 30
+ maximum: 3600
+ minimum: 1
+ type: integer
+ net_write_timeout:
+ description: >-
+ The number of seconds to wait for a block to be
+ written to a connection before aborting the write.
+ example: 30
+ maximum: 3600
+ minimum: 1
+ type: integer
+ sql_mode:
+ description: >-
+ Global SQL mode. Set to empty to use MySQL server
+ defaults. When creating a new service and not
+ setting this field, Akamai defaults to SQL mode
+ which is strict, SQL standard compliant.
+ example: ANSI,TRADITIONAL
+ maxLength: 1024
+ pattern: ^[A-Z_]*(,[A-Z_]+)*$
+ type: string
+ sql_require_primary_key:
+ description: >-
+ Require primary key to be defined for new tables
+ or old tables modified with `ALTER TABLE` and fail
+ if missing. You should always have primary keys
+ because various functionality may break if any
+ large table is missing them.
+ example: true
+ type: boolean
+ tmp_table_size:
+ default: 16777216
+ description: >-
+ Limits the size of internal in-memory tables. This
+ also requires a `max_heap_table_size`.
+ example: 24777216
+ maximum: 1073741824
+ minimum: 1048576
+ type: integer
+ wait_timeout:
+ description: >-
+ The number of seconds the server waits for
+ activity on a non-interactive connection before
+ closing it.
+ example: 28800
+ maximum: 2147483
+ minimum: 1
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/database-mysql-engine-config.yaml
+ x-linode-cli-display: 9
+ fork:
+ additionalProperties: false
+ description: >-
+ Details on the database that was the target of the fork.
+ This only exists if the database was restored by creating
+ a fork from another
+ [MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances)
+ or
+ [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)
+ database.
+ properties:
+ restore_time:
+ description: >-
+ The database timestamp from which it was restored.
+ This is _not_ when the fork was created.
+ example: '2024-10-14 19:55:12'
+ format: date-time
+ type: string
+ source:
+ description: The instance id of the database that was forked from.
+ example: 176881
+ type: integer
+ type: object
+ hosts:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The primary and secondary hosts for the
+ Managed Database. These are assigned after provisioning is
+ complete.
+ properties:
+ primary:
+ description: The primary host for the Managed Database.
+ example: lin-123-456-mysql-mysql-primary.servers.linodedb.net
+ nullable: true
+ type: string
+ secondary:
+ 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.
+
+
+ > 📘
+
+ >
+
+ > The secondary hostname is publicly visible and
+ accessible.
+ example: lin-123-456-mysql-primary-private.servers.linodedb.net
+ nullable: true
+ type: string
+ readOnly: true
+ type: object
+ id:
+ description: >-
+ __Read-only__ A unique ID that can be used to identify and
+ reference the Managed Database.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ A unique, user-defined string referring to
+ the Managed Database. This string needs to be unique per
+ Managed Database engine type.
+ example: example-db
+ maxLength: 32
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ members:
+ description: >-
+ __Read-only__ A mapping between IP addresses and strings
+ designating them as `primary` or `failover`.
+ example:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ readOnly: true
+ type: object
+ oldest_restore_time:
+ description: >-
+ __Read-only__ The oldest time to which a database can be
+ restored.
+ example: '2024-10-03 20:48:05'
+ format: date-time
+ readOnly: true
+ type: string
+ platform:
+ description: >-
+ __Filterable__, __Read-only__ The back-end platform for
+ relational databases used by the service.
+ enum:
+ - rdbms-legacy
+ - rdbms-default
+ example: rdbms-default
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ port:
+ description: __Read-only__ The access port for this Managed Database.
+ example: 3306
+ readOnly: true
+ type: integer
+ region:
+ description: >-
+ __Filterable__ The
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ ID for the Managed Database.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ ssl_connection:
+ default: true
+ description: >-
+ Currently required to be `true`. Whether to require SSL
+ credentials to establish a connection to the Managed
+ Database. Run the [Get managed MySQL database
+ credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-credentials)
+ operation for access information.
+ example: true
+ type: boolean
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The operating status of the
+ Managed Database.
+ enum:
+ - provisioning
+ - active
+ - suspending
+ - suspended
+ - resuming
+ - failed
+ - degraded
+ - updating
+ - resizing
+ example: active
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ active: green
+ default_: white
+ degraded: red
+ failed: red
+ provisioning: yellow
+ restoring: yellow
+ resuming: yellow
+ x-linode-cli-display: 100
+ x-linode-filterable: true
+ total_disk_size_gb:
+ description: __Read-only__ The total disk size of the database, in GB.
+ example: 15
+ readOnly: true
+ type: integer
+ type:
+ description: >-
+ __Filterable__ The Linode Instance type used by the
+ Managed Database for its nodes.
+ example: g6-dedicated-2
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Managed Database was last updated.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ updates:
+ additionalProperties: false
+ description: >-
+ Configuration settings for automated patch update
+ maintenance for the Managed Database.
+ properties:
+ day_of_week:
+ description: >-
+ The numeric reference for the day of the week to
+ perform maintenance. `1` is Monday, `2` is Tuesday,
+ through to `7` which is Sunday.
+ example: 1
+ maximum: 7
+ minimum: 1
+ type: integer
+ duration:
+ description: The maximum maintenance window time in hours.
+ example: 3
+ maximum: 3
+ minimum: 1
+ type: integer
+ frequency:
+ default: weekly
+ description: >-
+ How frequently maintenance occurs. Currently can only
+ be `weekly`.
+ enum:
+ - weekly
+ example: weekly
+ type: string
+ hour_of_day:
+ description: The hour to begin maintenance based in UTC time.
+ example: 0
+ maximum: 23
+ minimum: 0
+ type: integer
+ pending:
+ description: __Read-only__ An array of pending updates.
+ example: []
+ items:
+ additionalProperties: false
+ description: A planned maintenance update.
+ properties:
+ deadline:
+ description: >-
+ The time when a mandatory update needs to be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ description:
+ description: A description of the update.
+ example: TimescaleDB version 2.17.1 is available.
+ type: string
+ planned_for:
+ description: >-
+ The date and time a maintenance update will be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ type: object
+ minItems: 0
+ readOnly: true
+ type: array
+ type: object
+ used_disk_size_gb:
+ description: >-
+ __Read-only__ The amount of space currently in use in the
+ database, in GB.
+ example: 2
+ readOnly: true
+ type: integer
+ version:
+ description: __Filterable__ The Managed Database engine version.
+ example: 8.0.26
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 9
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/database-mysql.yaml
+ description: Returns information for a single MySQL Managed Database.
+ default:
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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/mongodb/instances/123
- - lang: CLI
- source: |
- linode-cli databases mongodb-delete 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MongoDB Database.
- required: true
- schema:
- type: integer
- put:
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_only
+ summary: Get a MySQL Managed Database
tags:
- 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 a Managed MongoDB Database.
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases mysql-view 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: mysql-view
+ x-linode-grant: read_only
+ put:
+ description: >-
+ Make changes to an existing MySQL Managed Database.
- Requires `read_write` access to the Database.
- The Database must have an `active` status to perform this command.
+ - The user needs `read_write` [user
+ grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ access to the database.
- Updating addresses in the `allow_list` overwrites any existing addresses.
- * IP addresses and ranges on this list can access the Managed Database. All other sources are blocked.
+ - The database's status needs to be `active`.
- * If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database.
- * Entering an empty array (`[]`) blocks all connections (both public and private) to the Managed Database.
+ - New values set in the `allow_list` overwrite existing values. To keep
+ existing values, run the [List MySQL Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instances)
+ operation, store the `allow_list` addresses from the response, and
+ include them with any new addresses in this operation.
- * **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.
+ - Updates to your `allow_list` may take a short time to complete, making
+ this operation inappropriate for rapid successive updates.
- * 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.
+ - Also allows resizing the database cluster to a larger one. Clusters
+ can't be resized to smaller plans.
- **Note**: New MongoDB Databases cannot currently be created.
- security:
- - personalAccessToken: []
- - oauth:
- - 'databases:read_write'
+
+ - All Managed Databases include automatic updates, which apply security
+ patches to the underlying operating system of the Managed MySQL
+ Database. Use the `updates` object in this operation to modify the
+ maintenance window for these updates.
+
+
+ - If your database cluster is configured with a single node, downtime
+ occurs during maintenance updates. Use the `updates` object to adjust
+ the window to match a time that's the least disruptive to your
+ application and users. Also consider upgrading to a [high
+ availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability)
+ plan to avoid any maintenance downtime.
+
+
+ - Major upgrades are optional until the service reaches end of service,
+ and can be done in place.
+
+
+ - You can't update `engine_config` advanced parameter settings for a
+ suspended database. You'll need to
+ [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-mysql-instance)
+ it first.
+
+
+ - A successful request triggers a `database_update`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events).
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance
+ operationId: put-databases-mysql-instance
requestBody:
- description: Updated information for the Managed MongoDB Database.
- required: true
content:
application/json:
+ example:
+ allow_list:
+ - 192.0.2.138/24
+ - 192.0.2.228/24
+ engine_config:
+ binlog_retention_period: 600
+ mysql:
+ connect_timeout: 10
+ default_time_zone: '+03:00'
+ group_concat_max_len: 1024
+ information_schema_stats_expiry: 86400
+ innodb_change_buffer_max_size: 30
+ innodb_flush_neighbors: 0
+ innodb_ft_min_token_size: 3
+ innodb_ft_server_stopword_table: db_name/table_name
+ innodb_lock_wait_timeout: 50
+ innodb_log_buffer_size: 16777216
+ innodb_online_alter_log_max_size: 134217728
+ innodb_read_io_threads: 10
+ innodb_rollback_on_timeout: true
+ innodb_thread_concurrency: 10
+ innodb_write_io_threads: 10
+ interactive_timeout: 3600
+ internal_tmp_mem_storage_engine: TempTable
+ max_allowed_packet: 67108864
+ max_heap_table_size: 16777216
+ net_buffer_length: 16384
+ net_read_timeout: 30
+ net_write_timeout: 30
+ sort_buffer_size: 262144
+ sql_mode: ANSI,TRADITIONAL
+ sql_require_primary_key: true
+ tmp_table_size: 16777216
+ wait_timeout: 28800
+ label: example-db
+ type: g6-standard-1
+ updates:
+ day_of_week: 1
+ duration: 3
+ frequency: weekly
+ hour_of_day: 0
+ version: 8.0.26
schema:
- type: object
- description: Updated information for the Managed MongoDB Database.
+ additionalProperties: false
+ description: Updated information for the Managed MySQL Database.
properties:
- label:
- $ref: '#/components/schemas/DatabaseMongoDBRequest/properties/label'
allow_list:
- $ref: '#/components/schemas/DatabaseMongoDBRequest/properties/allow_list'
+ description: >-
+ Controls access to the Managed Database.
+
+
+ - Individually included IP addresses or CIDR ranges can
+ access the Managed Database while all other sources are
+ blocked.
+
+
+ - A standalone value of `0.0.0.0/0` allows all IP addresses
+ access to the Managed Database.
+
+
+ - An empty array (`[]`) blocks all public and private
+ connections to the Managed Database.
+ example:
+ - 203.0.113.1/32
+ - 192.0.1.0/24
+ items:
+ format: ipv4/prefix_length
+ pattern: >-
+ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
+ type: string
+ minItems: 0
+ type: array
+ engine_config:
+ additionalProperties: false
+ description: >-
+ Advanced parameters you can apply to a MySQL Managed
+ Database, via our partner [Aiven's
+ specification](https://aiven.io/docs/products/mysql/reference/advanced-params).
+ Only include the objects for parameters you want to set in
+ your database. Omit objects for parameters you don't want to
+ define or change.
+
+
+ > 📘
+
+ >
+
+ > Aiven may offer additional parameters in their
+ specification. Currently, only those listed here are
+ supported for use in a MySQL Managed Database. You can also
+ run the [List MySQL Managed Database advanced
+ parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-config)
+ operation to see an up-to-date list.
+ properties:
+ binlog_retention_period:
+ description: >-
+ The minimum amount of time in seconds to keep `binlog`
+ entries before deletion. This may be extended for
+ services that require `binlog` entries for longer than
+ the default, for example if using the MySQL Debezium
+ Kafka connector.
+ example: 600
+ maximum: 86400
+ minimum: 600
+ type: integer
+ mysql:
+ additionalProperties: false
+ description: MySQL-specific advanced configuration parameters.
+ properties:
+ connect_timeout:
+ description: >-
+ The number of seconds that the `mysqld` server waits
+ for a connect packet before responding with bad
+ handshake.
+ example: 10
+ maximum: 3600
+ minimum: 2
+ type: integer
+ default_time_zone:
+ description: >-
+ Default server time zone as an offset from UTC (from
+ -12:00 to +12:00), a time zone name, or `SYSTEM` to
+ use the MySQL server default.
+ example: '+03:00'
+ maxLength: 100
+ minLength: 2
+ pattern: ^([-+][\\d:]*|[\\w/]*)$
+ type: string
+ group_concat_max_len:
+ description: >-
+ The maximum permitted result length in bytes for the
+ `GROUP_CONCAT()` function.
+ example: 1024
+ maximum: 18446744073709552000
+ minimum: 4
+ type: integer
+ information_schema_stats_expiry:
+ description: >-
+ The time, in seconds, before cached statistics
+ expire.
+ example: 86400
+ maximum: 31536000
+ minimum: 900
+ type: integer
+ innodb_change_buffer_max_size:
+ default: 25
+ description: >-
+ Maximum size for the InnoDB change buffer, as a
+ percentage of the total size of the buffer pool.
+ example: 30
+ maximum: 50
+ minimum: 0
+ type: integer
+ innodb_flush_neighbors:
+ default: 1
+ description: >-
+ Specifies whether flushing a page from the InnoDB
+ buffer pool also flushes other dirty pages in the
+ same extent: `0` - dirty pages in the same extent
+ are not flushed, `1` - flush contiguous dirty pages
+ in the same extent, `2` - flush dirty pages in the
+ same extent.
+ example: 0
+ maximum: 2
+ minimum: 0
+ type: integer
+ innodb_ft_min_token_size:
+ description: >-
+ Minimum length of words that are stored in an InnoDB
+ `-1FULLTEXT` index. Changing this parameter will
+ lead to a restart of the MySQL service.
+ example: 3
+ maximum: 16
+ minimum: 0
+ type: integer
+ innodb_ft_server_stopword_table:
+ description: >-
+ This option is used to specify your own InnoDB
+ `FULLTEXT` index `stopword` list for all InnoDB
+ tables. Set to `null` for no value.
+ example: db_name/table_name
+ maxLength: 1024
+ nullable: true
+ pattern: ^.+/.+$
+ type: string
+ innodb_lock_wait_timeout:
+ default: 120
+ description: >-
+ The length of time in seconds an InnoDB transaction
+ waits for a row lock before giving up.
+ example: 50
+ maximum: 3600
+ minimum: 1
+ type: integer
+ innodb_log_buffer_size:
+ description: >-
+ The size in bytes of the buffer that InnoDB uses to
+ write to the log files on disk.
+ example: 16777216
+ maximum: 4294967295
+ minimum: 1048576
+ type: integer
+ innodb_online_alter_log_max_size:
+ description: >-
+ The upper limit in bytes on the size of the
+ temporary log files used during online DDL
+ operations for InnoDB tables.
+ example: 134217728
+ maximum: 1099511627776
+ minimum: 65536
+ type: integer
+ innodb_read_io_threads:
+ default: 4
+ description: >-
+ The number of I/O threads for read operations in
+ InnoDB. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 10
+ maximum: 64
+ minimum: 1
+ type: integer
+ innodb_rollback_on_timeout:
+ description: >-
+ When enabled a transaction timeout causes InnoDB to
+ abort and roll back the entire transaction. Changing
+ this parameter will lead to a restart of the MySQL
+ service.
+ example: true
+ type: boolean
+ innodb_thread_concurrency:
+ default: 0
+ description: >-
+ Defines the maximum number of threads permitted
+ inside of InnoDB. The default is `0` which indicates
+ infinite concurrency, or no limit.
+ example: 10
+ maximum: 1000
+ minimum: 0
+ type: integer
+ innodb_write_io_threads:
+ default: 4
+ description: >-
+ The number of I/O threads for write operations in
+ InnoDB. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 10
+ maximum: 64
+ minimum: 1
+ type: integer
+ interactive_timeout:
+ description: >-
+ The number of seconds the server waits for activity
+ on an interactive connection before closing it.
+ example: 3600
+ maximum: 604800
+ minimum: 30
+ type: integer
+ internal_tmp_mem_storage_engine:
+ description: >-
+ The storage engine for in-memory internal temporary
+ tables.
+ enum:
+ - TempTable
+ - MEMORY
+ example: TempTable
+ type: string
+ max_allowed_packet:
+ default: 7108864
+ description: >-
+ Size of the largest message in bytes that can be
+ received by the server.
+ example: 67108864
+ maximum: 1073741824
+ minimum: 102400
+ type: integer
+ max_heap_table_size:
+ default: 16777216
+ description: >-
+ Limits the size of internal in-memory tables. Also
+ set `tmp_table_size`.
+ example: 24777216
+ maximum: 1073741824
+ minimum: 1048576
+ type: integer
+ net_buffer_length:
+ default: 16384
+ description: >-
+ Start sizes of connection buffer and result buffer.
+ Changing this parameter will lead to a restart of
+ the MySQL service.
+ example: 16384
+ maximum: 1048576
+ minimum: 1024
+ type: integer
+ net_read_timeout:
+ description: >-
+ The number of seconds to wait for more data from a
+ connection before aborting the read.
+ example: 30
+ maximum: 3600
+ minimum: 1
+ type: integer
+ net_write_timeout:
+ description: >-
+ The number of seconds to wait for a block to be
+ written to a connection before aborting the write.
+ example: 30
+ maximum: 3600
+ minimum: 1
+ type: integer
+ sql_mode:
+ description: >-
+ Global SQL mode. Set to empty to use MySQL server
+ defaults. When creating a new service and not
+ setting this field, Akamai defaults to SQL mode
+ which is strict, SQL standard compliant.
+ example: ANSI,TRADITIONAL
+ maxLength: 1024
+ pattern: ^[A-Z_]*(,[A-Z_]+)*$
+ type: string
+ sql_require_primary_key:
+ description: >-
+ Require primary key to be defined for new tables or
+ old tables modified with `ALTER TABLE` and fail if
+ missing. You should always have primary keys because
+ various functionality may break if any large table
+ is missing them.
+ example: true
+ type: boolean
+ tmp_table_size:
+ default: 16777216
+ description: >-
+ Limits the size of internal in-memory tables. This
+ also requires a `max_heap_table_size`.
+ example: 24777216
+ maximum: 1073741824
+ minimum: 1048576
+ type: integer
+ wait_timeout:
+ description: >-
+ The number of seconds the server waits for activity
+ on a non-interactive connection before closing it.
+ example: 28800
+ maximum: 2147483
+ minimum: 1
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/database-mysql-engine-config.yaml
+ label:
+ description: >-
+ __Filterable__ A unique, user-defined string referring to
+ the Managed Database. This string needs to be unique per
+ Managed Database engine type.
+ example: '{{label}}'
+ maxLength: 32
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ type:
+ description: >-
+ Request re-sizing of your cluster to a Linode Type with more
+ disk space. For example, you could request a Linode Type
+ that uses a higher plan.
+
+
+ - Needs to be a Linode Type with more disk space than your
+ current Linode.
+
+
+ - Resizing to a larger Linode Type can accrue additional
+ cost. Review the `price` output in the [List
+ types](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ operation for more information.
+
+
+ - You can't update the `allow_list` and set a new `type` in
+ the same request.
+
+
+ - Any active updates to your cluster need to complete before
+ you can request a resize. The reverse is also true: An
+ active resizing needs to complete before you can perform any
+ other update.
+ example: '{{type}}'
+ type: string
updates:
- $ref: '#/components/schemas/DatabaseMongoDB/properties/updates'
+ additionalProperties: false
+ description: >-
+ Configuration settings for automated patch update
+ maintenance for the Managed Database.
+ properties:
+ day_of_week:
+ description: >-
+ The numeric reference for the day of the week to perform
+ maintenance. `1` is Monday, `2` is Tuesday, through to
+ `7` which is Sunday.
+ example: 1
+ maximum: 7
+ minimum: 1
+ type: integer
+ duration:
+ description: The maximum maintenance window time in hours.
+ example: 3
+ maximum: 3
+ minimum: 1
+ type: integer
+ frequency:
+ default: weekly
+ description: >-
+ How frequently maintenance occurs. Currently can only be
+ `weekly`.
+ enum:
+ - weekly
+ example: weekly
+ type: string
+ hour_of_day:
+ description: The hour to begin maintenance based in UTC time.
+ example: 0
+ maximum: 23
+ minimum: 0
+ type: integer
+ pending:
+ description: __Read-only__ An array of pending updates.
+ example: []
+ items:
+ additionalProperties: false
+ description: A planned maintenance update.
+ properties:
+ deadline:
+ description: >-
+ The time when a mandatory update needs to be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ description:
+ description: A description of the update.
+ example: TimescaleDB version 2.17.1 is available.
+ type: string
+ planned_for:
+ description: >-
+ The date and time a maintenance update will be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ type: object
+ minItems: 0
+ readOnly: true
+ type: array
+ type: object
+ version:
+ description: __Filterable__ The Managed Database engine version.
+ example: '{{version}}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 9
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/put-databases-mysql-instance.yaml
+ required: true
responses:
'200':
- description: Managed Database updated successfully.
content:
application/json:
+ example:
+ allow_list:
+ - 192.0.2.250/24
+ - 192.0.2.131/24
+ cluster_size: 3
+ created: '2022-01-01T00:01:01'
+ encrypted: true
+ engine: mysql
+ engine_config:
+ binlog_retention_period: 600
+ mysql:
+ connect_timeout: 10
+ default_time_zone: '+03:00'
+ group_concat_max_len: 1024
+ information_schema_stats_expiry: 86400
+ innodb_change_buffer_max_size: 30
+ innodb_flush_neighbors: 0
+ innodb_ft_min_token_size: 3
+ innodb_ft_server_stopword_table: db_name/table_name
+ innodb_lock_wait_timeout: 50
+ innodb_log_buffer_size: 16777216
+ innodb_online_alter_log_max_size: 134217728
+ innodb_read_io_threads: 10
+ innodb_rollback_on_timeout: true
+ innodb_thread_concurrency: 10
+ innodb_write_io_threads: 10
+ interactive_timeout: 3600
+ internal_tmp_mem_storage_engine: TempTable
+ max_allowed_packet: 67108864
+ max_heap_table_size: 16777216
+ net_buffer_length: 16384
+ net_read_timeout: 30
+ net_write_timeout: 30
+ sort_buffer_size: 262144
+ sql_mode: ANSI,TRADITIONAL
+ sql_require_primary_key: true
+ tmp_table_size: 16777216
+ wait_timeout: 28800
+ fork:
+ restore_time: '2024-10-14T19:55:12'
+ source: 176881
+ hosts:
+ primary: lin-123-456-mysql-mysql-primary.servers.linodedb.net
+ secondary: lin-123-456-mysql-primary-private.servers.linodedb.net
+ id: 123
+ label: example-db
+ members:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ oldest_restore_time: '2024-10-03T20:48:05'
+ platform: rdbms-default
+ port: 3306
+ region: us-east
+ ssl_connection: true
+ status: active
+ total_disk_size_gb: 15
+ type: g6-dedicated-2
+ updated: '2022-01-01T00:01:01'
+ updates:
+ day_of_week: 1
+ duration: 3
+ frequency: weekly
+ hour_of_day: 0
+ pending: []
+ used_disk_size_gb: 2
+ version: 8.0.26
schema:
- $ref: '#/components/schemas/DatabaseMongoDB'
+ additionalProperties: false
+ description: Managed MySQL Databases object.
+ properties:
+ allow_list:
+ description: >-
+ Controls access to the Managed Database.
+
+
+ - Individually included IP addresses or CIDR ranges can
+ access the Managed Database while all other sources are
+ blocked.
+
+
+ - A standalone value of `0.0.0.0/0` allows all IP
+ addresses access to the Managed Database.
+
+
+ - An empty array (`[]`) blocks all public and private
+ connections to the Managed Database.
+ example:
+ - 203.0.113.1/32
+ - 192.0.1.0/24
+ items:
+ format: ipv4/prefix_length
+ pattern: >-
+ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
+ type: string
+ minItems: 0
+ type: array
+ cluster_size:
+ default: 1
+ description: >-
+ The number of Linode instance nodes deployed to the
+ Managed Database.
+
+ - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes.
+
+ - A `2` node cluster is only available with a dedicated
+ plan. It consists of one primary node and one replica
+ node.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: 3
+ type: integer
+ x-linode-cli-display: 7
+ created:
+ description: __Read-only__ When this Managed Database was created.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encrypted:
+ default: true
+ description: >-
+ __Read-only__ Whether the Managed Databases is encrypted.
+ Currently required to be `true`.
+ example: true
+ readOnly: true
+ type: boolean
+ engine:
+ description: >-
+ __Filterable__, __Read-only__ The Managed Database engine
+ type.
+ example: mysql
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ engine_config:
+ additionalProperties: false
+ description: >-
+ Advanced parameters you can apply to a MySQL Managed
+ Database, via our partner [Aiven's
+ specification](https://aiven.io/docs/products/mysql/reference/advanced-params).
+ Only include the objects for parameters you want to set in
+ your database. Omit objects for parameters you don't want
+ to define or change.
+
+
+ > 📘
+
+ >
+
+ > Aiven may offer additional parameters in their
+ specification. Currently, only those listed here are
+ supported for use in a MySQL Managed Database. You can
+ also run the [List MySQL Managed Database advanced
+ parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-config)
+ operation to see an up-to-date list.
+ properties:
+ binlog_retention_period:
+ description: >-
+ The minimum amount of time in seconds to keep `binlog`
+ entries before deletion. This may be extended for
+ services that require `binlog` entries for longer than
+ the default, for example if using the MySQL Debezium
+ Kafka connector.
+ example: 600
+ maximum: 86400
+ minimum: 600
+ type: integer
+ mysql:
+ additionalProperties: false
+ description: MySQL-specific advanced configuration parameters.
+ properties:
+ connect_timeout:
+ description: >-
+ The number of seconds that the `mysqld` server
+ waits for a connect packet before responding with
+ bad handshake.
+ example: 10
+ maximum: 3600
+ minimum: 2
+ type: integer
+ default_time_zone:
+ description: >-
+ Default server time zone as an offset from UTC
+ (from -12:00 to +12:00), a time zone name, or
+ `SYSTEM` to use the MySQL server default.
+ example: '+03:00'
+ maxLength: 100
+ minLength: 2
+ pattern: ^([-+][\\d:]*|[\\w/]*)$
+ type: string
+ group_concat_max_len:
+ description: >-
+ The maximum permitted result length in bytes for
+ the `GROUP_CONCAT()` function.
+ example: 1024
+ maximum: 18446744073709552000
+ minimum: 4
+ type: integer
+ information_schema_stats_expiry:
+ description: >-
+ The time, in seconds, before cached statistics
+ expire.
+ example: 86400
+ maximum: 31536000
+ minimum: 900
+ type: integer
+ innodb_change_buffer_max_size:
+ default: 25
+ description: >-
+ Maximum size for the InnoDB change buffer, as a
+ percentage of the total size of the buffer pool.
+ example: 30
+ maximum: 50
+ minimum: 0
+ type: integer
+ innodb_flush_neighbors:
+ default: 1
+ description: >-
+ Specifies whether flushing a page from the InnoDB
+ buffer pool also flushes other dirty pages in the
+ same extent: `0` - dirty pages in the same extent
+ are not flushed, `1` - flush contiguous dirty
+ pages in the same extent, `2` - flush dirty pages
+ in the same extent.
+ example: 0
+ maximum: 2
+ minimum: 0
+ type: integer
+ innodb_ft_min_token_size:
+ description: >-
+ Minimum length of words that are stored in an
+ InnoDB `-1FULLTEXT` index. Changing this parameter
+ will lead to a restart of the MySQL service.
+ example: 3
+ maximum: 16
+ minimum: 0
+ type: integer
+ innodb_ft_server_stopword_table:
+ description: >-
+ This option is used to specify your own InnoDB
+ `FULLTEXT` index `stopword` list for all InnoDB
+ tables. Set to `null` for no value.
+ example: db_name/table_name
+ maxLength: 1024
+ nullable: true
+ pattern: ^.+/.+$
+ type: string
+ innodb_lock_wait_timeout:
+ default: 120
+ description: >-
+ The length of time in seconds an InnoDB
+ transaction waits for a row lock before giving up.
+ example: 50
+ maximum: 3600
+ minimum: 1
+ type: integer
+ innodb_log_buffer_size:
+ description: >-
+ The size in bytes of the buffer that InnoDB uses
+ to write to the log files on disk.
+ example: 16777216
+ maximum: 4294967295
+ minimum: 1048576
+ type: integer
+ innodb_online_alter_log_max_size:
+ description: >-
+ The upper limit in bytes on the size of the
+ temporary log files used during online DDL
+ operations for InnoDB tables.
+ example: 134217728
+ maximum: 1099511627776
+ minimum: 65536
+ type: integer
+ innodb_read_io_threads:
+ default: 4
+ description: >-
+ The number of I/O threads for read operations in
+ InnoDB. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 10
+ maximum: 64
+ minimum: 1
+ type: integer
+ innodb_rollback_on_timeout:
+ description: >-
+ When enabled a transaction timeout causes InnoDB
+ to abort and roll back the entire transaction.
+ Changing this parameter will lead to a restart of
+ the MySQL service.
+ example: true
+ type: boolean
+ innodb_thread_concurrency:
+ default: 0
+ description: >-
+ Defines the maximum number of threads permitted
+ inside of InnoDB. The default is `0` which
+ indicates infinite concurrency, or no limit.
+ example: 10
+ maximum: 1000
+ minimum: 0
+ type: integer
+ innodb_write_io_threads:
+ default: 4
+ description: >-
+ The number of I/O threads for write operations in
+ InnoDB. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 10
+ maximum: 64
+ minimum: 1
+ type: integer
+ interactive_timeout:
+ description: >-
+ The number of seconds the server waits for
+ activity on an interactive connection before
+ closing it.
+ example: 3600
+ maximum: 604800
+ minimum: 30
+ type: integer
+ internal_tmp_mem_storage_engine:
+ description: >-
+ The storage engine for in-memory internal
+ temporary tables.
+ enum:
+ - TempTable
+ - MEMORY
+ example: TempTable
+ type: string
+ max_allowed_packet:
+ default: 7108864
+ description: >-
+ Size of the largest message in bytes that can be
+ received by the server.
+ example: 67108864
+ maximum: 1073741824
+ minimum: 102400
+ type: integer
+ max_heap_table_size:
+ default: 16777216
+ description: >-
+ Limits the size of internal in-memory tables. Also
+ set `tmp_table_size`.
+ example: 24777216
+ maximum: 1073741824
+ minimum: 1048576
+ type: integer
+ net_buffer_length:
+ default: 16384
+ description: >-
+ Start sizes of connection buffer and result
+ buffer. Changing this parameter will lead to a
+ restart of the MySQL service.
+ example: 16384
+ maximum: 1048576
+ minimum: 1024
+ type: integer
+ net_read_timeout:
+ description: >-
+ The number of seconds to wait for more data from a
+ connection before aborting the read.
+ example: 30
+ maximum: 3600
+ minimum: 1
+ type: integer
+ net_write_timeout:
+ description: >-
+ The number of seconds to wait for a block to be
+ written to a connection before aborting the write.
+ example: 30
+ maximum: 3600
+ minimum: 1
+ type: integer
+ sql_mode:
+ description: >-
+ Global SQL mode. Set to empty to use MySQL server
+ defaults. When creating a new service and not
+ setting this field, Akamai defaults to SQL mode
+ which is strict, SQL standard compliant.
+ example: ANSI,TRADITIONAL
+ maxLength: 1024
+ pattern: ^[A-Z_]*(,[A-Z_]+)*$
+ type: string
+ sql_require_primary_key:
+ description: >-
+ Require primary key to be defined for new tables
+ or old tables modified with `ALTER TABLE` and fail
+ if missing. You should always have primary keys
+ because various functionality may break if any
+ large table is missing them.
+ example: true
+ type: boolean
+ tmp_table_size:
+ default: 16777216
+ description: >-
+ Limits the size of internal in-memory tables. This
+ also requires a `max_heap_table_size`.
+ example: 24777216
+ maximum: 1073741824
+ minimum: 1048576
+ type: integer
+ wait_timeout:
+ description: >-
+ The number of seconds the server waits for
+ activity on a non-interactive connection before
+ closing it.
+ example: 28800
+ maximum: 2147483
+ minimum: 1
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/database-mysql-engine-config.yaml
+ x-linode-cli-display: 9
+ fork:
+ additionalProperties: false
+ description: >-
+ Details on the database that was the target of the fork.
+ This only exists if the database was restored by creating
+ a fork from another
+ [MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances)
+ or
+ [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)
+ database.
+ properties:
+ restore_time:
+ description: >-
+ The database timestamp from which it was restored.
+ This is _not_ when the fork was created.
+ example: '2024-10-14 19:55:12'
+ format: date-time
+ type: string
+ source:
+ description: The instance id of the database that was forked from.
+ example: 176881
+ type: integer
+ type: object
+ hosts:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The primary and secondary hosts for the
+ Managed Database. These are assigned after provisioning is
+ complete.
+ properties:
+ primary:
+ description: The primary host for the Managed Database.
+ example: lin-123-456-mysql-mysql-primary.servers.linodedb.net
+ nullable: true
+ type: string
+ secondary:
+ 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.
+
+
+ > 📘
+
+ >
+
+ > The secondary hostname is publicly visible and
+ accessible.
+ example: lin-123-456-mysql-primary-private.servers.linodedb.net
+ nullable: true
+ type: string
+ readOnly: true
+ type: object
+ id:
+ description: >-
+ __Read-only__ A unique ID that can be used to identify and
+ reference the Managed Database.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ A unique, user-defined string referring to
+ the Managed Database. This string needs to be unique per
+ Managed Database engine type.
+ example: example-db
+ maxLength: 32
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ members:
+ description: >-
+ __Read-only__ A mapping between IP addresses and strings
+ designating them as `primary` or `failover`.
+ example:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ readOnly: true
+ type: object
+ oldest_restore_time:
+ description: >-
+ __Read-only__ The oldest time to which a database can be
+ restored.
+ example: '2024-10-03 20:48:05'
+ format: date-time
+ readOnly: true
+ type: string
+ platform:
+ description: >-
+ __Filterable__, __Read-only__ The back-end platform for
+ relational databases used by the service.
+ enum:
+ - rdbms-legacy
+ - rdbms-default
+ example: rdbms-default
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ port:
+ description: __Read-only__ The access port for this Managed Database.
+ example: 3306
+ readOnly: true
+ type: integer
+ region:
+ description: >-
+ __Filterable__ The
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ ID for the Managed Database.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ ssl_connection:
+ default: true
+ description: >-
+ Currently required to be `true`. Whether to require SSL
+ credentials to establish a connection to the Managed
+ Database. Run the [Get managed MySQL database
+ credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-credentials)
+ operation for access information.
+ example: true
+ type: boolean
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The operating status of the
+ Managed Database.
+ enum:
+ - provisioning
+ - active
+ - suspending
+ - suspended
+ - resuming
+ - failed
+ - degraded
+ - updating
+ - resizing
+ example: active
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ active: green
+ default_: white
+ degraded: red
+ failed: red
+ provisioning: yellow
+ restoring: yellow
+ resuming: yellow
+ x-linode-cli-display: 100
+ x-linode-filterable: true
+ total_disk_size_gb:
+ description: __Read-only__ The total disk size of the database, in GB.
+ example: 15
+ readOnly: true
+ type: integer
+ type:
+ description: >-
+ __Filterable__ The Linode Instance type used by the
+ Managed Database for its nodes.
+ example: g6-dedicated-2
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Managed Database was last updated.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ updates:
+ additionalProperties: false
+ description: >-
+ Configuration settings for automated patch update
+ maintenance for the Managed Database.
+ properties:
+ day_of_week:
+ description: >-
+ The numeric reference for the day of the week to
+ perform maintenance. `1` is Monday, `2` is Tuesday,
+ through to `7` which is Sunday.
+ example: 1
+ maximum: 7
+ minimum: 1
+ type: integer
+ duration:
+ description: The maximum maintenance window time in hours.
+ example: 3
+ maximum: 3
+ minimum: 1
+ type: integer
+ frequency:
+ default: weekly
+ description: >-
+ How frequently maintenance occurs. Currently can only
+ be `weekly`.
+ enum:
+ - weekly
+ example: weekly
+ type: string
+ hour_of_day:
+ description: The hour to begin maintenance based in UTC time.
+ example: 0
+ maximum: 23
+ minimum: 0
+ type: integer
+ pending:
+ description: __Read-only__ An array of pending updates.
+ example: []
+ items:
+ additionalProperties: false
+ description: A planned maintenance update.
+ properties:
+ deadline:
+ description: >-
+ The time when a mandatory update needs to be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ description:
+ description: A description of the update.
+ example: TimescaleDB version 2.17.1 is available.
+ type: string
+ planned_for:
+ description: >-
+ The date and time a maintenance update will be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ type: object
+ minItems: 0
+ readOnly: true
+ type: array
+ type: object
+ used_disk_size_gb:
+ description: >-
+ __Read-only__ The amount of space currently in use in the
+ database, in GB.
+ example: 2
+ readOnly: true
+ type: integer
+ version:
+ description: __Filterable__ The Managed Database engine version.
+ example: 8.0.26
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 9
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/database-mysql.yaml
+ description: MySQL Managed Database updated successfully.
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": "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/databases/mongodb/instances/123
- - lang: CLI
- source: |
- 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
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MongoDB Database.
- required: true
- schema:
- type: integer
- '/databases/mongodb/instances/{instanceId}/backups':
- get:
- tags:
- - 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:
- - name: instanceId
- in: path
- description: The ID of the Managed MongoDB Database.
- required: true
- schema:
- type: integer
- 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:
- - 'databases:read_write'
- responses:
- '200':
- description: Returns a paginated list of backups for the Managed MongoDB Database.
content:
application/json:
schema:
- 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/databases/mongodb/instances/123/backups
- - lang: CLI
- source: |
- linode-cli databases mongodb-backups-list 123
- post:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_write
+ summary: Update a MySQL Managed Database
tags:
- 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-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli databases mysql-update 123 \
+ --label example-db \
+ --allow_list 203.0.113.1 \
+ --allow_list 192.0.1.0/24 \
+ --type g6-standard-1 \
+ --engine_config.binlog_retention_period 60 \
+ --engine_config.mysql.connect_timeout 10 \
+ --engine_config.mysql.default_time_zone +03:00 \
+ --updates.frequency weekly \
+ --updates.duration 3 \
+ --updates.hour_of_day 12 \
+ --updates.day_of_week 4 \
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: mysql-update
x-linode-grant: read_write
- description: |
- Creates a snapshot backup of a Managed MongoDB Database.
+ delete:
+ description: >-
+ Remove a MySQL Managed Database from your account.
- Requires `read_write` access to the Database.
- Up to 3 snapshot backups for each Database can be stored at a time. If 3 snapshots have been created for a Database, one must be deleted before another can be made.
+ - The user needs `read_write` [user
+ grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ 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. If another backup is in progress, it must complete before a new backup can be initiated.
+ - The database's status can be `active`, `failed`, or `degraded`.
- **Note**: New MongoDB Databases cannot currently be created.
- security:
- - personalAccessToken: []
- - oauth:
- - 'databases:read_write'
- requestBody:
- description: Information about the snapshot backup to create.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/DatabaseBackupSnapshot'
+
+ - Only unrestricted users can access this operation. They have access
+ regardless of the acting token's OAuth scopes.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-databases-mysql-instance
+ operationId: delete-databases-mysql-instance
responses:
'200':
- description: Database snapshot backup request successful.
content:
application/json:
+ example: {}
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ description: MySQL Managed Database successfully deleted.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -H "Content-Type: application/json" \
- -X POST -d '{
- "label": "snapshot1",
- "target": "primary"
- }' \
- https://api.linode.com/v4/databases/mongodb/instances/123/backups/
- - lang: CLI
- source: |
- linode-cli databases mongodb-backup-snapshot 123 \
- --label snapshot1 \
- --target primary
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MongoDB Database.
- required: true
- schema:
- type: integer
- '/databases/mongodb/instances/{instanceId}/backups/{backupId}':
- get:
- tags:
- - 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:
- - 'databases:read_write'
- responses:
- '200':
- description: Returns a single backup for the Managed MongoDB Database.
content:
application/json:
schema:
- $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/databases/mongodb/instances/123/backups/456
- - lang: CLI
- source: |
- linode-cli databases mongodb-backup-view 123 456
- 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
- delete:
- tags:
- - 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
- 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.
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'databases:read_write'
- responses:
- '200':
- description: Request to delete Database 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 DELETE \
- https://api.linode.com/v4/databases/mongodb/instances/123/backups/456
- - lang: CLI
- source: |
- linode-cli databases mongodb-backup-delete 123 456
- 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
- '/databases/mongodb/instances/{instanceId}/backups/{backupId}/restore':
- post:
+ - databases:read_write
+ summary: Delete a MySQL Managed Database
tags:
- 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-akamai:
+ tabs:
+ - syntax: linode-cli databases mysql-delete 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: mysql-delete
x-linode-grant: read_write
- description: |
- Restore a backup to a Managed MongoDB Database on your Account.
-
- Requires `read_write` access to the Database.
+ parameters:
+ - description: The ID of the Managed PostgreSQL Database.
+ example: '{{instanceId}}'
+ in: path
+ name: instanceId
+ required: true
+ schema:
+ example: 123458
+ type: integer
+ x-akamai:
+ file-path: parameters/instance-id-path.yaml
+ x-akamai:
+ file-path: paths/mysql-instance.yaml
+ path-info: /{apiVersion}/databases/mysql/instances/{instanceId}
+ x-linode-cli-command: databases
+ /databases/mysql/instances/{instanceId}/credentials:
+ get:
+ description: >-
+ Display the root username and password for an accessible MySQL Managed
+ Database. The database's status needs to be `active`.
- 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.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- **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:
- - 'databases:read_write'
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-credentials
+ operationId: get-databases-mysql-instance-credentials
responses:
'200':
- description: Request to restore backup successful.
content:
application/json:
+ example:
+ password: s3cur3P@ssw0rd
+ username: adevi
schema:
+ additionalProperties: false
+ description: Managed Database object for database credentials.
+ properties:
+ password:
+ description: >-
+ __Read-only__ The randomly generated root password for the
+ Managed Database instance.
+ example: s3cur3P@ssw0rd
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ username:
+ description: >-
+ __Read-only__ The root username for the Managed Database
+ instance.
+ example: linroot
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
type: object
+ x-akamai:
+ file-path: schemas/database-credentials.yaml
+ description: MySQL Managed Database root username and password.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X POST https://api.linode.com/v4/databases/mongodb/instances/123/backups/456/restore
- - lang: CLI
- source: |
- linode-cli databases mongodb-backup-restore 123 456
- 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
- '/databases/mongodb/instances/{instanceId}/credentials':
- get:
- tags:
- - 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:
- - 'databases:read_only'
- responses:
- '200':
- description: Managed Database root username and password.
content:
application/json:
schema:
- $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/databases/mongodb/instances/123/credentials/
- - lang: CLI
- source: |
- linode-cli databases mongodb-creds-view 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MongoDB Database.
- required: true
- schema:
- type: integer
- '/databases/mongodb/instances/{instanceId}/credentials/reset':
- post:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_only
+ summary: Get MySQL Managed Database credentials
tags:
- - 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.
+ - Credentials
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases mysql-creds-view 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: mysql-creds-view
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the Managed PostgreSQL Database.
+ example: '{{instanceId}}'
+ in: path
+ name: instanceId
+ required: true
+ schema:
+ example: 123458
+ type: integer
+ x-akamai:
+ file-path: parameters/instance-id-path.yaml
+ x-akamai:
+ file-path: paths/mysql-credentials.yaml
+ path-info: /{apiVersion}/databases/mysql/instances/{instanceId}/credentials
+ x-linode-cli-command: databases
+ /databases/mysql/instances/{instanceId}/credentials/reset:
+ post:
+ description: >-
+ Reset the root password for a MySQL Managed Database. A new root
+ password is randomly generated and accessible with the [Get MySQL
+ Managed Database
+ credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-credentials)
+ operation.
- 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.
+ - The database's status needs to be `active`.
- 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.
+ - Only unrestricted users can access this operation. These users have
+ access regardless of the acting token's OAuth scopes.
- **Note**: New MongoDB Databases cannot currently be created.
- security:
- - personalAccessToken: []
- - oauth:
- - 'databases:read_write'
+
+ - It may take several seconds for credentials to reset.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instance-credentials-reset
+ operationId: post-databases-mysql-instance-credentials-reset
responses:
'200':
- description: Managed Database instance credentials successfully reset.
content:
application/json:
+ example: {}
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ description: MySQL Managed Database instance credentials successfully reset.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X POST https://api.linode.com/v4/databases/mongodb/instances/123/credentials/reset
- - lang: CLI
- source: |
- linode-cli databases mongodb-creds-reset 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MongoDB Database.
- required: true
- schema:
- type: integer
- '/databases/mongodb/instances/{instanceId}/ssl':
- get:
- tags:
- - 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:
- - 'databases:read_only'
- responses:
- '200':
- description: Returns the SSL CA certificate of a single Managed MongoDB Database.
content:
application/json:
schema:
- $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/databases/mongodb/instances/123/ssl
- - lang: CLI
- source: |
- linode-cli databases mongodb-ssl-cert 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MongoDB Database.
- required: true
- schema:
- type: integer
- '/databases/mongodb/instances/{instanceId}/patch':
- post:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_write
+ summary: Reset MySQL Managed Database credentials
tags:
- - 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
+ - Credentials
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases mysql-creds-reset 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: mysql-creds-reset
x-linode-grant: read_write
- description: |
- 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.
+ parameters:
+ - description: The ID of the Managed MySQL Database.
+ example: '{{instanceId}}'
+ in: path
+ name: instanceId
+ required: true
+ schema:
+ example: 123458
+ type: integer
+ x-akamai:
+ file-path: parameters/instance-id-path-c09a6713.yaml
+ x-akamai:
+ file-path: paths/mysql-reset.yaml
+ path-info: /{apiVersion}/databases/mysql/instances/{instanceId}/credentials/reset
+ x-linode-cli-command: databases
+ /databases/mysql/instances/{instanceId}/patch:
+ post:
+ description: >-
+ Apply security patches and updates to the underlying operating system of
+ the MySQL Managed Database. This function runs during regular
+ maintenance windows, which you can configure with the [Update a managed
+ MySQL
+ database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance)
+ operation.
- The Database must have an `active` status to perform this command.
- **Note**:
+ - The user needs `read_write` [user
+ grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ access to the database.
- * 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.
+ - The database's status meeds to be `active`.
- **Note**: New MongoDB Databases cannot currently be created.
- security:
- - personalAccessToken: []
- - oauth:
- - 'databases:read_write'
+
+ - If your database cluster is configured with a single node, downtime
+ occurs during maintenance updates. Consider upgrading to a [high
+ availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability)
+ plan to avoid any maintenance downtime.
+
+
+ - Major upgrades are optional until the service reaches end of service,
+ and can be done in place.
+
+
+ - A successful request triggers a `database_upgrade`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events).
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instance-patch
+ operationId: post-databases-mysql-instance-patch
responses:
'200':
- description: Managed Database instance patch request successful.
content:
application/json:
+ example: {}
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ description: MySQL Managed Database instance patch request successful.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X POST https://api.linode.com/v4/databases/mongodb/instances/123/patch
- - lang: CLI
- source: |
- linode-cli databases mongodb-patch 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MongoDB Database.
- required: true
- schema:
- type: integer
- /databases/mysql/instances:
- get:
- tags:
- - 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: |
- Display all accessible Managed MySQL Databases.
- security:
- - personalAccessToken: []
- - oauth:
- - 'databases:read_only'
- responses:
- '200':
- description: Returns a paginated list of all accessible Managed MySQL Databases on your Account.
content:
- application/json:
- schema:
- 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 "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/databases/mysql/instances/
- - lang: CLI
- source: |
- linode-cli databases mysql-list
- post:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_write
+ summary: Patch a MySQL Managed Database
tags:
- Databases
- summary: Managed MySQL Database Create
- operationId: postDatabasesMySQLInstances
- servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
- x-linode-cli-action: mysql-create
- x-linode-grant: add_databases
- description: |
- Provision a Managed MySQL 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.
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases mysql-patch 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: mysql-patch
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Managed PostgreSQL Database.
+ example: '{{instanceId}}'
+ in: path
+ name: instanceId
+ required: true
+ schema:
+ example: 123458
+ type: integer
+ x-akamai:
+ file-path: parameters/instance-id-path.yaml
+ x-akamai:
+ file-path: paths/mysql-patch.yaml
+ path-info: /{apiVersion}/databases/mysql/instances/{instanceId}/patch
+ x-linode-cli-command: databases
+ /databases/mysql/instances/{instanceId}/resume:
+ post:
+ description: >-
+ Resume a suspended MySQL Managed Database from your account. This
+ resumes billing for the cluster.
- * IP addresses and ranges in this list can access the Managed Database. All other sources are blocked.
- * If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database.
+ - The user needs `read_write` [user
+ grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ access to the database.
- * 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.
+ - The database's status needs to be `suspended`.
- 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.
+ - A successful request triggers a `database_resume`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events).
+ __OAuth scopes__.
- * **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.
+ ```
+ databases:read_write
+ ```
- * 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:
- - 'databases:read_write'
- requestBody:
- description: Information about the Managed MySQL Database you are creating.
- x-linode-cli-allowed-defaults:
- - region
- - type
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/DatabaseMySQLRequest'
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/resume-databases-mysql-instance
+ operationId: resume-databases-mysql-instance
responses:
'200':
- description: A new Managed MySQL Database is provisioning.
content:
application/json:
+ example: {}
schema:
- $ref: '#/components/schemas/DatabaseMySQL'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ description: MySQL Manged Database successfully resumed.
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": "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/databases/mysql/instances
- - lang: CLI
- source: |
- linode-cli databases mysql-create \
- --label example-db1 \
- --region us-east \
- --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}':
- get:
- tags:
- - 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: |
- 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
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MySQL Database.
- required: true
- schema:
- type: integer
- delete:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_write
+ summary: Resume a MySQL Managed Database
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-akamai:
+ tabs:
+ - syntax: databases:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: mysql-resume
x-linode-grant: read_write
- description: |
- Remove a Managed MySQL Database from your Account.
+ parameters:
+ - description: The ID of the Managed PostgreSQL Database.
+ example: '{{instanceId}}'
+ in: path
+ name: instanceId
+ required: true
+ schema:
+ example: 123458
+ type: integer
+ x-akamai:
+ file-path: parameters/instance-id-path.yaml
+ x-akamai:
+ file-path: paths/mysql-resume.yaml
+ path-info: /{apiVersion}/databases/mysql/instances/{instanceId}/resume
+ x-linode-cli-command: databases
+ /databases/mysql/instances/{instanceId}/ssl:
+ get:
+ description: >-
+ Display the SSL CA certificate for an accessible MySQL Managed Database.
+ The database's status needs to be `active`.
- Requires `read_write` access to the Database.
- The Database must have an `active`, `failed`, or `degraded` status to perform this command.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- Only unrestricted Users can access this command, and have access regardless of the acting token's OAuth scopes.
- security:
- - personalAccessToken: []
- - oauth:
- - 'databases:read_write'
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-ssl
+ operationId: get-databases-mysql-instance-ssl
responses:
'200':
- description: Managed MySQL Database successfully deleted.
content:
application/json:
+ example:
+ ca_certificate: LS0tLS1CRUdJ...==
schema:
+ additionalProperties: false
+ description: Managed Database SSL object.
+ properties:
+ ca_certificate:
+ description: >-
+ The base64-encoded SSL CA certificate for the Managed
+ Database instance.
+ example: LS0tLS1CRUdJ...==
+ format: base64
+ type: string
+ x-linode-cli-display: 1
type: object
+ x-akamai:
+ file-path: schemas/database-ssl.yaml
+ description: Returns the SSL CA certificate of a single MySQL Managed Database.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/databases/mysql/instances/123
- - lang: CLI
- source: |
- linode-cli databases mysql-delete 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MySQL Database.
- required: true
- schema:
- type: integer
- put:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_only
+ summary: Get a MySQL Managed Database SSL certificate
tags:
- - 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.
+ - SSL certificates
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases mysql-ssl-cert 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: mysql-ssl-cert
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the Managed MySQL Database.
+ example: '{{instanceId}}'
+ in: path
+ name: instanceId
+ required: true
+ schema:
+ example: 123458
+ type: integer
+ x-akamai:
+ file-path: parameters/instance-id-path-c09a6713.yaml
+ x-akamai:
+ file-path: paths/mysql-ssl.yaml
+ path-info: /{apiVersion}/databases/mysql/instances/{instanceId}/ssl
+ x-linode-cli-command: databases
+ /databases/mysql/instances/{instanceId}/suspend:
+ post:
+ description: >-
+ Suspend a MySQL Managed Database from your account, releasing idle
+ resources and keeping only necessary data. All service data is lost if
+ there are no backups available. This halts billing for the cluster.
- Requires `read_write` access to the Database.
- The Database must have an `active` status to perform this command.
+ - The user needs `read_write` [user
+ grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ access to the database.
- Updating addresses in the `allow_list` overwrites any existing addresses.
- * IP addresses and ranges in this list can access the Managed Database. All other sources are blocked.
+ - The database's status needs to be `active`.
- * If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database.
- * Entering an empty array (`[]`) blocks all connections (both public and private) to the Managed Database.
+ - Akamai deletes suspended clusters after 180 days.
- * **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.
+ - A successful request triggers a `database_update`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events).
+ __OAuth scopes__.
- * 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.
+ ```
+ databases:read_write
+ ```
- * **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:
- - 'databases:read_write'
- requestBody:
- description: Updated information for the Managed MySQL Database.
- required: true
- content:
- application/json:
- schema:
- 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'
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/suspend-databases-mysql-instance
+ operationId: suspend-databases-mysql-instance
responses:
'200':
- description: Managed Database updated successfully.
content:
application/json:
+ example: {}
schema:
- $ref: '#/components/schemas/DatabaseMySQL'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ description: MySQL Managed Database successfully suspended.
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": "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/databases/mysql/instances/123
- - lang: CLI
- source: |
- 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
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MySQL Database.
- required: true
- schema:
- type: integer
- '/databases/mysql/instances/{instanceId}/backups':
- get:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_write
+ summary: Suspend a MySQL Managed Database
tags:
- 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:
- - name: instanceId
- in: path
- description: The ID of the Managed MySQL Database.
- required: true
- schema:
- type: integer
- description: |
- Display all backups for an accessible Managed MySQL Database.
+ x-akamai:
+ tabs:
+ - syntax: databases:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: mysql-suspend
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Managed PostgreSQL Database.
+ example: '{{instanceId}}'
+ in: path
+ name: instanceId
+ required: true
+ schema:
+ example: 123458
+ type: integer
+ x-akamai:
+ file-path: parameters/instance-id-path.yaml
+ x-akamai:
+ file-path: paths/mysql-suspend.yaml
+ path-info: /{apiVersion}/databases/mysql/instances/{instanceId}/suspend
+ x-linode-cli-command: databases
+ /databases/postgresql/config:
+ get:
+ description: >-
+ All advanced parameters you can apply to a PostgreSQL Managed Database,
+ via our partner
+ [Aiven](https://aiven.io/docs/products/postgresql/reference/advanced-params).
- 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 MySQL Database Backup Snapshot Create** ([POST /databases/mysql/instances/{instanceId}/backups](/docs/api/databases/#managed-mysql-database-backup-snapshot-create)) command.
- security:
- - personalAccessToken: []
- - oauth:
- - 'databases:read_write'
+ >
+
+ > Aiven may offer other parameters, but Akamai Managed Databases only
+ supports the ones listed in this operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-databases-postgresql-config
+ operationId: get-databases-postgresql-config
responses:
'200':
- description: Returns a paginated list of backups for the Managed MySQL Database.
content:
application/json:
+ example:
+ pg:
+ autovacuum_analyze_scale_factor:
+ description: >-
+ Specifies a fraction of the table size to add to
+ autovacuum_analyze_threshold when deciding whether to
+ trigger an ANALYZE. The default is 0.2 (20% of table size)
+ maximum: 1
+ minimum: 0
+ requires_restart: false
+ type: number
+ autovacuum_analyze_threshold:
+ description: >-
+ Specifies the minimum number of inserted, updated or
+ deleted tuples needed to trigger an ANALYZE in any one
+ table. The default is 50 tuples.
+ maximum: 2147483647
+ minimum: 0
+ requires_restart: false
+ type: integer
+ autovacuum_max_workers:
+ description: >-
+ Specifies the maximum number of autovacuum processes
+ (other than the autovacuum launcher) that may be running
+ at any one time. The default is three. This parameter can
+ only be set at server start.
+ maximum: 20
+ minimum: 1
+ requires_restart: false
+ type: integer
+ autovacuum_naptime:
+ description: >-
+ Specifies the minimum delay between autovacuum runs on any
+ given database. The delay is measured in seconds, and the
+ default is one minute
+ maximum: 86400
+ minimum: 1
+ requires_restart: false
+ type: integer
+ autovacuum_vacuum_cost_delay:
+ description: >-
+ Specifies the cost delay value that will be used in
+ automatic VACUUM operations. If -1 is specified, the
+ regular vacuum_cost_delay value will be used. The default
+ value is 20 milliseconds
+ maximum: 100
+ minimum: -1
+ requires_restart: false
+ type: integer
+ autovacuum_vacuum_cost_limit:
+ description: >-
+ Specifies the cost limit value that will be used in
+ automatic VACUUM operations. If -1 is specified (which is
+ the default), the regular vacuum_cost_limit value will be
+ used.
+ maximum: 10000
+ minimum: -1
+ requires_restart: false
+ type: integer
+ autovacuum_vacuum_scale_factor:
+ description: >-
+ Specifies a fraction of the table size to add to
+ autovacuum_vacuum_threshold when deciding whether to
+ trigger a VACUUM. The default is 0.2 (20% of table size)
+ maximum: 1
+ minimum: 0
+ requires_restart: false
+ type: number
+ autovacuum_vacuum_threshold:
+ description: >-
+ Specifies the minimum number of updated or deleted tuples
+ needed to trigger a VACUUM in any one table. The default
+ is 50 tuples
+ maximum: 2147483647
+ minimum: 0
+ requires_restart: false
+ type: integer
+ bgwriter_delay:
+ description: >-
+ Specifies the delay between activity rounds for the
+ background writer in milliseconds. Default is 200.
+ example: 200
+ maximum: 10000
+ minimum: 10
+ requires_restart: false
+ type: integer
+ bgwriter_flush_after:
+ description: >-
+ Whenever more than bgwriter_flush_after bytes have been
+ written by the background writer, attempt to force the OS
+ to issue these writes to the underlying storage. Specified
+ in kilobytes, default is 512. Setting of 0 disables forced
+ writeback.
+ example: 512
+ maximum: 2048
+ minimum: 0
+ requires_restart: false
+ type: integer
+ bgwriter_lru_maxpages:
+ description: >-
+ In each round, no more than this many buffers will be
+ written by the background writer. Setting this to zero
+ disables background writing. Default is 100.
+ example: 100
+ maximum: 1073741823
+ minimum: 0
+ requires_restart: false
+ type: integer
+ bgwriter_lru_multiplier:
+ description: >-
+ The average recent need for new buffers is multiplied by
+ bgwriter_lru_multiplier to arrive at an estimate of the
+ number that will be needed during the next round, (up to
+ bgwriter_lru_maxpages). 1.0 represents a “just in time”
+ policy of writing exactly the number of buffers predicted
+ to be needed. Larger values provide some cushion against
+ spikes in demand, while smaller values intentionally leave
+ writes to be done by server processes. The default is 2.0.
+ example: 2
+ maximum: 10
+ minimum: 0
+ requires_restart: false
+ type: number
+ deadlock_timeout:
+ description: >-
+ This is the amount of time, in milliseconds, to wait on a
+ lock before checking to see if there is a deadlock
+ condition.
+ example: 1000
+ maximum: 1800000
+ minimum: 500
+ requires_restart: false
+ type: integer
+ default_toast_compression:
+ description: >-
+ Specifies the default TOAST compression method for values
+ of compressible columns (the default is lz4).
+ enum:
+ - lz4
+ - pglz
+ example: lz4
+ requires_restart: false
+ type: string
+ idle_in_transaction_session_timeout:
+ description: >-
+ Time out sessions with open transactions after this number
+ of milliseconds
+ maximum: 604800000
+ minimum: 0
+ requires_restart: false
+ type: integer
+ jit:
+ description: >-
+ Controls system-wide use of Just-in-Time Compilation
+ (JIT).
+ example: true
+ requires_restart: false
+ type: boolean
+ max_files_per_process:
+ description: >-
+ PostgreSQL maximum number of files that can be open per
+ process
+ maximum: 4096
+ minimum: 1000
+ requires_restart: false
+ type: integer
+ max_locks_per_transaction:
+ description: PostgreSQL maximum locks per transaction
+ maximum: 6400
+ minimum: 64
+ requires_restart: false
+ type: integer
+ max_logical_replication_workers:
+ description: >-
+ PostgreSQL maximum logical replication workers (taken from
+ the pool of max_parallel_workers)
+ maximum: 64
+ minimum: 4
+ requires_restart: false
+ type: integer
+ max_parallel_workers:
+ description: >-
+ Sets the maximum number of workers that the system can
+ support for parallel queries
+ maximum: 96
+ minimum: 0
+ requires_restart: false
+ type: integer
+ max_parallel_workers_per_gather:
+ description: >-
+ Sets the maximum number of workers that can be started by
+ a single Gather or Gather Merge node
+ maximum: 96
+ minimum: 0
+ requires_restart: false
+ type: integer
+ max_pred_locks_per_transaction:
+ description: PostgreSQL maximum predicate locks per transaction
+ maximum: 5120
+ minimum: 64
+ requires_restart: false
+ type: integer
+ max_replication_slots:
+ description: PostgreSQL maximum replication slots
+ maximum: 64
+ minimum: 8
+ requires_restart: false
+ type: integer
+ max_slot_wal_keep_size:
+ description: >-
+ PostgreSQL maximum WAL size (MB) reserved for replication
+ slots. Default is -1 (unlimited). wal_keep_size minimum
+ WAL size setting takes precedence over this.
+ maximum: 2147483647
+ minimum: -1
+ requires_restart: false
+ type: integer
+ max_stack_depth:
+ description: Maximum depth of the stack in bytes
+ maximum: 6291456
+ minimum: 2097152
+ requires_restart: false
+ type: integer
+ max_standby_archive_delay:
+ description: Max standby archive delay in milliseconds
+ maximum: 43200000
+ minimum: 1
+ requires_restart: false
+ type: integer
+ max_standby_streaming_delay:
+ description: Max standby streaming delay in milliseconds
+ maximum: 43200000
+ minimum: 1
+ requires_restart: false
+ type: integer
+ max_wal_senders:
+ description: PostgreSQL maximum WAL senders
+ maximum: 64
+ minimum: 20
+ requires_restart: false
+ type: integer
+ max_worker_processes:
+ description: >-
+ Sets the maximum number of background processes that the
+ system can support
+ maximum: 96
+ minimum: 8
+ requires_restart: false
+ type: integer
+ password_encryption:
+ description: Chooses the algorithm for encrypting passwords.
+ enum:
+ - md5
+ - scram-sha-256
+ example: scram-sha-256
+ requires_restart: false
+ type: string
+ pg_partman_bgw.interval:
+ description: Sets the time interval to run pg_partman's scheduled tasks
+ example: 3600
+ maximum: 604800
+ minimum: 3600
+ requires_restart: false
+ type: integer
+ pg_partman_bgw.role:
+ description: >-
+ Controls which role to use for pg_partman's scheduled
+ background tasks.
+ example: myrolename
+ maxLength: 64
+ pattern: ^[_A-Za-z0-9][-._A-Za-z0-9]{0,63}$
+ requires_restart: false
+ type: string
+ pg_stat_monitor.pgsm_enable_query_plan:
+ description: Enables or disables query plan monitoring
+ example: false
+ requires_restart: false
+ type: boolean
+ pg_stat_monitor.pgsm_max_buckets:
+ description: 'Sets the maximum number of buckets '
+ example: 10
+ maximum: 10
+ minimum: 1
+ requires_restart: false
+ type: integer
+ pg_stat_statements.track:
+ description: >-
+ Controls which statements are counted. Specify top to
+ track top-level statements (those issued directly by
+ clients), all to also track nested statements (such as
+ statements invoked within functions), or none to disable
+ statement statistics collection. The default value is top.
+ enum:
+ - all
+ - top
+ - none
+ requires_restart: false
+ type: string
+ temp_file_limit:
+ description: PostgreSQL temporary file limit in KiB, -1 for unlimited
+ example: 5000000
+ maximum: 2147483647
+ minimum: -1
+ requires_restart: false
+ type: integer
+ timezone:
+ description: PostgreSQL service timezone
+ example: Europe/Helsinki
+ maxLength: 64
+ pattern: ^[\w/]*$
+ requires_restart: false
+ type: string
+ track_activity_query_size:
+ description: >-
+ Specifies the number of bytes reserved to track the
+ currently executing command for each active session.
+ example: 1024
+ maximum: 10240
+ minimum: 1024
+ requires_restart: false
+ type: integer
+ track_commit_timestamp:
+ description: Record commit time of transactions.
+ enum:
+ - 'off'
+ - 'on'
+ example: 'off'
+ requires_restart: false
+ type: string
+ track_functions:
+ description: Enables tracking of function call counts and time used.
+ enum:
+ - all
+ - pl
+ - none
+ requires_restart: false
+ type: string
+ track_io_timing:
+ description: >-
+ Enables timing of database I/O calls. This parameter is
+ off by default, because it will repeatedly query the
+ operating system for the current time, which may cause
+ significant overhead on some platforms.
+ enum:
+ - 'off'
+ - 'on'
+ example: 'off'
+ requires_restart: false
+ type: string
+ wal_sender_timeout:
+ description: >-
+ Terminate replication connections that are inactive for
+ longer than this amount of time, in milliseconds. Setting
+ this value to zero disables the timeout.
+ example: 60000
+ requires_restart: false
+ type: integer
+ wal_writer_delay:
+ description: >-
+ WAL flush interval in milliseconds. Note that setting this
+ value to lower than the default 200ms may negatively
+ impact performance
+ example: 50
+ maximum: 200
+ minimum: 10
+ requires_restart: false
+ type: integer
+ pg_stat_monitor_enable:
+ description: >-
+ Enable the pg_stat_monitor extension. Enabling this
+ extension will cause the cluster to be restarted.When this
+ extension is enabled, pg_stat_statements results for utility
+ commands are unreliable
+ requires_restart: true
+ type: boolean
+ pglookout:
+ max_failover_replication_time_lag:
+ description: >-
+ Number of seconds of master unavailability before
+ triggering database failover to standby
+ maximum: 999999
+ minimum: 10
+ requires_restart: false
+ type: integer
+ shared_buffers_percentage:
+ description: >-
+ Percentage of total RAM that the database server uses for
+ shared memory buffers. Valid range is 20-60 (float), which
+ corresponds to 20% - 60%. This setting adjusts the
+ shared_buffers configuration value.
+ example: 41.5
+ maximum: 60
+ minimum: 20
+ requires_restart: false
+ type: number
+ work_mem:
+ description: >-
+ Sets the maximum amount of memory to be used by a query
+ operation (such as a sort or hash table) before writing to
+ temporary disk files, in MB. Default is 1MB + 0.075% of
+ total RAM (up to 32MB).
+ example: 4
+ maximum: 1024
+ minimum: 1
+ requires_restart: false
+ type: integer
schema:
- allOf:
- - $ref: '#/components/schemas/PaginationEnvelope'
- - type: object
+ additionalProperties: false
+ description: >-
+ Available [advanced
+ parameters](https://aiven.io/docs/products/postgresql/reference/advanced-params)
+ for a PostgreSQL Managed Database.
+ properties:
+ pg:
+ additionalProperties: false
+ description: Configuration values available for a postgresql.conf.
properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/DatabaseBackup'
+ autovacuum_analyze_scale_factor:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `autovacuum_analyze_scale_factor`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ autovacuum_analyze_threshold:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `autovacuum_analyze_threshold`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ autovacuum_max_workers:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `autovacuum_max_workers`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ autovacuum_naptime:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `autovacuum_naptime`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ autovacuum_vacuum_cost_delay:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `autovacuum_vacuum_cost_delay`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ autovacuum_vacuum_cost_limit:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `autovacuum_vacuum_cost_limit`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ autovacuum_vacuum_scale_factor:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `autovacuum_vacuum_scale_factor`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ autovacuum_vacuum_threshold:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `autovacuum_vacuum_threshold`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ bgwriter_delay:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the `bgwriter_delay`,
+ per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ bgwriter_flush_after:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `bgwriter_flush_after`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ bgwriter_lru_maxpages:
+ additionalProperties: false
+ description: >-
+ Settings available to configure
+ `bgwriter_lru_maxpages`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ bgwriter_lru_multiplier:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `bgwriter_lru_multiplier`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ deadlock_timeout:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `deadlock_timeout`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ default_toast_compression:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `default_toast_compression`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ enum:
+ description: >-
+ Specific values available for use as this
+ parameter.
+ type: string
+ example:
+ description: One of the `enum` values available for use.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ idle_in_transaction_session_timeout:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `idle_in_transaction_session_timeout`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ jit:
+ additionalProperties: false
+ description: >-
+ Parameter used to enable the Just-In-Time (`jit`)
+ compilation, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example boolean value for this parameter.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_files_per_process:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `max_files_per_process`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_locks_per_transaction:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `max_locks_per_transaction`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_logical_replication_workers:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `max_logical_replication_workers`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_parallel_workers:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `max_parallel_workers`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_parallel_workers_per_gather:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `max_parallel_workers_per_gather`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_pred_locks_per_transaction:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `max_pred_locks_per_transaction`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_replication_slots:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `max_replication_slots`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_slot_wal_keep_size:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `max_slot_wal_keep_size`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_stack_depth:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the `max_stack_depth`,
+ per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_standby_archive_delay:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `max_standby_archive_delay`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_standby_streaming_delay:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `max_standby_streaming_delay`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_wal_senders:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the `max_wal_senders`,
+ per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ max_worker_processes:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `max_worker_processes`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ password_encryption:
+ additionalProperties: false
+ description: >-
+ Settings available to configure `password_encryption`,
+ per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ enum:
+ description: >-
+ Specific values available for use as this
+ parameter.
+ type: string
+ example:
+ description: One of the `enum` values available for use.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ pg_partman_bgw.interval:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `pg_partman_bgw.interval`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ pg_partman_bgw.role:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `pg_partman_bgw.role`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: >-
+ An example value for this parameter, using the
+ required `pattern`.
+ type: string
+ maxLength:
+ description: The maximum character length for this parameter.
+ type: integer
+ pattern:
+ description: >-
+ The pattern to follow when defining this
+ parameter.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ pg_stat_monitor.pgsm_enable_query_plan:
+ additionalProperties: false
+ description: >-
+ Parameter used to enable query plan monitoring, per
+ Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example boolean value for this parameter.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ pg_stat_monitor.pgsm_max_buckets:
+ additionalProperties: false
+ description: >-
+ Settings available to configure
+ `pg_stat_monitor.pgsm_max_buckets`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ pg_stat_statements.track:
+ additionalProperties: false
+ description: >-
+ Settings available to configure `password_encryption`,
+ per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ enum:
+ description: >-
+ Specific values available for use as this
+ parameter.
+ type: string
+ example:
+ description: One of the `enum` values available for use.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ items:
+ type: integer
+ type: array
+ type: object
+ temp_file_limit:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the `temp_file_limit`,
+ per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ timezone:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the PostgreSQL service
+ time zone, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: >-
+ An example value for this parameter, using the
+ required `pattern`.
+ type: string
+ maxLength:
+ description: The maximum character length for this parameter.
+ type: integer
+ pattern:
+ description: >-
+ The pattern to follow when defining this
+ parameter.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ track_activity_query_size:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `track_activity_query_size`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ track_commit_timestamp:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `track_commit_timestamp`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ enum:
+ description: >-
+ Specific values available for use as this
+ parameter.
+ type: string
+ example:
+ description: One of the `enum` values available for use.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ track_functions:
+ additionalProperties: false
+ description: >-
+ Settings available to configure `track_functions`, per
+ Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ enum:
+ description: >-
+ Specific values available for use as this
+ parameter.
+ type: string
+ example:
+ description: One of the `enum` values available for use.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ track_io_timing:
+ additionalProperties: false
+ description: >-
+ Settings available to enable `track_io_timing`, per
+ Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ enum:
+ description: >-
+ Specific values available for use as this
+ parameter.
+ type: string
+ example:
+ description: One of the `enum` values available for use.
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ wal_sender_timeout:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `wal_sender_timeout`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ wal_writer_delay:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `wal_writer_delay`, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ type: object
+ pg_stat_monitor_enable:
+ additionalProperties: false
+ description: >-
+ Parameter used to enable the `pg_stat_monitor` extension
+ for a PostgreSQL cluster, per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ example:
+ description: An example boolean value for this parameter.
+ type: string
+ type: string
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a restart
+ of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ pglookout:
+ additionalProperties: false
+ description: >-
+ Parameter used to apply PGLookout settings, per Aiven's
+ specifications.
+ properties:
+ max_failover_replication_time_lag:
+ additionalProperties: false
+ description: >-
+ Settings available to configure the
+ `max_failover_replication_time_lag`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a
+ restart of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ type: object
+ shared_buffers_percentage:
+ additionalProperties: false
+ description: >-
+ Parameters used to set up the `shared_buffers_percentage`,
+ per Aiven's specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a restart
+ of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ work_mem:
+ additionalProperties: false
+ description: >-
+ Parameters used to set up `work_mem`, per Aiven's
+ specifications.
+ properties:
+ description:
+ description: The description for this parameter.
+ type: string
+ example:
+ description: An example value for this parameter.
+ type: integer
+ maximum:
+ description: The maximum value allowed for this parameter.
+ type: integer
+ minimum:
+ description: The minimum value allowed for this parameter.
+ type: integer
+ requires_restart:
+ description: >-
+ Whether a change to this parameter requires a restart
+ of the PostgreSQL database.
+ type: boolean
+ type:
+ description: The format of this object.
+ type: string
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/database-postgresql-config-200.yaml
+ description: PostgreSQL Managed Database advanced parameters.
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/backups
- - lang: CLI
- source: |
- linode-cli databases mysql-backups-list 123
- post:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_only
+ summary: List PostgreSQL Managed Database advanced parameters
tags:
- - 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.
+ - Advanced parameters
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases postgres-config
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: postgres-config-view
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/postgresql-config.yaml
+ path-info: /{apiVersion}/databases/postgresql/config
+ x-linode-cli-command: databases
+ /databases/postgresql/instances:
+ post:
+ description: >-
+ **Provision a PostgreSQL Managed Database**
- Requires `read_write` access to the Database.
- Up to 3 snapshot backups for each Database can be stored at a time. If 3 snapshots have been created for a Database, one must be deleted before another can be made.
+ Use this operation to create a new PostgreSQL Managed 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. If another backup is in progress, it must complete before a new backup can be initiated.
- security:
- - personalAccessToken: []
- - oauth:
- - 'databases:read_write'
+ - Restricted users need the `add_databases` [user
+ grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).
+
+
+ - New instances can take 10 to 15 minutes to deploy.
+
+
+ - When you create a new PostgreSQL Managed Database, our partner
+ [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption)
+ automatically enables disk encryption on each cluster.
+
+
+ - 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 updates, which apply security
+ patches to the underlying operating system of the PostgreSQL Managed
+ Database. Configure the maintenance window for these updates with the
+ [Update a managed PostgreSQL
+ database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance)
+ operation.
+
+
+ - If your database cluster is configured with a single node, downtime
+ occurs during maintenance updates. Adjust the window to match a time
+ that's the least disruptive to your application and users. Also consider
+ upgrading to a [high
+ availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability)
+ plan to avoid any maintenance downtime.
+
+
+ - Major upgrades are optional until the service reaches end of service,
+ and can be done in place.
+
+
+ - A successful request triggers a `database_create`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events).
+
+
+ **Restore a PostgreSQL Managed Database**
+
+
+ Include the `fork` object in the request to target a backed-up database.
+ Your user needs `read_write` access to the target database and its
+ status can be `active`, `degraded`, or `failed`.
+
+
+ > 📘
+
+ >
+
+ > Restoring from a backup creates a second running cluster, which incurs
+ billing. Delete the first cluster after the restore is complete, to
+ avoid this billing.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances
+ operationId: post-databases-postgre-sql-instances
requestBody:
- description: Information about the snapshot backup to create.
content:
application/json:
+ example:
+ allow_list:
+ - 192.0.2.61/24
+ - 192.0.2.124/24
+ cluster_size: 3
+ engine: postgresql/13.2
+ engine_config:
+ pg:
+ autovacuum_analyze_scale_factor: 1
+ autovacuum_analyze_threshold: 2147483647
+ autovacuum_max_workers: 20
+ autovacuum_naptime: 86400
+ autovacuum_vacuum_cost_delay: 100
+ autovacuum_vacuum_cost_limit: 10000
+ autovacuum_vacuum_scale_factor: 1
+ autovacuum_vacuum_threshold: 2147483647
+ bgwriter_delay: 200
+ bgwriter_flush_after: 512
+ bgwriter_lru_maxpages: 100
+ bgwriter_lru_multiplier: 2.5
+ deadlock_timeout: 1000
+ default_toast_compression: lz4
+ idle_in_transaction_session_timeout: 604800000
+ jit: true
+ max_files_per_process: 1024
+ max_locks_per_transaction: 1024
+ max_logical_replication_workers: 64
+ max_parallel_workers: 96
+ max_parallel_workers_per_gather: 96
+ max_pred_locks_per_transaction: 5120
+ max_replication_slots: 64
+ max_slot_wal_keep_size: 1000000
+ max_stack_depth: 2097152
+ max_standby_archive_delay: 1
+ max_standby_streaming_delay: 10
+ max_wal_senders: 20
+ max_worker_processes: 96
+ password_encryption: scram-sha-256
+ pg_partman_bgw.interval: 3600
+ pg_partman_bgw.role: myrolename
+ pg_stat_monitor.pgsm_enable_query_plan: true
+ pg_stat_monitor.pgsm_max_buckets: 10
+ pg_stat_statements.track: all
+ temp_file_limit: 5000000
+ timezone: Europe/Helsinki
+ track_activity_query_size: 1024
+ track_commit_timestamp: true
+ track_functions: 'off'
+ track_io_timing: 'off'
+ wal_sender_timeout: 60000
+ wal_writer_delay: 200
+ pg_stat_monitor_enable: false
+ pglookout:
+ max_failover_replication_time_lag: 10
+ shared_buffers_percentage: 41.5
+ work_mem: 4
+ fork:
+ restore_time: '2024-10-14 19:55:12'
+ source: 176881
+ label: example-db
+ region: us-east
+ ssl_connection: true
+ type: g6-dedicated-2
schema:
- $ref: '#/components/schemas/DatabaseBackupSnapshot'
+ additionalProperties: false
+ description: Managed PostgreSQL Database request object.
+ properties:
+ allow_list:
+ description: >-
+ Controls access to the Managed Database.
+
+
+ - Individually included IP addresses or CIDR ranges can
+ access the Managed Database while all other sources are
+ blocked.
+
+
+ - A standalone value of `0.0.0.0/0` allows all IP addresses
+ access to the Managed Database.
+
+
+ - An empty array (`[]`) blocks all public and private
+ connections to the Managed Database.
+ example:
+ - 203.0.113.1/32
+ - 192.0.1.0/24
+ items:
+ format: ipv4/prefix_length
+ pattern: >-
+ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
+ type: string
+ minItems: 0
+ type: array
+ cluster_size:
+ default: 1
+ description: >-
+ The number of Linode instance nodes deployed to the Managed
+ Database.
+
+ - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes.
+
+ - A `2` node cluster is only available with a dedicated
+ plan. It consists of one primary node and one replica node.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: '{{cluster_size}}'
+ type: integer
+ x-linode-cli-display: 5
+ engine:
+ description: The Managed Database engine in engine/version format.
+ example: '{{engine}}'
+ type: string
+ engine_config:
+ additionalProperties: false
+ description: >-
+ Advanced parameters you can apply to a PostgreSQL Managed
+ Database, via our partner [Aiven's
+ specification](https://aiven.io/docs/products/postgresql/reference/advanced-params).
+ Only include the objects for parameters you want to set in
+ your database. Omit objects for parameters you don't want to
+ define or change.
+
+
+ > 📘
+
+ >
+
+ > Aiven may offer additional parameters in their
+ specification. Currently, only those listed here are
+ supported for use in a PostgreSQL Managed Database. You can
+ also run the [List PostgreSQL Managed Database advanced
+ parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-postgresql-config)
+ operation to see an up-to-date list.
+ properties:
+ pg:
+ additionalProperties: false
+ description: PostgreSQL-specific advanced configuration parameters.
+ properties:
+ autovacuum_analyze_scale_factor:
+ default: 0.2
+ description: >-
+ Specifies a fraction of the table size to add to
+ `autovacuum_analyze_threshold` when deciding whether
+ to trigger an `ANALYZE`.
+ example: 1
+ maximum: 1
+ minimum: 0
+ type: number
+ autovacuum_analyze_threshold:
+ default: 50
+ description: >-
+ Specifies the minimum number of inserted, updated,
+ or deleted tuples needed to trigger an `ANALYZE` in
+ any one table.
+ example: 2147483647
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ autovacuum_max_workers:
+ default: 3
+ description: >-
+ Specifies the maximum number of `autovacuum`
+ processes, other than the `autovacuum` launcher,
+ that may be running at any one time. This parameter
+ can only be set at server start.
+ example: 20
+ maximum: 20
+ minimum: 1
+ type: integer
+ autovacuum_naptime:
+ default: 60
+ description: >-
+ Specifies the minimum delay between `autovacuum`
+ runs on any given database. The delay is measured in
+ seconds.
+ example: 86400
+ maximum: 86400
+ minimum: 1
+ type: integer
+ autovacuum_vacuum_cost_delay:
+ default: 20
+ description: >-
+ Specifies the cost delay value that will be used in
+ automatic `VACUUM` operations. If `-1` is specified,
+ the regular `vacuum_cost_delay` value will be used.
+ example: 100
+ maximum: 100
+ minimum: -1
+ type: integer
+ autovacuum_vacuum_cost_limit:
+ default: -1
+ description: >-
+ Specifies the cost limit value that will be used in
+ automatic `VACUUM` operations. The default of `-1`
+ applies the regular `vacuum_cost_limit` value.
+ example: 10000
+ maximum: 10000
+ minimum: -1
+ type: integer
+ autovacuum_vacuum_scale_factor:
+ default: 0.2
+ description: >-
+ Specifies a fraction of the table size to add to
+ `autovacuum_vacuum_threshold` when deciding whether
+ to trigger a `VACUUM`.
+ example: 1
+ maximum: 1
+ minimum: 0
+ type: number
+ autovacuum_vacuum_threshold:
+ default: 50
+ description: >-
+ Specifies the minimum number of updated or deleted
+ tuples needed to trigger a `VACUUM` in any one
+ table.
+ example: 2147483647
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ bgwriter_delay:
+ default: 200
+ description: >-
+ Specifies the delay between activity rounds for the
+ background writer in milliseconds.
+ example: 200
+ maximum: 10000
+ minimum: 20
+ type: integer
+ bgwriter_flush_after:
+ default: 512
+ description: >-
+ Whenever more than `bgwriter_flush_after` bytes have
+ been written by the background writer, attempt to
+ force the OS to issue these writes to the underlying
+ storage. Specified in kilobytes. A setting of `0`
+ disables forced writeback.
+ example: 512
+ maximum: 2048
+ minimum: 0
+ type: integer
+ bgwriter_lru_maxpages:
+ default: 100
+ description: >-
+ In each round, no more than this many buffers will
+ be written by the background writer. Setting this to
+ `0` disables background writing.
+ example: 100
+ maximum: 1073741823
+ minimum: 0
+ type: integer
+ bgwriter_lru_multiplier:
+ default: 2.5
+ description: >-
+ The average recent need for new buffers is
+ multiplied by bgwriter_lru_multiplier to arrive at
+ an estimate of the number that will be needed during
+ the next round, (up to `bgwriter_lru_maxpages`).
+ `1.0` represents a `\u201cjust` in `time\u201d`
+ policy of writing exactly the number of buffers
+ predicted to be needed. Larger values provide some
+ cushion against spikes in demand, while smaller
+ values intentionally leave writes to be done by
+ server processes.
+ example: 2.5
+ maximum: 10
+ minimum: 0
+ type: number
+ deadlock_timeout:
+ description: >-
+ This is the amount of time, in milliseconds, to wait
+ on a lock before checking to see if there is a
+ deadlock condition.
+ example: 1000
+ maximum: 1800000
+ minimum: 500
+ type: integer
+ default_toast_compression:
+ default: lz4
+ description: >-
+ Specifies the default TOAST compression method for
+ values of compressible columns.
+ enum:
+ - lz4
+ - pglz
+ example: lz4
+ type: string
+ idle_in_transaction_session_timeout:
+ description: >-
+ Time out sessions with open transactions after this
+ number of milliseconds.
+ example: 604800000
+ maximum: 604800000
+ minimum: 0
+ type: integer
+ jit:
+ description: >-
+ Controls system-wide use of Just-in-Time Compilation
+ (JIT).
+ example: true
+ type: boolean
+ max_files_per_process:
+ description: >-
+ PostgreSQL maximum number of files that can be open
+ per process.
+ example: 1024
+ maximum: 4096
+ minimum: 1000
+ type: integer
+ max_locks_per_transaction:
+ description: PostgreSQL maximum locks per transaction.
+ example: 1024
+ maximum: 6400
+ minimum: 64
+ type: integer
+ max_logical_replication_workers:
+ description: >-
+ PostgreSQL maximum logical replication workers,
+ taken from the pool of `max_parallel_workers`.
+ example: 64
+ maximum: 64
+ minimum: 4
+ type: integer
+ max_parallel_workers:
+ description: >-
+ Sets the maximum number of workers that the system
+ can support for parallel queries.
+ example: 96
+ maximum: 96
+ minimum: 0
+ type: integer
+ max_parallel_workers_per_gather:
+ description: >-
+ Sets the maximum number of workers that can be
+ started by a single Gather or Gather Merge node.
+ example: 96
+ maximum: 96
+ minimum: 0
+ type: integer
+ max_pred_locks_per_transaction:
+ description: PostgreSQL maximum predicate locks per transaction.
+ example: 5120
+ maximum: 5120
+ minimum: 64
+ type: integer
+ max_replication_slots:
+ description: PostgreSQL maximum replication slots.
+ example: 64
+ maximum: 64
+ minimum: 8
+ type: integer
+ max_slot_wal_keep_size:
+ default: -1
+ description: >-
+ PostgreSQL maximum write ahead log (WAL) size in MB,
+ reserved for replication slots. A value of `-1`
+ which indicates unlimited. The `wal_keep_size`
+ minimum write ahead log (WAL) size setting takes
+ precedence over this.
+ example: 1000000
+ maximum: 2147483647
+ minimum: -1
+ type: integer
+ max_stack_depth:
+ description: Maximum depth of the stack in bytes.
+ example: 2097152
+ maximum: 6291456
+ minimum: 2097152
+ type: integer
+ max_standby_archive_delay:
+ description: Maximum standby archive delay in milliseconds.
+ example: 1
+ maximum: 43200000
+ minimum: 1
+ type: integer
+ max_standby_streaming_delay:
+ description: Maximum standby streaming delay in milliseconds.
+ example: 10
+ maximum: 43200000
+ minimum: 1
+ type: integer
+ max_wal_senders:
+ description: PostgreSQL maximum write ahead log (WAL) senders.
+ example: 20
+ maximum: 64
+ minimum: 20
+ type: integer
+ max_worker_processes:
+ description: >-
+ Maximum number of background processes that the
+ system can support.
+ example: 96
+ maximum: 96
+ minimum: 8
+ type: integer
+ password_encryption:
+ default: md5
+ description: Chooses the algorithm for encrypting passwords.
+ enum:
+ - scram-sh-256
+ - md5
+ example: scram-sha-256
+ type: string
+ pg_partman_bgw.interval:
+ description: >-
+ Sets the time interval to run `pg_partman` scheduled
+ tasks.
+ example: 3600
+ maximum: 604800
+ minimum: 3600
+ type: integer
+ pg_partman_bgw.role:
+ description: >-
+ Controls which role to use for `pg_partman``
+ scheduled background tasks.
+ example: myrolename
+ type: string
+ pg_stat_monitor.pgsm_enable_query_plan:
+ description: Enables query plan monitoring.
+ example: true
+ type: boolean
+ pg_stat_monitor.pgsm_max_buckets:
+ description: Sets the maximum number of buckets.
+ example: 10
+ maximum: 10
+ minimum: 1
+ type: integer
+ pg_stat_statements.track:
+ default: top
+ description: >-
+ Controls which statements are counted. Specify `top`
+ to track top-level statements that are issued
+ directly by clients, `all` to also track nested
+ statements, such as those invoked within functions,
+ or `none` to disable statement statistics
+ collection.
+ enum:
+ - all
+ - top
+ - none
+ example: all
+ type: string
+ temp_file_limit:
+ description: >-
+ PostgreSQL temporary file limit in KB. Set to `-1`
+ for unlimited.
+ example: 5000000
+ maximum: 2147483647
+ minimum: -1
+ type: integer
+ timezone:
+ description: PostgreSQL service time zone.
+ example: Europe/Helsinki
+ maxLength: 64
+ pattern: ^[\\w/]*$
+ type: string
+ track_activity_query_size:
+ description: >-
+ Specifies the number of bytes reserved to track the
+ currently executing command for each active session.
+ example: 1024
+ maximum: 10240
+ minimum: 1024
+ type: integer
+ track_commit_timestamp:
+ description: Record the commit time of transactions.
+ enum:
+ - 'on'
+ - 'off'
+ example: 'on'
+ type: string
+ track_functions:
+ default: none
+ description: >-
+ Enables tracking of function call counts and time
+ used. Specify `pl` to track only procedural-language
+ functions, `all` to also track SQL and C language
+ functions, or `none` to disable function statistics
+ tracking.
+ enum:
+ - all
+ - pl
+ - none
+ example: all
+ type: string
+ track_io_timing:
+ default: 'off'
+ description: >-
+ Enables timing of database I/O calls. This parameter
+ is `off` by default, because it will repeatedly
+ query the operating system for the current time,
+ which may cause significant overhead on some
+ platforms.
+ enum:
+ - 'on'
+ - 'off'
+ example: 'off'
+ type: string
+ wal_sender_timeout:
+ description: >-
+ Terminate replication connections that are inactive
+ for longer than this amount of time, in
+ milliseconds. Setting this value to `0` disables the
+ timeout.
+ example: 60000
+ maximum: 60000
+ minimum: 0
+ type: integer
+ wal_writer_delay:
+ default: 200
+ description: >-
+ Write ahead log (WAL) flush interval in
+ milliseconds. A value lower than 200 milliseconds
+ may negatively impact performance.
+ example: 200
+ maximum: 200
+ minimum: 10
+ type: integer
+ type: object
+ pg_stat_monitor_enable:
+ description: >-
+ Enable the `pg_stat_monitor` extension. When this
+ extension is enabled, PostgreSQL restarts the cluster
+ it's in. Additionally, `pg_stat_statements` results for
+ utility commands are unreliable.
+ example: false
+ type: boolean
+ pglookout:
+ additionalProperties: false
+ description: Parameter used to apply PGLookout settings.
+ properties:
+ max_failover_replication_time_lag:
+ description: >-
+ Number of seconds of master unavailability before
+ triggering database failover to standby.
+ example: 10
+ maximum: 999999
+ minimum: 10
+ type: integer
+ type: object
+ shared_buffers_percentage:
+ description: >-
+ Percentage of total RAM that the database server uses
+ for shared memory buffers. Valid range is 20-60 (float),
+ which corresponds to 20% - 60%. This setting adjusts the
+ `shared_buffers` configuration value.
+ example: 41.5
+ maximum: 60
+ minimum: 20
+ type: number
+ work_mem:
+ description: >-
+ Sets the maximum amount of memory in MB to be used by a
+ query operation, such as a sort or hash table, before
+ writing to temporary disk files. Default is 1MB + 0.075%
+ of total RAM, up to 32 MB.
+ example: 4
+ maximum: 4
+ minimum: 1
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/database-postgresql-engine-config.yaml
+ fork:
+ additionalProperties: false
+ description: >-
+ Include this object to restore a Managed Database by forking
+ from a backup.
+
+
+ - If you include this object, all other fields are optional.
+
+
+ - Don't include this object if you're creating a new Managed
+ Database.
+ properties:
+ restore_time:
+ description: A specific database timestamp to restore from.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ type: string
+ source:
+ description: >-
+ The unique instance id for the database to fork from.
+ Run the [List Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-instances)
+ operation and store the unique `id` for the target
+ Managed Database.
+ example: 176881
+ type: integer
+ required:
+ - source
+ type: object
+ x-akamai:
+ file-path: schemas/database-restore-fork.yaml
+ label:
+ description: >-
+ __Filterable__ A unique, user-defined string referring to
+ the Managed Database. This string needs to be unique per
+ Managed Database engine type.
+ example: '{{label}}'
+ maxLength: 32
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ region:
+ description: >-
+ __Filterable__ The
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ ID for the Managed Database.
+ example: '{{region}}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ ssl_connection:
+ default: true
+ description: >-
+ Currently required to be `true`. Whether to require SSL
+ credentials to establish a connection to the Managed
+ Database. Run the [Get managed PostgreSQL database
+ credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-credentials)
+ operation for access information.
+ example: '{{ssl_connection}}'
+ type: boolean
+ type:
+ description: >-
+ __Filterable__ The Linode Instance type used by the Managed
+ Database for its nodes.
+ example: '{{type}}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ required:
+ - label
+ - type
+ - engine
+ - region
+ type: object
+ x-akamai:
+ file-path: schemas/database-postgresql-request.yaml
+ required: true
+ x-linode-cli-allowed-defaults:
+ - engine
+ - region
+ - type
responses:
'200':
- description: Database snapshot backup request successful.
content:
application/json:
+ example:
+ allow_list:
+ - 192.0.2.219/24
+ - 192.0.2.5/24
+ cluster_size: 3
+ created: '2022-01-01T00:01:01'
+ encrypted: true
+ engine: postgresql
+ engine_config:
+ pg:
+ autovacuum_analyze_scale_factor: 1
+ autovacuum_analyze_threshold: 2147483647
+ autovacuum_max_workers: 20
+ autovacuum_naptime: 86400
+ autovacuum_vacuum_cost_delay: 100
+ autovacuum_vacuum_cost_limit: 10000
+ autovacuum_vacuum_scale_factor: 1
+ autovacuum_vacuum_threshold: 2147483647
+ bgwriter_delay: 200
+ bgwriter_flush_after: 512
+ bgwriter_lru_maxpages: 100
+ bgwriter_lru_multiplier: 2.5
+ deadlock_timeout: 1000
+ default_toast_compression: lz4
+ idle_in_transaction_session_timeout: 604800000
+ jit: true
+ max_files_per_process: 1024
+ max_locks_per_transaction: 1024
+ max_logical_replication_workers: 64
+ max_parallel_workers: 96
+ max_parallel_workers_per_gather: 96
+ max_pred_locks_per_transaction: 5120
+ max_replication_slots: 64
+ max_slot_wal_keep_size: 1000000
+ max_stack_depth: 2097152
+ max_standby_archive_delay: 1
+ max_standby_streaming_delay: 10
+ max_wal_senders: 20
+ max_worker_processes: 96
+ password_encryption: scram-sha-256
+ pg_partman_bgw.interval: 3600
+ pg_partman_bgw.role: myrolename
+ pg_stat_monitor.pgsm_enable_query_plan: true
+ pg_stat_monitor.pgsm_max_buckets: 10
+ pg_stat_statements.track: all
+ temp_file_limit: 5000000
+ timezone: Europe/Helsinki
+ track_activity_query_size: 1024
+ track_commit_timestamp: true
+ track_functions: 'off'
+ track_io_timing: 'off'
+ wal_sender_timeout: 60000
+ wal_writer_delay: 200
+ pg_stat_monitor_enable: false
+ pglookout:
+ max_failover_replication_time_lag: 10
+ shared_buffers_percentage: 41.5
+ work_mem: 4
+ fork:
+ restore_time: '2024-10-14 19:55:12'
+ source: 176881
+ hosts:
+ primary: lin-0000-000-pgsql-primary.servers.linodedb.net
+ secondary: lin-0000-000-pgsql-primary-private.servers.linodedb.net
+ id: 123
+ label: example-db
+ members:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ oldest_restore_time: '2025-01-01T00:01:01'
+ platform: rdbms-default
+ port: 3306
+ region: us-east
+ ssl_connection: true
+ status: active
+ total_disk_size_gb: 15
+ type: g6-dedicated-2
+ updated: '2025-01-01T00:01:01'
+ updates:
+ day_of_week: 1
+ duration: 3
+ frequency: weekly
+ hour_of_day: 0
+ pending: []
+ used_disk_size_gb: 2
+ version: '13.2'
schema:
+ additionalProperties: false
+ description: Managed PostgreSQL Databases object.
+ properties:
+ allow_list:
+ description: >-
+ Controls access to the Managed Database.
+
+
+ - Individually included IP addresses or CIDR ranges can
+ access the Managed Database while all other sources are
+ blocked.
+
+
+ - A standalone value of `0.0.0.0/0` allows all IP
+ addresses access to the Managed Database.
+
+
+ - An empty array (`[]`) blocks all public and private
+ connections to the Managed Database.
+ example:
+ - 203.0.113.1/32
+ - 192.0.1.0/24
+ items:
+ format: ipv4/prefix_length
+ pattern: >-
+ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
+ type: string
+ minItems: 0
+ type: array
+ cluster_size:
+ default: 1
+ description: >-
+ The number of Linode instance nodes deployed to the
+ Managed Database.
+
+ - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes.
+
+ - A `2` node cluster is only available with a dedicated
+ plan. It consists of one primary node and one replica
+ node.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: 3
+ type: integer
+ x-linode-cli-display: 5
+ created:
+ description: __Read-only__ When this Managed Database was created.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encrypted:
+ default: true
+ description: >-
+ __Read-only__ Whether the Managed Databases is encrypted.
+ Currently required to be `true`.
+ example: true
+ readOnly: true
+ type: boolean
+ engine:
+ description: >-
+ __Filterable__, __Read-only__ The Managed Database engine
+ type.
+ example: postgresql
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ engine_config:
+ additionalProperties: false
+ description: >-
+ Advanced parameters you can apply to a PostgreSQL Managed
+ Database, via our partner [Aiven's
+ specification](https://aiven.io/docs/products/postgresql/reference/advanced-params).
+ Only include the objects for parameters you want to set in
+ your database. Omit objects for parameters you don't want
+ to define or change.
+
+
+ > 📘
+
+ >
+
+ > Aiven may offer additional parameters in their
+ specification. Currently, only those listed here are
+ supported for use in a PostgreSQL Managed Database. You
+ can also run the [List PostgreSQL Managed Database
+ advanced
+ parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-postgresql-config)
+ operation to see an up-to-date list.
+ properties:
+ pg:
+ additionalProperties: false
+ description: PostgreSQL-specific advanced configuration parameters.
+ properties:
+ autovacuum_analyze_scale_factor:
+ default: 0.2
+ description: >-
+ Specifies a fraction of the table size to add to
+ `autovacuum_analyze_threshold` when deciding
+ whether to trigger an `ANALYZE`.
+ example: 1
+ maximum: 1
+ minimum: 0
+ type: number
+ autovacuum_analyze_threshold:
+ default: 50
+ description: >-
+ Specifies the minimum number of inserted, updated,
+ or deleted tuples needed to trigger an `ANALYZE`
+ in any one table.
+ example: 2147483647
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ autovacuum_max_workers:
+ default: 3
+ description: >-
+ Specifies the maximum number of `autovacuum`
+ processes, other than the `autovacuum` launcher,
+ that may be running at any one time. This
+ parameter can only be set at server start.
+ example: 20
+ maximum: 20
+ minimum: 1
+ type: integer
+ autovacuum_naptime:
+ default: 60
+ description: >-
+ Specifies the minimum delay between `autovacuum`
+ runs on any given database. The delay is measured
+ in seconds.
+ example: 86400
+ maximum: 86400
+ minimum: 1
+ type: integer
+ autovacuum_vacuum_cost_delay:
+ default: 20
+ description: >-
+ Specifies the cost delay value that will be used
+ in automatic `VACUUM` operations. If `-1` is
+ specified, the regular `vacuum_cost_delay` value
+ will be used.
+ example: 100
+ maximum: 100
+ minimum: -1
+ type: integer
+ autovacuum_vacuum_cost_limit:
+ default: -1
+ description: >-
+ Specifies the cost limit value that will be used
+ in automatic `VACUUM` operations. The default of
+ `-1` applies the regular `vacuum_cost_limit`
+ value.
+ example: 10000
+ maximum: 10000
+ minimum: -1
+ type: integer
+ autovacuum_vacuum_scale_factor:
+ default: 0.2
+ description: >-
+ Specifies a fraction of the table size to add to
+ `autovacuum_vacuum_threshold` when deciding
+ whether to trigger a `VACUUM`.
+ example: 1
+ maximum: 1
+ minimum: 0
+ type: number
+ autovacuum_vacuum_threshold:
+ default: 50
+ description: >-
+ Specifies the minimum number of updated or deleted
+ tuples needed to trigger a `VACUUM` in any one
+ table.
+ example: 2147483647
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ bgwriter_delay:
+ default: 200
+ description: >-
+ Specifies the delay between activity rounds for
+ the background writer in milliseconds.
+ example: 200
+ maximum: 10000
+ minimum: 20
+ type: integer
+ bgwriter_flush_after:
+ default: 512
+ description: >-
+ Whenever more than `bgwriter_flush_after` bytes
+ have been written by the background writer,
+ attempt to force the OS to issue these writes to
+ the underlying storage. Specified in kilobytes. A
+ setting of `0` disables forced writeback.
+ example: 512
+ maximum: 2048
+ minimum: 0
+ type: integer
+ bgwriter_lru_maxpages:
+ default: 100
+ description: >-
+ In each round, no more than this many buffers will
+ be written by the background writer. Setting this
+ to `0` disables background writing.
+ example: 100
+ maximum: 1073741823
+ minimum: 0
+ type: integer
+ bgwriter_lru_multiplier:
+ default: 2.5
+ description: >-
+ The average recent need for new buffers is
+ multiplied by bgwriter_lru_multiplier to arrive at
+ an estimate of the number that will be needed
+ during the next round, (up to
+ `bgwriter_lru_maxpages`). `1.0` represents a
+ `\u201cjust` in `time\u201d` policy of writing
+ exactly the number of buffers predicted to be
+ needed. Larger values provide some cushion against
+ spikes in demand, while smaller values
+ intentionally leave writes to be done by server
+ processes.
+ example: 2.5
+ maximum: 10
+ minimum: 0
+ type: number
+ deadlock_timeout:
+ description: >-
+ This is the amount of time, in milliseconds, to
+ wait on a lock before checking to see if there is
+ a deadlock condition.
+ example: 1000
+ maximum: 1800000
+ minimum: 500
+ type: integer
+ default_toast_compression:
+ default: lz4
+ description: >-
+ Specifies the default TOAST compression method for
+ values of compressible columns.
+ enum:
+ - lz4
+ - pglz
+ example: lz4
+ type: string
+ idle_in_transaction_session_timeout:
+ description: >-
+ Time out sessions with open transactions after
+ this number of milliseconds.
+ example: 604800000
+ maximum: 604800000
+ minimum: 0
+ type: integer
+ jit:
+ description: >-
+ Controls system-wide use of Just-in-Time
+ Compilation (JIT).
+ example: true
+ type: boolean
+ max_files_per_process:
+ description: >-
+ PostgreSQL maximum number of files that can be
+ open per process.
+ example: 1024
+ maximum: 4096
+ minimum: 1000
+ type: integer
+ max_locks_per_transaction:
+ description: PostgreSQL maximum locks per transaction.
+ example: 1024
+ maximum: 6400
+ minimum: 64
+ type: integer
+ max_logical_replication_workers:
+ description: >-
+ PostgreSQL maximum logical replication workers,
+ taken from the pool of `max_parallel_workers`.
+ example: 64
+ maximum: 64
+ minimum: 4
+ type: integer
+ max_parallel_workers:
+ description: >-
+ Sets the maximum number of workers that the system
+ can support for parallel queries.
+ example: 96
+ maximum: 96
+ minimum: 0
+ type: integer
+ max_parallel_workers_per_gather:
+ description: >-
+ Sets the maximum number of workers that can be
+ started by a single Gather or Gather Merge node.
+ example: 96
+ maximum: 96
+ minimum: 0
+ type: integer
+ max_pred_locks_per_transaction:
+ description: >-
+ PostgreSQL maximum predicate locks per
+ transaction.
+ example: 5120
+ maximum: 5120
+ minimum: 64
+ type: integer
+ max_replication_slots:
+ description: PostgreSQL maximum replication slots.
+ example: 64
+ maximum: 64
+ minimum: 8
+ type: integer
+ max_slot_wal_keep_size:
+ default: -1
+ description: >-
+ PostgreSQL maximum write ahead log (WAL) size in
+ MB, reserved for replication slots. A value of
+ `-1` which indicates unlimited. The
+ `wal_keep_size` minimum write ahead log (WAL) size
+ setting takes precedence over this.
+ example: 1000000
+ maximum: 2147483647
+ minimum: -1
+ type: integer
+ max_stack_depth:
+ description: Maximum depth of the stack in bytes.
+ example: 2097152
+ maximum: 6291456
+ minimum: 2097152
+ type: integer
+ max_standby_archive_delay:
+ description: Maximum standby archive delay in milliseconds.
+ example: 1
+ maximum: 43200000
+ minimum: 1
+ type: integer
+ max_standby_streaming_delay:
+ description: Maximum standby streaming delay in milliseconds.
+ example: 10
+ maximum: 43200000
+ minimum: 1
+ type: integer
+ max_wal_senders:
+ description: PostgreSQL maximum write ahead log (WAL) senders.
+ example: 20
+ maximum: 64
+ minimum: 20
+ type: integer
+ max_worker_processes:
+ description: >-
+ Maximum number of background processes that the
+ system can support.
+ example: 96
+ maximum: 96
+ minimum: 8
+ type: integer
+ password_encryption:
+ default: md5
+ description: Chooses the algorithm for encrypting passwords.
+ enum:
+ - scram-sh-256
+ - md5
+ example: scram-sha-256
+ type: string
+ pg_partman_bgw.interval:
+ description: >-
+ Sets the time interval to run `pg_partman`
+ scheduled tasks.
+ example: 3600
+ maximum: 604800
+ minimum: 3600
+ type: integer
+ pg_partman_bgw.role:
+ description: >-
+ Controls which role to use for `pg_partman``
+ scheduled background tasks.
+ example: myrolename
+ type: string
+ pg_stat_monitor.pgsm_enable_query_plan:
+ description: Enables query plan monitoring.
+ example: true
+ type: boolean
+ pg_stat_monitor.pgsm_max_buckets:
+ description: Sets the maximum number of buckets.
+ example: 10
+ maximum: 10
+ minimum: 1
+ type: integer
+ pg_stat_statements.track:
+ default: top
+ description: >-
+ Controls which statements are counted. Specify
+ `top` to track top-level statements that are
+ issued directly by clients, `all` to also track
+ nested statements, such as those invoked within
+ functions, or `none` to disable statement
+ statistics collection.
+ enum:
+ - all
+ - top
+ - none
+ example: all
+ type: string
+ temp_file_limit:
+ description: >-
+ PostgreSQL temporary file limit in KB. Set to `-1`
+ for unlimited.
+ example: 5000000
+ maximum: 2147483647
+ minimum: -1
+ type: integer
+ timezone:
+ description: PostgreSQL service time zone.
+ example: Europe/Helsinki
+ maxLength: 64
+ pattern: ^[\\w/]*$
+ type: string
+ track_activity_query_size:
+ description: >-
+ Specifies the number of bytes reserved to track
+ the currently executing command for each active
+ session.
+ example: 1024
+ maximum: 10240
+ minimum: 1024
+ type: integer
+ track_commit_timestamp:
+ description: Record the commit time of transactions.
+ enum:
+ - 'on'
+ - 'off'
+ example: 'on'
+ type: string
+ track_functions:
+ default: none
+ description: >-
+ Enables tracking of function call counts and time
+ used. Specify `pl` to track only
+ procedural-language functions, `all` to also track
+ SQL and C language functions, or `none` to disable
+ function statistics tracking.
+ enum:
+ - all
+ - pl
+ - none
+ example: all
+ type: string
+ track_io_timing:
+ default: 'off'
+ description: >-
+ Enables timing of database I/O calls. This
+ parameter is `off` by default, because it will
+ repeatedly query the operating system for the
+ current time, which may cause significant overhead
+ on some platforms.
+ enum:
+ - 'on'
+ - 'off'
+ example: 'off'
+ type: string
+ wal_sender_timeout:
+ description: >-
+ Terminate replication connections that are
+ inactive for longer than this amount of time, in
+ milliseconds. Setting this value to `0` disables
+ the timeout.
+ example: 60000
+ maximum: 60000
+ minimum: 0
+ type: integer
+ wal_writer_delay:
+ default: 200
+ description: >-
+ Write ahead log (WAL) flush interval in
+ milliseconds. A value lower than 200 milliseconds
+ may negatively impact performance.
+ example: 200
+ maximum: 200
+ minimum: 10
+ type: integer
+ type: object
+ pg_stat_monitor_enable:
+ description: >-
+ Enable the `pg_stat_monitor` extension. When this
+ extension is enabled, PostgreSQL restarts the cluster
+ it's in. Additionally, `pg_stat_statements` results
+ for utility commands are unreliable.
+ example: false
+ type: boolean
+ pglookout:
+ additionalProperties: false
+ description: Parameter used to apply PGLookout settings.
+ properties:
+ max_failover_replication_time_lag:
+ description: >-
+ Number of seconds of master unavailability before
+ triggering database failover to standby.
+ example: 10
+ maximum: 999999
+ minimum: 10
+ type: integer
+ type: object
+ shared_buffers_percentage:
+ description: >-
+ Percentage of total RAM that the database server uses
+ for shared memory buffers. Valid range is 20-60
+ (float), which corresponds to 20% - 60%. This setting
+ adjusts the `shared_buffers` configuration value.
+ example: 41.5
+ maximum: 60
+ minimum: 20
+ type: number
+ work_mem:
+ description: >-
+ Sets the maximum amount of memory in MB to be used by
+ a query operation, such as a sort or hash table,
+ before writing to temporary disk files. Default is 1MB
+ + 0.075% of total RAM, up to 32 MB.
+ example: 4
+ maximum: 4
+ minimum: 1
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/database-postgresql-engine-config.yaml
+ x-linode-cli-display: 7
+ fork:
+ additionalProperties: false
+ description: >-
+ Details on the database that was the target of the fork.
+ This only exists if the database was restored by creating
+ a fork from another
+ [MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances)
+ or
+ [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)
+ database.
+ properties:
+ restore_time:
+ description: >-
+ The database timestamp from which it was restored.
+ This is _not_ when the fork was created.
+ example: '2024-10-14 19:55:12'
+ format: date-time
+ type: string
+ source:
+ description: The instance id of the database that was forked from.
+ example: 176881
+ type: integer
+ type: object
+ hosts:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The primary and secondary hosts for the
+ Managed Database. These are assigned after provisioning is
+ complete.
+ properties:
+ primary:
+ description: The primary host for the Managed Database.
+ example: lin-0000-000-pgsql-primary.servers.linodedb.net
+ nullable: true
+ type: string
+ secondary:
+ 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.
+
+
+ > 📘
+
+ >
+
+ > The secondary hostname is publicly viewable and
+ accessible.
+ example: >-
+ lin-0000-000-pgsql-primary-private.servers.linodedb.net
+ nullable: true
+ type: string
+ readOnly: true
+ type: object
+ id:
+ description: >-
+ __Read-only__ A unique ID that can be used to identify and
+ reference the Managed Database.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ A unique, user-defined string referring to
+ the Managed Database. This string needs to be unique per
+ Managed Database engine type.
+ example: example-db
+ maxLength: 32
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ members:
+ description: >-
+ __Read-only__ A mapping between IP addresses and strings
+ designating them as `primary` or `failover`.
+ example:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ readOnly: true
+ type: object
+ platform:
+ description: >-
+ __Filterable__, __Read-only__ The back-end platform for
+ relational databases used by the service.
+ enum:
+ - rdbms-legacy
+ - rdbms-default
+ example: rdbms-default
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ port:
+ description: __Read-only__ The access port for this Managed Database.
+ example: 3306
+ readOnly: true
+ type: integer
+ region:
+ description: >-
+ __Filterable__ The
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ ID for the Managed Database.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ ssl_connection:
+ default: true
+ description: >-
+ Currently required to be `true`. Whether to require SSL
+ credentials to establish a connection to the Managed
+ Database.
+
+
+ Run the [Get managed PostgreSQL database
+ credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-credentials)
+ operation for access information.
+ example: true
+ type: boolean
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The operating status of the
+ Managed Database.
+ enum:
+ - provisioning
+ - active
+ - suspending
+ - suspended
+ - resuming
+ - failed
+ - degraded
+ - updating
+ - resizing
+ example: active
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ active: green
+ default_: white
+ degraded: red
+ failed: red
+ provisioning: yellow
+ restoring: yellow
+ resuming: yellow
+ x-linode-cli-display: 100
+ x-linode-filterable: true
+ total_disk_size_gb:
+ description: __Read-only__ The total disk size of the database, in GB.
+ example: 15
+ readOnly: true
+ type: integer
+ type:
+ description: >-
+ __Filterable__ The Linode Instance type used by the
+ Managed Database for its nodes.
+ example: g6-dedicated-2
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Managed Database was last updated.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ updates:
+ additionalProperties: false
+ description: >-
+ Configuration settings for automated patch update
+ maintenance for the Managed Database.
+ properties:
+ day_of_week:
+ description: >-
+ The numeric reference for the day of the week to
+ perform maintenance. `1` is Monday, `2` is Tuesday,
+ through to `7` which is Sunday.
+ example: 1
+ maximum: 7
+ minimum: 1
+ type: integer
+ duration:
+ description: The maximum maintenance window time in hours.
+ example: 3
+ maximum: 3
+ minimum: 1
+ type: integer
+ frequency:
+ default: weekly
+ description: >-
+ How frequently maintenance occurs. Currently can only
+ be `weekly`.
+ enum:
+ - weekly
+ example: weekly
+ type: string
+ hour_of_day:
+ description: The hour to begin maintenance based in UTC time.
+ example: 0
+ maximum: 23
+ minimum: 0
+ type: integer
+ pending:
+ description: __Read-only__ An array of pending updates.
+ example: []
+ items:
+ additionalProperties: false
+ description: A planned maintenance update.
+ properties:
+ deadline:
+ description: >-
+ The time when a mandatory update needs to be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ description:
+ description: A description of the update.
+ example: TimescaleDB version 2.17.1 is available.
+ type: string
+ planned_for:
+ description: >-
+ The date and time a maintenance update will be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ type: object
+ minItems: 0
+ readOnly: true
+ type: array
+ type: object
+ used_disk_size_gb:
+ description: >-
+ __Read-only__ The amount of space currently in use in the
+ database, in GB.
+ example: 2
+ readOnly: true
+ type: integer
+ version:
+ description: __Filterable__ The Managed Database engine version.
+ example: '13.2'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
type: object
+ x-akamai:
+ file-path: schemas/database-postgresql-response.yaml
+ description: A new PostgreSQL Managed Database is provisioning.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -H "Content-Type: application/json" \
- -X POST -d '{
- "label": "snapshot1",
- "target": "primary"
- }' \
- https://api.linode.com/v4/databases/mysql/instances/123/backups/
- - lang: CLI
- source: |
- linode-cli databases mysql-backup-snapshot 123 \
- --label snapshot1 \
- --target primary
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MySQL Database.
- required: true
- schema:
- type: integer
- '/databases/mysql/instances/{instanceId}/backups/{backupId}':
- 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: |
- Display information for a single backup for an accessible Managed MySQL Database.
-
- The Database must not be provisioning to perform this command.
- security:
- - personalAccessToken: []
- - oauth:
- - 'databases:read_write'
- responses:
- '200':
- description: Returns a single backup for the Managed MySQL Database.
content:
application/json:
schema:
- $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/databases/mysql/instances/123/backups/456
- - lang: CLI
- source: |
- linode-cli databases mysql-backup-view 123 456
- 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
- delete:
- tags:
- - 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
- 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.
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'databases:read_write'
- responses:
- '200':
- description: Request to delete Database 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 DELETE \
- https://api.linode.com/v4/databases/mysql/instances/123/backups/456
- - lang: CLI
- source: |
- linode-cli databases mysql-backup-delete 123 456
- 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
- '/databases/mysql/instances/{instanceId}/backups/{backupId}/restore':
- post:
+ - databases:read_write
+ summary: Create or restore a PostgreSQL Managed Database
tags:
- 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.
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli databases postgresql-create \
+ --label example-db \
+ --region us-east \
+ --type g6-dedicated-2 \
+ --cluster_size 3 \
+ --engine postgresql/13.2 \
+ --engine_config.shared_buffers_percentage 41.5 \
+ --engine_config.pg.autovacuum_analyze_scale_factor 0.0 \
+ --engine_config.pg.autovacuum_vacuum_cost_delay 60 \
+ --engine_config.pg.pg_partman_bgw.interval 3600 \
+ --engine_config.pg.pg_partman_bgw.role myrolename \
+ --engine_config.pglookout.max_failover_replication_time_lag 60 \
+ --ssl_connection true \
+ --allow_list 203.0.113.1 \
+ --allow_list 192.0.1.0/24
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: postgresql-create
+ x-linode-grant: add_databases
+ get:
+ description: >-
+ Display all accessible PostgreSQL Managed Databases.
- Requires `read_write` access to the Database.
- The Database must have an `active` status to perform this command.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- **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:
- - '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
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances
+ operationId: get-databases-postgre-sql-instances
parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MySQL Database.
- required: true
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
schema:
+ default: 1
+ example: 6
+ minimum: 1
type: integer
- - name: backupId
- in: path
- description: The ID of the Managed MySQL Database backup.
- required: true
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
type: integer
- '/databases/mysql/instances/{instanceId}/credentials':
- 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'
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Managed Database root username and password.
content:
application/json:
+ example:
+ data:
+ - allow_list:
+ - 192.0.2.122/24
+ - 192.0.2.133/24
+ cluster_size: 3
+ created: '2022-01-01T00:01:01'
+ encrypted: true
+ engine: postgresql
+ engine_config:
+ pg:
+ autovacuum_analyze_scale_factor: 1
+ autovacuum_analyze_threshold: 2147483647
+ autovacuum_max_workers: 20
+ autovacuum_naptime: 86400
+ autovacuum_vacuum_cost_delay: 100
+ autovacuum_vacuum_cost_limit: 10000
+ autovacuum_vacuum_scale_factor: 1
+ autovacuum_vacuum_threshold: 2147483647
+ bgwriter_delay: 200
+ bgwriter_flush_after: 512
+ bgwriter_lru_maxpages: 100
+ bgwriter_lru_multiplier: 2.5
+ deadlock_timeout: 1000
+ default_toast_compression: lz4
+ idle_in_transaction_session_timeout: 604800000
+ jit: true
+ max_files_per_process: 1024
+ max_locks_per_transaction: 1024
+ max_logical_replication_workers: 64
+ max_parallel_workers: 96
+ max_parallel_workers_per_gather: 96
+ max_pred_locks_per_transaction: 5120
+ max_replication_slots: 64
+ max_slot_wal_keep_size: 1000000
+ max_stack_depth: 2097152
+ max_standby_archive_delay: 1
+ max_standby_streaming_delay: 10
+ max_wal_senders: 20
+ max_worker_processes: 96
+ password_encryption: scram-sha-256
+ pg_partman_bgw.interval: 3600
+ pg_partman_bgw.role: myrolename
+ pg_stat_monitor.pgsm_enable_query_plan: true
+ pg_stat_monitor.pgsm_max_buckets: 10
+ pg_stat_statements.track: all
+ temp_file_limit: 5000000
+ timezone: Europe/Helsinki
+ track_activity_query_size: 1024
+ track_commit_timestamp: true
+ track_functions: 'off'
+ track_io_timing: 'off'
+ wal_sender_timeout: 60000
+ wal_writer_delay: 200
+ pg_stat_monitor_enable: false
+ pglookout:
+ max_failover_replication_time_lag: 10
+ shared_buffers_percentage: 41.5
+ work_mem: 4
+ fork:
+ restore_time: '2024-10-14T19:55:12'
+ source: '176881'
+ hosts:
+ primary: lin-0000-000-pgsql-primary.servers.linodedb.net
+ secondary: lin-0000-000-pgsql-primary-private.servers.linodedb.net
+ id: 123
+ label: example-db
+ members:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ 69.164.209.80: failover
+ oldest_restore_time: '2024-10-03T20:48:05'
+ platform: rdbms-default
+ port: 3306
+ region: us-east
+ ssl_connection: true
+ status: active
+ total_disk_size_gb: 15
+ type: g6-dedicated-2
+ updated: '2022-01-01T00:01:01'
+ updates:
+ day_of_week: 1
+ duration: 3
+ frequency: weekly
+ hour_of_day: 0
+ pending: []
+ used_disk_size_gb: 2
+ version: '13.2'
+ page: 1
+ pages: 1
+ results: 1
schema:
- $ref: '#/components/schemas/DatabaseCredentials'
+ allOf:
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: Managed PostgreSQL Databases object.
+ properties:
+ allow_list:
+ description: >-
+ Controls access to the Managed Database.
+
+
+ - Individually included IP addresses or CIDR
+ ranges can access the Managed Database while all
+ other sources are blocked.
+
+
+ - A standalone value of `0.0.0.0/0` allows all
+ IP addresses access to the Managed Database.
+
+
+ - An empty array (`[]`) blocks all public and
+ private connections to the Managed Database.
+ example:
+ - 203.0.113.1/32
+ - 192.0.1.0/24
+ items:
+ format: ipv4/prefix_length
+ pattern: >-
+ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
+ type: string
+ minItems: 0
+ type: array
+ cluster_size:
+ default: 1
+ description: >-
+ The number of Linode instance nodes deployed to
+ the Managed Database.
+
+ - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes.
+
+ - A `2` node cluster is only available with a
+ dedicated plan. It consists of one primary node
+ and one replica node.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: 3
+ type: integer
+ x-linode-cli-display: 5
+ created:
+ description: >-
+ __Read-only__ When this Managed Database was
+ created.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encrypted:
+ default: true
+ description: >-
+ __Read-only__ Whether the Managed Databases is
+ encrypted. Currently required to be `true`.
+ example: true
+ readOnly: true
+ type: boolean
+ engine:
+ description: >-
+ __Filterable__, __Read-only__ The Managed
+ Database engine type.
+ example: postgresql
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ engine_config:
+ additionalProperties: false
+ description: >-
+ Advanced parameters you can apply to a
+ PostgreSQL Managed Database, via our partner
+ [Aiven's
+ specification](https://aiven.io/docs/products/postgresql/reference/advanced-params).
+ Only include the objects for parameters you want
+ to set in your database. Omit objects for
+ parameters you don't want to define or change.
+
+
+ > 📘
+
+ >
+
+ > Aiven may offer additional parameters in their
+ specification. Currently, only those listed here
+ are supported for use in a PostgreSQL Managed
+ Database. You can also run the [List PostgreSQL
+ Managed Database advanced
+ parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-postgresql-config)
+ operation to see an up-to-date list.
+ properties:
+ pg:
+ additionalProperties: false
+ description: >-
+ PostgreSQL-specific advanced configuration
+ parameters.
+ properties:
+ autovacuum_analyze_scale_factor:
+ default: 0.2
+ description: >-
+ Specifies a fraction of the table size
+ to add to `autovacuum_analyze_threshold`
+ when deciding whether to trigger an
+ `ANALYZE`.
+ example: 1
+ maximum: 1
+ minimum: 0
+ type: number
+ autovacuum_analyze_threshold:
+ default: 50
+ description: >-
+ Specifies the minimum number of
+ inserted, updated, or deleted tuples
+ needed to trigger an `ANALYZE` in any
+ one table.
+ example: 2147483647
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ autovacuum_max_workers:
+ default: 3
+ description: >-
+ Specifies the maximum number of
+ `autovacuum` processes, other than the
+ `autovacuum` launcher, that may be
+ running at any one time. This parameter
+ can only be set at server start.
+ example: 20
+ maximum: 20
+ minimum: 1
+ type: integer
+ autovacuum_naptime:
+ default: 60
+ description: >-
+ Specifies the minimum delay between
+ `autovacuum` runs on any given database.
+ The delay is measured in seconds.
+ example: 86400
+ maximum: 86400
+ minimum: 1
+ type: integer
+ autovacuum_vacuum_cost_delay:
+ default: 20
+ description: >-
+ Specifies the cost delay value that will
+ be used in automatic `VACUUM`
+ operations. If `-1` is specified, the
+ regular `vacuum_cost_delay` value will
+ be used.
+ example: 100
+ maximum: 100
+ minimum: -1
+ type: integer
+ autovacuum_vacuum_cost_limit:
+ default: -1
+ description: >-
+ Specifies the cost limit value that will
+ be used in automatic `VACUUM`
+ operations. The default of `-1` applies
+ the regular `vacuum_cost_limit` value.
+ example: 10000
+ maximum: 10000
+ minimum: -1
+ type: integer
+ autovacuum_vacuum_scale_factor:
+ default: 0.2
+ description: >-
+ Specifies a fraction of the table size
+ to add to `autovacuum_vacuum_threshold`
+ when deciding whether to trigger a
+ `VACUUM`.
+ example: 1
+ maximum: 1
+ minimum: 0
+ type: number
+ autovacuum_vacuum_threshold:
+ default: 50
+ description: >-
+ Specifies the minimum number of updated
+ or deleted tuples needed to trigger a
+ `VACUUM` in any one table.
+ example: 2147483647
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ bgwriter_delay:
+ default: 200
+ description: >-
+ Specifies the delay between activity
+ rounds for the background writer in
+ milliseconds.
+ example: 200
+ maximum: 10000
+ minimum: 20
+ type: integer
+ bgwriter_flush_after:
+ default: 512
+ description: >-
+ Whenever more than
+ `bgwriter_flush_after` bytes have been
+ written by the background writer,
+ attempt to force the OS to issue these
+ writes to the underlying storage.
+ Specified in kilobytes. A setting of `0`
+ disables forced writeback.
+ example: 512
+ maximum: 2048
+ minimum: 0
+ type: integer
+ bgwriter_lru_maxpages:
+ default: 100
+ description: >-
+ In each round, no more than this many
+ buffers will be written by the
+ background writer. Setting this to `0`
+ disables background writing.
+ example: 100
+ maximum: 1073741823
+ minimum: 0
+ type: integer
+ bgwriter_lru_multiplier:
+ default: 2.5
+ description: >-
+ The average recent need for new buffers
+ is multiplied by bgwriter_lru_multiplier
+ to arrive at an estimate of the number
+ that will be needed during the next
+ round, (up to `bgwriter_lru_maxpages`).
+ `1.0` represents a `\u201cjust` in
+ `time\u201d` policy of writing exactly
+ the number of buffers predicted to be
+ needed. Larger values provide some
+ cushion against spikes in demand, while
+ smaller values intentionally leave
+ writes to be done by server processes.
+ example: 2.5
+ maximum: 10
+ minimum: 0
+ type: number
+ deadlock_timeout:
+ description: >-
+ This is the amount of time, in
+ milliseconds, to wait on a lock before
+ checking to see if there is a deadlock
+ condition.
+ example: 1000
+ maximum: 1800000
+ minimum: 500
+ type: integer
+ default_toast_compression:
+ default: lz4
+ description: >-
+ Specifies the default TOAST compression
+ method for values of compressible
+ columns.
+ enum:
+ - lz4
+ - pglz
+ example: lz4
+ type: string
+ idle_in_transaction_session_timeout:
+ description: >-
+ Time out sessions with open transactions
+ after this number of milliseconds.
+ example: 604800000
+ maximum: 604800000
+ minimum: 0
+ type: integer
+ jit:
+ description: >-
+ Controls system-wide use of Just-in-Time
+ Compilation (JIT).
+ example: true
+ type: boolean
+ max_files_per_process:
+ description: >-
+ PostgreSQL maximum number of files that
+ can be open per process.
+ example: 1024
+ maximum: 4096
+ minimum: 1000
+ type: integer
+ max_locks_per_transaction:
+ description: >-
+ PostgreSQL maximum locks per
+ transaction.
+ example: 1024
+ maximum: 6400
+ minimum: 64
+ type: integer
+ max_logical_replication_workers:
+ description: >-
+ PostgreSQL maximum logical replication
+ workers, taken from the pool of
+ `max_parallel_workers`.
+ example: 64
+ maximum: 64
+ minimum: 4
+ type: integer
+ max_parallel_workers:
+ description: >-
+ Sets the maximum number of workers that
+ the system can support for parallel
+ queries.
+ example: 96
+ maximum: 96
+ minimum: 0
+ type: integer
+ max_parallel_workers_per_gather:
+ description: >-
+ Sets the maximum number of workers that
+ can be started by a single Gather or
+ Gather Merge node.
+ example: 96
+ maximum: 96
+ minimum: 0
+ type: integer
+ max_pred_locks_per_transaction:
+ description: >-
+ PostgreSQL maximum predicate locks per
+ transaction.
+ example: 5120
+ maximum: 5120
+ minimum: 64
+ type: integer
+ max_replication_slots:
+ description: PostgreSQL maximum replication slots.
+ example: 64
+ maximum: 64
+ minimum: 8
+ type: integer
+ max_slot_wal_keep_size:
+ default: -1
+ description: >-
+ PostgreSQL maximum write ahead log (WAL)
+ size in MB, reserved for replication
+ slots. A value of `-1` which indicates
+ unlimited. The `wal_keep_size` minimum
+ write ahead log (WAL) size setting takes
+ precedence over this.
+ example: 1000000
+ maximum: 2147483647
+ minimum: -1
+ type: integer
+ max_stack_depth:
+ description: Maximum depth of the stack in bytes.
+ example: 2097152
+ maximum: 6291456
+ minimum: 2097152
+ type: integer
+ max_standby_archive_delay:
+ description: >-
+ Maximum standby archive delay in
+ milliseconds.
+ example: 1
+ maximum: 43200000
+ minimum: 1
+ type: integer
+ max_standby_streaming_delay:
+ description: >-
+ Maximum standby streaming delay in
+ milliseconds.
+ example: 10
+ maximum: 43200000
+ minimum: 1
+ type: integer
+ max_wal_senders:
+ description: >-
+ PostgreSQL maximum write ahead log (WAL)
+ senders.
+ example: 20
+ maximum: 64
+ minimum: 20
+ type: integer
+ max_worker_processes:
+ description: >-
+ Maximum number of background processes
+ that the system can support.
+ example: 96
+ maximum: 96
+ minimum: 8
+ type: integer
+ password_encryption:
+ default: md5
+ description: >-
+ Chooses the algorithm for encrypting
+ passwords.
+ enum:
+ - scram-sh-256
+ - md5
+ example: scram-sha-256
+ type: string
+ pg_partman_bgw.interval:
+ description: >-
+ Sets the time interval to run
+ `pg_partman` scheduled tasks.
+ example: 3600
+ maximum: 604800
+ minimum: 3600
+ type: integer
+ pg_partman_bgw.role:
+ description: >-
+ Controls which role to use for
+ `pg_partman`` scheduled background
+ tasks.
+ example: myrolename
+ type: string
+ pg_stat_monitor.pgsm_enable_query_plan:
+ description: Enables query plan monitoring.
+ example: true
+ type: boolean
+ pg_stat_monitor.pgsm_max_buckets:
+ description: Sets the maximum number of buckets.
+ example: 10
+ maximum: 10
+ minimum: 1
+ type: integer
+ pg_stat_statements.track:
+ default: top
+ description: >-
+ Controls which statements are counted.
+ Specify `top` to track top-level
+ statements that are issued directly by
+ clients, `all` to also track nested
+ statements, such as those invoked within
+ functions, or `none` to disable
+ statement statistics collection.
+ enum:
+ - all
+ - top
+ - none
+ example: all
+ type: string
+ temp_file_limit:
+ description: >-
+ PostgreSQL temporary file limit in KB.
+ Set to `-1` for unlimited.
+ example: 5000000
+ maximum: 2147483647
+ minimum: -1
+ type: integer
+ timezone:
+ description: PostgreSQL service time zone.
+ example: Europe/Helsinki
+ maxLength: 64
+ pattern: ^[\\w/]*$
+ type: string
+ track_activity_query_size:
+ description: >-
+ Specifies the number of bytes reserved
+ to track the currently executing command
+ for each active session.
+ example: 1024
+ maximum: 10240
+ minimum: 1024
+ type: integer
+ track_commit_timestamp:
+ description: Record the commit time of transactions.
+ enum:
+ - 'on'
+ - 'off'
+ example: 'on'
+ type: string
+ track_functions:
+ default: none
+ description: >-
+ Enables tracking of function call counts
+ and time used. Specify `pl` to track
+ only procedural-language functions,
+ `all` to also track SQL and C language
+ functions, or `none` to disable function
+ statistics tracking.
+ enum:
+ - all
+ - pl
+ - none
+ example: all
+ type: string
+ track_io_timing:
+ default: 'off'
+ description: >-
+ Enables timing of database I/O calls.
+ This parameter is `off` by default,
+ because it will repeatedly query the
+ operating system for the current time,
+ which may cause significant overhead on
+ some platforms.
+ enum:
+ - 'on'
+ - 'off'
+ example: 'off'
+ type: string
+ wal_sender_timeout:
+ description: >-
+ Terminate replication connections that
+ are inactive for longer than this amount
+ of time, in milliseconds. Setting this
+ value to `0` disables the timeout.
+ example: 60000
+ maximum: 60000
+ minimum: 0
+ type: integer
+ wal_writer_delay:
+ default: 200
+ description: >-
+ Write ahead log (WAL) flush interval in
+ milliseconds. A value lower than 200
+ milliseconds may negatively impact
+ performance.
+ example: 200
+ maximum: 200
+ minimum: 10
+ type: integer
+ type: object
+ pg_stat_monitor_enable:
+ description: >-
+ Enable the `pg_stat_monitor` extension. When
+ this extension is enabled, PostgreSQL
+ restarts the cluster it's in. Additionally,
+ `pg_stat_statements` results for utility
+ commands are unreliable.
+ example: false
+ type: boolean
+ pglookout:
+ additionalProperties: false
+ description: Parameter used to apply PGLookout settings.
+ properties:
+ max_failover_replication_time_lag:
+ description: >-
+ Number of seconds of master
+ unavailability before triggering
+ database failover to standby.
+ example: 10
+ maximum: 999999
+ minimum: 10
+ type: integer
+ type: object
+ shared_buffers_percentage:
+ description: >-
+ Percentage of total RAM that the database
+ server uses for shared memory buffers. Valid
+ range is 20-60 (float), which corresponds to
+ 20% - 60%. This setting adjusts the
+ `shared_buffers` configuration value.
+ example: 41.5
+ maximum: 60
+ minimum: 20
+ type: number
+ work_mem:
+ description: >-
+ Sets the maximum amount of memory in MB to
+ be used by a query operation, such as a sort
+ or hash table, before writing to temporary
+ disk files. Default is 1MB + 0.075% of total
+ RAM, up to 32 MB.
+ example: 4
+ maximum: 4
+ minimum: 1
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/database-postgresql-engine-config.yaml
+ x-linode-cli-display: 7
+ fork:
+ additionalProperties: false
+ description: >-
+ Details on the database that was the target of
+ the fork. This only exists if the database was
+ restored by creating a fork from another
+ [MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances)
+ or
+ [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)
+ database.
+ properties:
+ restore_time:
+ description: >-
+ The database timestamp from which it was
+ restored. This is _not_ when the fork was
+ created.
+ example: '2024-10-14 19:55:12'
+ format: date-time
+ type: string
+ source:
+ description: >-
+ The instance id of the database that was
+ forked from.
+ example: 176881
+ type: integer
+ type: object
+ hosts:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The primary and secondary hosts
+ for the Managed Database. These are assigned
+ after provisioning is complete.
+ properties:
+ primary:
+ description: The primary host for the Managed Database.
+ example: >-
+ lin-0000-000-pgsql-primary.servers.linodedb.net
+ nullable: true
+ type: string
+ secondary:
+ 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.
+
+
+ > 📘
+
+ >
+
+ > The secondary hostname is publicly visible
+ and accessible.
+ example: >-
+ lin-0000-000-pgsql-primary-private.servers.linodedb.net
+ nullable: true
+ type: string
+ readOnly: true
+ type: object
+ id:
+ description: >-
+ __Read-only__ A unique ID that can be used to
+ identify and reference the Managed Database.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ A unique, user-defined string
+ referring to the Managed Database. This string
+ needs to be unique per Managed Database engine
+ type.
+ example: example-db
+ maxLength: 32
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ members:
+ description: >-
+ __Read-only__ A mapping between IP addresses and
+ strings designating them as `primary` or
+ `failover`.
+ example:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ readOnly: true
+ type: object
+ oldest_restore_time:
+ description: >-
+ __Read-only__ The oldest time to which a
+ database can be restored.
+ example: '2024-10-03 20:48:05'
+ format: date-time
+ readOnly: true
+ type: string
+ platform:
+ description: >-
+ __Filterable__, __Read-only__ The back-end
+ platform for relational databases used by the
+ service.
+ enum:
+ - rdbms-legacy
+ - rdbms-default
+ example: rdbms-default
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ port:
+ description: >-
+ __Read-only__ The access port for this Managed
+ Database.
+ example: 3306
+ readOnly: true
+ type: integer
+ region:
+ description: >-
+ __Filterable__ The
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ ID for the Managed Database.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ ssl_connection:
+ default: true
+ description: >-
+ Currently required to be `true`. Whether to
+ require SSL credentials to establish a
+ connection to the Managed Database. Run the [Get
+ managed PostgreSQL database
+ credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-credentials)
+ operation for access information.
+ example: true
+ type: boolean
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The operating
+ status of the Managed Database.
+ enum:
+ - provisioning
+ - active
+ - suspending
+ - suspended
+ - resuming
+ - failed
+ - degraded
+ - updating
+ - resizing
+ example: active
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ active: green
+ default_: white
+ degraded: red
+ failed: red
+ provisioning: yellow
+ restoring: yellow
+ resuming: yellow
+ x-linode-cli-display: 100
+ x-linode-filterable: true
+ total_disk_size_gb:
+ description: >-
+ __Read-only__ The total disk size of the
+ database, in GB.
+ example: 15
+ readOnly: true
+ type: integer
+ type:
+ description: >-
+ __Filterable__ The Linode Instance type used by
+ the Managed Database for its nodes.
+ example: g6-dedicated-2
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Read-only__ When this Managed Database was
+ last updated.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ updates:
+ additionalProperties: false
+ description: >-
+ Configuration settings for automated patch
+ update maintenance for the Managed Database.
+ properties:
+ day_of_week:
+ description: >-
+ The numeric reference for the day of the
+ week to perform maintenance. `1` is Monday,
+ `2` is Tuesday, through to `7` which is
+ Sunday.
+ example: 1
+ maximum: 7
+ minimum: 1
+ type: integer
+ duration:
+ description: >-
+ The maximum maintenance window time in
+ hours.
+ example: 3
+ maximum: 3
+ minimum: 1
+ type: integer
+ frequency:
+ default: weekly
+ description: >-
+ How frequently maintenance occurs. Currently
+ can only be `weekly`.
+ enum:
+ - weekly
+ example: weekly
+ type: string
+ hour_of_day:
+ description: >-
+ The hour to begin maintenance based in UTC
+ time.
+ example: 0
+ maximum: 23
+ minimum: 0
+ type: integer
+ pending:
+ description: __Read-only__ An array of pending updates.
+ example: []
+ items:
+ additionalProperties: false
+ description: A planned maintenance update.
+ properties:
+ deadline:
+ description: >-
+ The time when a mandatory update needs
+ to be applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ description:
+ description: A description of the update.
+ example: TimescaleDB version 2.17.1 is available.
+ type: string
+ planned_for:
+ description: >-
+ The date and time a maintenance update
+ will be applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ type: object
+ minItems: 0
+ readOnly: true
+ type: array
+ type: object
+ used_disk_size_gb:
+ description: >-
+ __Read-only__ The amount of space currently in
+ use in the database, in GB.
+ example: 2
+ readOnly: true
+ type: integer
+ version:
+ description: >-
+ __Filterable__ The Managed Database engine
+ version.
+ example: '13.2'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/database-postgresql.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/get-databases-postgresql-instances-200.yaml
+ description: >-
+ Returns a paginated list of all accessible PostgreSQL Managed
+ Databases on your account.
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/credentials/
- - lang: CLI
- source: |
- linode-cli databases mysql-creds-view 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MySQL Database.
- required: true
- schema:
- type: integer
- '/databases/mysql/instances/{instanceId}/credentials/reset':
- post:
- tags:
- - 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: |
- Reset the root password for a Managed MySQL Database.
-
- Requires `read_write` access to the Database.
-
- 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.
-
- 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:
- - 'databases:read_write'
- responses:
- '200':
- description: Managed Database instance credentials successfully reset.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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/credentials/reset
- - lang: CLI
- source: |
- linode-cli databases mysql-creds-reset 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MySQL Database.
- required: true
- schema:
- type: integer
- '/databases/mysql/instances/{instanceId}/ssl':
- get:
- tags:
- - 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.
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'databases:read_only'
- responses:
- '200':
- description: Returns the SSL CA certificate of a single Managed MySQL Database.
- content:
- application/json:
- schema:
- $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/databases/mysql/instances/123/ssl
- - lang: CLI
- source: |
- linode-cli databases mysql-ssl-cert 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MySQL Database.
- required: true
- schema:
- type: integer
- '/databases/mysql/instances/{instanceId}/patch':
- post:
+ - databases:read_only
+ summary: List PostgreSQL Managed Databases
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
- description: |
- 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.
-
- Requires `read_write` access to the Database.
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases postgresql-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: postgresql-list
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/postgresql-instances.yaml
+ path-info: /{apiVersion}/databases/postgresql/instances
+ x-linode-cli-command: databases
+ /databases/postgresql/instances/{instanceId}:
+ get:
+ description: >-
+ Display information for a single, accessible PostgreSQL Managed
+ Database.
- The Database must have an `active` status to perform this command.
- **Note**
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- * 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:
- - 'databases:read_write'
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance
+ operationId: get-databases-postgre-sql-instance
responses:
'200':
- description: Managed Database instance patch request successful.
content:
application/json:
+ example:
+ allow_list:
+ - 192.0.2.133/24
+ - 192.0.2.92/24
+ cluster_size: 3
+ created: '2022-01-01T00:01:01'
+ encrypted: true
+ engine: postgresql
+ engine_config:
+ pg:
+ autovacuum_analyze_scale_factor: 1
+ autovacuum_analyze_threshold: 2147483647
+ autovacuum_max_workers: 20
+ autovacuum_naptime: 86400
+ autovacuum_vacuum_cost_delay: 100
+ autovacuum_vacuum_cost_limit: 10000
+ autovacuum_vacuum_scale_factor: 1
+ autovacuum_vacuum_threshold: 2147483647
+ bgwriter_delay: 200
+ bgwriter_flush_after: 512
+ bgwriter_lru_maxpages: 100
+ bgwriter_lru_multiplier: 2.5
+ deadlock_timeout: 1000
+ default_toast_compression: lz4
+ idle_in_transaction_session_timeout: 604800000
+ jit: true
+ max_files_per_process: 1024
+ max_locks_per_transaction: 1024
+ max_logical_replication_workers: 64
+ max_parallel_workers: 96
+ max_parallel_workers_per_gather: 96
+ max_pred_locks_per_transaction: 5120
+ max_replication_slots: 64
+ max_slot_wal_keep_size: 1000000
+ max_stack_depth: 2097152
+ max_standby_archive_delay: 1
+ max_standby_streaming_delay: 10
+ max_wal_senders: 20
+ max_worker_processes: 96
+ password_encryption: scram-sha-256
+ pg_partman_bgw.interval: 3600
+ pg_partman_bgw.role: myrolename
+ pg_stat_monitor.pgsm_enable_query_plan: true
+ pg_stat_monitor.pgsm_max_buckets: 10
+ pg_stat_statements.track: all
+ temp_file_limit: 5000000
+ timezone: Europe/Helsinki
+ track_activity_query_size: 1024
+ track_commit_timestamp: true
+ track_functions: 'on'
+ track_io_timing: 'off'
+ wal_sender_timeout: 60000
+ wal_writer_delay: 200
+ pg_stat_monitor_enable: false
+ pglookout:
+ max_failover_replication_time_lag: 10
+ shared_buffers_percentage: 41.5
+ work_mem: 4
+ fork:
+ restore_time: '2024-10-14T19:55:12'
+ source: 176881
+ hosts:
+ primary: lin-0000-000-pgsql-primary.servers.linodedb.net
+ secondary: lin-0000-000-pgsql-primary-private.servers.linodedb.net
+ id: 123
+ label: example-db
+ members:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ oldest_restore_time: '2024-10-03T20:48:05'
+ platform: rdbms-default
+ port: 3306
+ region: us-east
+ ssl_connection: true
+ status: active
+ total_disk_size_gb: 15
+ type: g6-dedicated-2
+ updated: '2022-01-01T00:01:01'
+ updates:
+ day_of_week: 1
+ duration: 3
+ frequency: weekly
+ hour_of_day: 0
+ pending: []
+ used_disk_size_gb: 2
+ version: '13.2'
schema:
+ additionalProperties: false
+ description: Managed PostgreSQL Databases object.
+ properties:
+ allow_list:
+ description: >-
+ Controls access to the Managed Database.
+
+
+ - Individually included IP addresses or CIDR ranges can
+ access the Managed Database while all other sources are
+ blocked.
+
+
+ - A standalone value of `0.0.0.0/0` allows all IP
+ addresses access to the Managed Database.
+
+
+ - An empty array (`[]`) blocks all public and private
+ connections to the Managed Database.
+ example:
+ - 203.0.113.1/32
+ - 192.0.1.0/24
+ items:
+ format: ipv4/prefix_length
+ pattern: >-
+ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
+ type: string
+ minItems: 0
+ type: array
+ cluster_size:
+ default: 1
+ description: >-
+ The number of Linode instance nodes deployed to the
+ Managed Database.
+
+ - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes.
+
+ - A `2` node cluster is only available with a dedicated
+ plan. It consists of one primary node and one replica
+ node.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: 3
+ type: integer
+ x-linode-cli-display: 5
+ created:
+ description: __Read-only__ When this Managed Database was created.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encrypted:
+ default: true
+ description: >-
+ __Read-only__ Whether the Managed Databases is encrypted.
+ Currently required to be `true`.
+ example: true
+ readOnly: true
+ type: boolean
+ engine:
+ description: >-
+ __Filterable__, __Read-only__ The Managed Database engine
+ type.
+ example: postgresql
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ engine_config:
+ additionalProperties: false
+ description: >-
+ Advanced parameters you can apply to a PostgreSQL Managed
+ Database, via our partner [Aiven's
+ specification](https://aiven.io/docs/products/postgresql/reference/advanced-params).
+ Only include the objects for parameters you want to set in
+ your database. Omit objects for parameters you don't want
+ to define or change.
+
+
+ > 📘
+
+ >
+
+ > Aiven may offer additional parameters in their
+ specification. Currently, only those listed here are
+ supported for use in a PostgreSQL Managed Database. You
+ can also run the [List PostgreSQL Managed Database
+ advanced
+ parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-postgresql-config)
+ operation to see an up-to-date list.
+ properties:
+ pg:
+ additionalProperties: false
+ description: PostgreSQL-specific advanced configuration parameters.
+ properties:
+ autovacuum_analyze_scale_factor:
+ default: 0.2
+ description: >-
+ Specifies a fraction of the table size to add to
+ `autovacuum_analyze_threshold` when deciding
+ whether to trigger an `ANALYZE`.
+ example: 1
+ maximum: 1
+ minimum: 0
+ type: number
+ autovacuum_analyze_threshold:
+ default: 50
+ description: >-
+ Specifies the minimum number of inserted, updated,
+ or deleted tuples needed to trigger an `ANALYZE`
+ in any one table.
+ example: 2147483647
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ autovacuum_max_workers:
+ default: 3
+ description: >-
+ Specifies the maximum number of `autovacuum`
+ processes, other than the `autovacuum` launcher,
+ that may be running at any one time. This
+ parameter can only be set at server start.
+ example: 20
+ maximum: 20
+ minimum: 1
+ type: integer
+ autovacuum_naptime:
+ default: 60
+ description: >-
+ Specifies the minimum delay between `autovacuum`
+ runs on any given database. The delay is measured
+ in seconds.
+ example: 86400
+ maximum: 86400
+ minimum: 1
+ type: integer
+ autovacuum_vacuum_cost_delay:
+ default: 20
+ description: >-
+ Specifies the cost delay value that will be used
+ in automatic `VACUUM` operations. If `-1` is
+ specified, the regular `vacuum_cost_delay` value
+ will be used.
+ example: 100
+ maximum: 100
+ minimum: -1
+ type: integer
+ autovacuum_vacuum_cost_limit:
+ default: -1
+ description: >-
+ Specifies the cost limit value that will be used
+ in automatic `VACUUM` operations. The default of
+ `-1` applies the regular `vacuum_cost_limit`
+ value.
+ example: 10000
+ maximum: 10000
+ minimum: -1
+ type: integer
+ autovacuum_vacuum_scale_factor:
+ default: 0.2
+ description: >-
+ Specifies a fraction of the table size to add to
+ `autovacuum_vacuum_threshold` when deciding
+ whether to trigger a `VACUUM`.
+ example: 1
+ maximum: 1
+ minimum: 0
+ type: number
+ autovacuum_vacuum_threshold:
+ default: 50
+ description: >-
+ Specifies the minimum number of updated or deleted
+ tuples needed to trigger a `VACUUM` in any one
+ table.
+ example: 2147483647
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ bgwriter_delay:
+ default: 200
+ description: >-
+ Specifies the delay between activity rounds for
+ the background writer in milliseconds.
+ example: 200
+ maximum: 10000
+ minimum: 20
+ type: integer
+ bgwriter_flush_after:
+ default: 512
+ description: >-
+ Whenever more than `bgwriter_flush_after` bytes
+ have been written by the background writer,
+ attempt to force the OS to issue these writes to
+ the underlying storage. Specified in kilobytes. A
+ setting of `0` disables forced writeback.
+ example: 512
+ maximum: 2048
+ minimum: 0
+ type: integer
+ bgwriter_lru_maxpages:
+ default: 100
+ description: >-
+ In each round, no more than this many buffers will
+ be written by the background writer. Setting this
+ to `0` disables background writing.
+ example: 100
+ maximum: 1073741823
+ minimum: 0
+ type: integer
+ bgwriter_lru_multiplier:
+ default: 2.5
+ description: >-
+ The average recent need for new buffers is
+ multiplied by bgwriter_lru_multiplier to arrive at
+ an estimate of the number that will be needed
+ during the next round, (up to
+ `bgwriter_lru_maxpages`). `1.0` represents a
+ `\u201cjust` in `time\u201d` policy of writing
+ exactly the number of buffers predicted to be
+ needed. Larger values provide some cushion against
+ spikes in demand, while smaller values
+ intentionally leave writes to be done by server
+ processes.
+ example: 2.5
+ maximum: 10
+ minimum: 0
+ type: number
+ deadlock_timeout:
+ description: >-
+ This is the amount of time, in milliseconds, to
+ wait on a lock before checking to see if there is
+ a deadlock condition.
+ example: 1000
+ maximum: 1800000
+ minimum: 500
+ type: integer
+ default_toast_compression:
+ default: lz4
+ description: >-
+ Specifies the default TOAST compression method for
+ values of compressible columns.
+ enum:
+ - lz4
+ - pglz
+ example: lz4
+ type: string
+ idle_in_transaction_session_timeout:
+ description: >-
+ Time out sessions with open transactions after
+ this number of milliseconds.
+ example: 604800000
+ maximum: 604800000
+ minimum: 0
+ type: integer
+ jit:
+ description: >-
+ Controls system-wide use of Just-in-Time
+ Compilation (JIT).
+ example: true
+ type: boolean
+ max_files_per_process:
+ description: >-
+ PostgreSQL maximum number of files that can be
+ open per process.
+ example: 1024
+ maximum: 4096
+ minimum: 1000
+ type: integer
+ max_locks_per_transaction:
+ description: PostgreSQL maximum locks per transaction.
+ example: 1024
+ maximum: 6400
+ minimum: 64
+ type: integer
+ max_logical_replication_workers:
+ description: >-
+ PostgreSQL maximum logical replication workers,
+ taken from the pool of `max_parallel_workers`.
+ example: 64
+ maximum: 64
+ minimum: 4
+ type: integer
+ max_parallel_workers:
+ description: >-
+ Sets the maximum number of workers that the system
+ can support for parallel queries.
+ example: 96
+ maximum: 96
+ minimum: 0
+ type: integer
+ max_parallel_workers_per_gather:
+ description: >-
+ Sets the maximum number of workers that can be
+ started by a single Gather or Gather Merge node.
+ example: 96
+ maximum: 96
+ minimum: 0
+ type: integer
+ max_pred_locks_per_transaction:
+ description: >-
+ PostgreSQL maximum predicate locks per
+ transaction.
+ example: 5120
+ maximum: 5120
+ minimum: 64
+ type: integer
+ max_replication_slots:
+ description: PostgreSQL maximum replication slots.
+ example: 64
+ maximum: 64
+ minimum: 8
+ type: integer
+ max_slot_wal_keep_size:
+ default: -1
+ description: >-
+ PostgreSQL maximum write ahead log (WAL) size in
+ MB, reserved for replication slots. A value of
+ `-1` which indicates unlimited. The
+ `wal_keep_size` minimum write ahead log (WAL) size
+ setting takes precedence over this.
+ example: 1000000
+ maximum: 2147483647
+ minimum: -1
+ type: integer
+ max_stack_depth:
+ description: Maximum depth of the stack in bytes.
+ example: 2097152
+ maximum: 6291456
+ minimum: 2097152
+ type: integer
+ max_standby_archive_delay:
+ description: Maximum standby archive delay in milliseconds.
+ example: 1
+ maximum: 43200000
+ minimum: 1
+ type: integer
+ max_standby_streaming_delay:
+ description: Maximum standby streaming delay in milliseconds.
+ example: 10
+ maximum: 43200000
+ minimum: 1
+ type: integer
+ max_wal_senders:
+ description: PostgreSQL maximum write ahead log (WAL) senders.
+ example: 20
+ maximum: 64
+ minimum: 20
+ type: integer
+ max_worker_processes:
+ description: >-
+ Maximum number of background processes that the
+ system can support.
+ example: 96
+ maximum: 96
+ minimum: 8
+ type: integer
+ password_encryption:
+ default: md5
+ description: Chooses the algorithm for encrypting passwords.
+ enum:
+ - scram-sh-256
+ - md5
+ example: scram-sha-256
+ type: string
+ pg_partman_bgw.interval:
+ description: >-
+ Sets the time interval to run `pg_partman`
+ scheduled tasks.
+ example: 3600
+ maximum: 604800
+ minimum: 3600
+ type: integer
+ pg_partman_bgw.role:
+ description: >-
+ Controls which role to use for `pg_partman``
+ scheduled background tasks.
+ example: myrolename
+ type: string
+ pg_stat_monitor.pgsm_enable_query_plan:
+ description: Enables query plan monitoring.
+ example: true
+ type: boolean
+ pg_stat_monitor.pgsm_max_buckets:
+ description: Sets the maximum number of buckets.
+ example: 10
+ maximum: 10
+ minimum: 1
+ type: integer
+ pg_stat_statements.track:
+ default: top
+ description: >-
+ Controls which statements are counted. Specify
+ `top` to track top-level statements that are
+ issued directly by clients, `all` to also track
+ nested statements, such as those invoked within
+ functions, or `none` to disable statement
+ statistics collection.
+ enum:
+ - all
+ - top
+ - none
+ example: all
+ type: string
+ temp_file_limit:
+ description: >-
+ PostgreSQL temporary file limit in KB. Set to `-1`
+ for unlimited.
+ example: 5000000
+ maximum: 2147483647
+ minimum: -1
+ type: integer
+ timezone:
+ description: PostgreSQL service time zone.
+ example: Europe/Helsinki
+ maxLength: 64
+ pattern: ^[\\w/]*$
+ type: string
+ track_activity_query_size:
+ description: >-
+ Specifies the number of bytes reserved to track
+ the currently executing command for each active
+ session.
+ example: 1024
+ maximum: 10240
+ minimum: 1024
+ type: integer
+ track_commit_timestamp:
+ description: Record the commit time of transactions.
+ enum:
+ - 'on'
+ - 'off'
+ example: 'on'
+ type: string
+ track_functions:
+ default: none
+ description: >-
+ Enables tracking of function call counts and time
+ used. Specify `pl` to track only
+ procedural-language functions, `all` to also track
+ SQL and C language functions, or `none` to disable
+ function statistics tracking.
+ enum:
+ - all
+ - pl
+ - none
+ example: all
+ type: string
+ track_io_timing:
+ default: 'off'
+ description: >-
+ Enables timing of database I/O calls. This
+ parameter is `off` by default, because it will
+ repeatedly query the operating system for the
+ current time, which may cause significant overhead
+ on some platforms.
+ enum:
+ - 'on'
+ - 'off'
+ example: 'off'
+ type: string
+ wal_sender_timeout:
+ description: >-
+ Terminate replication connections that are
+ inactive for longer than this amount of time, in
+ milliseconds. Setting this value to `0` disables
+ the timeout.
+ example: 60000
+ maximum: 60000
+ minimum: 0
+ type: integer
+ wal_writer_delay:
+ default: 200
+ description: >-
+ Write ahead log (WAL) flush interval in
+ milliseconds. A value lower than 200 milliseconds
+ may negatively impact performance.
+ example: 200
+ maximum: 200
+ minimum: 10
+ type: integer
+ type: object
+ pg_stat_monitor_enable:
+ description: >-
+ Enable the `pg_stat_monitor` extension. When this
+ extension is enabled, PostgreSQL restarts the cluster
+ it's in. Additionally, `pg_stat_statements` results
+ for utility commands are unreliable.
+ example: false
+ type: boolean
+ pglookout:
+ additionalProperties: false
+ description: Parameter used to apply PGLookout settings.
+ properties:
+ max_failover_replication_time_lag:
+ description: >-
+ Number of seconds of master unavailability before
+ triggering database failover to standby.
+ example: 10
+ maximum: 999999
+ minimum: 10
+ type: integer
+ type: object
+ shared_buffers_percentage:
+ description: >-
+ Percentage of total RAM that the database server uses
+ for shared memory buffers. Valid range is 20-60
+ (float), which corresponds to 20% - 60%. This setting
+ adjusts the `shared_buffers` configuration value.
+ example: 41.5
+ maximum: 60
+ minimum: 20
+ type: number
+ work_mem:
+ description: >-
+ Sets the maximum amount of memory in MB to be used by
+ a query operation, such as a sort or hash table,
+ before writing to temporary disk files. Default is 1MB
+ + 0.075% of total RAM, up to 32 MB.
+ example: 4
+ maximum: 4
+ minimum: 1
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/database-postgresql-engine-config.yaml
+ x-linode-cli-display: 7
+ fork:
+ additionalProperties: false
+ description: >-
+ Details on the database that was the target of the fork.
+ This only exists if the database was restored by creating
+ a fork from another
+ [MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances)
+ or
+ [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)
+ database.
+ properties:
+ restore_time:
+ description: >-
+ The database timestamp from which it was restored.
+ This is _not_ when the fork was created.
+ example: '2024-10-14 19:55:12'
+ format: date-time
+ type: string
+ source:
+ description: The instance id of the database that was forked from.
+ example: 176881
+ type: integer
+ type: object
+ hosts:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The primary and secondary hosts for the
+ Managed Database. These are assigned after provisioning is
+ complete.
+ properties:
+ primary:
+ description: The primary host for the Managed Database.
+ example: lin-0000-000-pgsql-primary.servers.linodedb.net
+ nullable: true
+ type: string
+ secondary:
+ 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.
+
+
+ > 📘
+
+ >
+
+ > The secondary hostname is publicly visible and
+ accessible.
+ example: >-
+ lin-0000-000-pgsql-primary-private.servers.linodedb.net
+ nullable: true
+ type: string
+ readOnly: true
+ type: object
+ id:
+ description: >-
+ __Read-only__ A unique ID that can be used to identify and
+ reference the Managed Database.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ A unique, user-defined string referring to
+ the Managed Database. This string needs to be unique per
+ Managed Database engine type.
+ example: example-db
+ maxLength: 32
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ members:
+ description: >-
+ __Read-only__ A mapping between IP addresses and strings
+ designating them as `primary` or `failover`.
+ example:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ readOnly: true
+ type: object
+ oldest_restore_time:
+ description: >-
+ __Read-only__ The oldest time to which a database can be
+ restored.
+ example: '2024-10-03 20:48:05'
+ format: date-time
+ readOnly: true
+ type: string
+ platform:
+ description: >-
+ __Filterable__, __Read-only__ The back-end platform for
+ relational databases used by the service.
+ enum:
+ - rdbms-legacy
+ - rdbms-default
+ example: rdbms-default
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ port:
+ description: __Read-only__ The access port for this Managed Database.
+ example: 3306
+ readOnly: true
+ type: integer
+ region:
+ description: >-
+ __Filterable__ The
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ ID for the Managed Database.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ ssl_connection:
+ default: true
+ description: >-
+ Currently required to be `true`. Whether to require SSL
+ credentials to establish a connection to the Managed
+ Database. Run the [Get managed PostgreSQL database
+ credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-credentials)
+ operation for access information.
+ example: true
+ type: boolean
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The operating status of the
+ Managed Database.
+ enum:
+ - provisioning
+ - active
+ - suspending
+ - suspended
+ - resuming
+ - failed
+ - degraded
+ - updating
+ - resizing
+ example: active
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ active: green
+ default_: white
+ degraded: red
+ failed: red
+ provisioning: yellow
+ restoring: yellow
+ resuming: yellow
+ x-linode-cli-display: 100
+ x-linode-filterable: true
+ total_disk_size_gb:
+ description: __Read-only__ The total disk size of the database, in GB.
+ example: 15
+ readOnly: true
+ type: integer
+ type:
+ description: >-
+ __Filterable__ The Linode Instance type used by the
+ Managed Database for its nodes.
+ example: g6-dedicated-2
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Managed Database was last updated.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ updates:
+ additionalProperties: false
+ description: >-
+ Configuration settings for automated patch update
+ maintenance for the Managed Database.
+ properties:
+ day_of_week:
+ description: >-
+ The numeric reference for the day of the week to
+ perform maintenance. `1` is Monday, `2` is Tuesday,
+ through to `7` which is Sunday.
+ example: 1
+ maximum: 7
+ minimum: 1
+ type: integer
+ duration:
+ description: The maximum maintenance window time in hours.
+ example: 3
+ maximum: 3
+ minimum: 1
+ type: integer
+ frequency:
+ default: weekly
+ description: >-
+ How frequently maintenance occurs. Currently can only
+ be `weekly`.
+ enum:
+ - weekly
+ example: weekly
+ type: string
+ hour_of_day:
+ description: The hour to begin maintenance based in UTC time.
+ example: 0
+ maximum: 23
+ minimum: 0
+ type: integer
+ pending:
+ description: __Read-only__ An array of pending updates.
+ example: []
+ items:
+ additionalProperties: false
+ description: A planned maintenance update.
+ properties:
+ deadline:
+ description: >-
+ The time when a mandatory update needs to be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ description:
+ description: A description of the update.
+ example: TimescaleDB version 2.17.1 is available.
+ type: string
+ planned_for:
+ description: >-
+ The date and time a maintenance update will be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ type: object
+ minItems: 0
+ readOnly: true
+ type: array
+ type: object
+ used_disk_size_gb:
+ description: >-
+ __Read-only__ The amount of space currently in use in the
+ database, in GB.
+ example: 2
+ readOnly: true
+ type: integer
+ version:
+ description: __Filterable__ The Managed Database engine version.
+ example: '13.2'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
type: object
+ x-akamai:
+ file-path: schemas/database-postgresql.yaml
+ description: Returns information for a single PostgreSQL Managed Database.
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/patch
- - lang: CLI
- source: |
- linode-cli databases mysql-patch 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed MySQL Database.
- required: true
- schema:
- type: integer
- /databases/postgresql/instances:
- get:
- tags:
- - 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:
- - 'databases:read_only'
- responses:
- '200':
- description: Returns a paginated list of all accessible Managed PostgreSQL Databases on your Account.
content:
application/json:
schema:
- 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 "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/databases/postgresql/instances/
- - lang: CLI
- source: |
- linode-cli databases postgresql-list
- post:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_only
+ summary: Get a PostgreSQL Managed Database
tags:
- 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.
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases postgresql-view 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: postgresql-view
+ x-linode-grant: read_only
+ put:
+ description: >-
+ Make changes to an existing PostgreSQL Managed 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 user needs `read_write` [user
+ grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ access to the database.
- The `allow_list` is used to control access to the Managed Database.
- * IP addresses and ranges in this list can access the Managed Database. All other sources are blocked.
+ - The database's status needs to be `active`.
- * If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database.
- * Entering an empty array (`[]`) blocks all connections (both public and private) to the Managed Database.
+ - New values set in the `allow_list` overwrite existing values. To keep
+ existing values, run the [List PostgreSQL Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances)
+ operation, store the `allow_list` addresses from the response, and
+ include them with any new addresses in this operation.
- 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.
+ - Updates to your `allow_list` may take a short period of time to
+ complete, making this operation inappropriate for rapid successive
+ updates.
- * 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.
+ - Also allows resizing the database cluster to a larger one. Clusters
+ can't be resized to smaller plans.
- * 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:
- - '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: A new Managed PostgreSQL Database is provisioning.
- content:
- application/json:
- schema:
- $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 -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 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}':
- get:
- tags:
- - 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:
- - 'databases:read_only'
- responses:
- '200':
- description: Returns information for a single Managed PostgreSQL Database.
- content:
- application/json:
- schema:
- $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/databases/postgresql/instances/123
- - lang: CLI
- source: |
- linode-cli databases postgresql-view 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed PostgreSQL Database.
- required: true
- schema:
- type: integer
- 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
- description: |
- Remove a Managed PostgreSQL Database from your Account.
- Requires `read_write` access to the Database.
+ - All Managed Databases include automatic updates, which apply security
+ patches to the underlying operating system of the Managed PostgreSQL
+ Database. Use the `updates` object in this operation to modify the
+ maintenance window for these updates.
- 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
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed PostgreSQL Database.
- required: true
- schema:
- type: integer
- put:
- tags:
- - 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.
+ - If your database cluster is configured with a single node, downtime
+ occurs during maintenance updates. Use the `updates` object to adjust
+ the window to match a time that's the least disruptive to your
+ application and users. Also consider upgrading to a [high
+ availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability)
+ plan to avoid any maintenance downtime.
- Requires `read_write` access to the Database.
- The Database must have an `active` status to perform this command.
+ - Major upgrades are optional until the service reaches end of service,
+ and can be done in place.
- Updating addresses in the `allow_list` overwrites any existing addresses.
- * IP addresses and ranges in this list can access the Managed Database. All other sources are blocked.
+ - You can't update `engine_config` advanced parameter settings for a
+ suspended database. You'll need to
+ [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-postgre-sql-instance)
+ it first.
- * If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database.
- * Entering an empty array (`[]`) blocks all connections (both public and private) to the Managed Database.
+ - A successful request triggers a `database_update`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events).
- * **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.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- * 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:
- - 'databases:read_write'
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance
+ operationId: put-databases-postgre-sql-instance
requestBody:
- description: Updated information for the Managed PostgreSQL Database.
- required: true
content:
application/json:
+ example:
+ allow_list:
+ - 192.0.2.207/24
+ - 192.0.2.134/24
+ engine_config:
+ pg:
+ autovacuum_analyze_scale_factor: 1
+ autovacuum_analyze_threshold: 2147483647
+ autovacuum_max_workers: 20
+ autovacuum_naptime: 86400
+ autovacuum_vacuum_cost_delay: 100
+ autovacuum_vacuum_cost_limit: 10000
+ autovacuum_vacuum_scale_factor: 1
+ autovacuum_vacuum_threshold: 2147483647
+ bgwriter_delay: 200
+ bgwriter_flush_after: 512
+ bgwriter_lru_maxpages: 100
+ bgwriter_lru_multiplier: 2.5
+ deadlock_timeout: 1000
+ default_toast_compression: lz4
+ idle_in_transaction_session_timeout: 604800000
+ jit: true
+ max_files_per_process: 1024
+ max_locks_per_transaction: 1024
+ max_logical_replication_workers: 64
+ max_parallel_workers: 96
+ max_parallel_workers_per_gather: 96
+ max_pred_locks_per_transaction: 5120
+ max_replication_slots: 64
+ max_slot_wal_keep_size: 1000000
+ max_stack_depth: 2097152
+ max_standby_archive_delay: 1
+ max_standby_streaming_delay: 10
+ max_wal_senders: 20
+ max_worker_processes: 96
+ password_encryption: scram-sha-256
+ pg_partman_bgw.interval: 3600
+ pg_partman_bgw.role: myrolename
+ pg_stat_monitor.pgsm_enable_query_plan: true
+ pg_stat_monitor.pgsm_max_buckets: 10
+ pg_stat_statements.track: all
+ temp_file_limit: 5000000
+ timezone: Europe/Helsinki
+ track_activity_query_size: 1024
+ track_commit_timestamp: 'on'
+ track_functions: 'on'
+ track_io_timing: 'off'
+ wal_sender_timeout: 60000
+ wal_writer_delay: 200
+ pg_stat_monitor_enable: false
+ pglookout:
+ max_failover_replication_time_lag: 10
+ shared_buffers_percentage: 41.5
+ work_mem: 4
+ label: example-db
+ type: g6-standard-1
+ updates:
+ day_of_week: 1
+ duration: 3
+ frequency: weekly
+ hour_of_day: 0
+ version: '13.2'
schema:
- type: object
+ additionalProperties: false
description: Updated information for the Managed PostgreSQL Database.
properties:
- label:
- $ref: '#/components/schemas/DatabasePostgreSQLRequest/properties/label'
allow_list:
- $ref: '#/components/schemas/DatabasePostgreSQLRequest/properties/allow_list'
+ description: >-
+ Controls access to the Managed Database.
+
+
+ - Individually included IP addresses or CIDR ranges can
+ access the Managed Database while all other sources are
+ blocked.
+
+
+ - A standalone value of `0.0.0.0/0` allows all IP addresses
+ access to the Managed Database.
+
+
+ - An empty array (`[]`) blocks all public and private
+ connections to the Managed Database.
+ example:
+ - 203.0.113.1/32
+ - 192.0.1.0/24
+ items:
+ format: ipv4/prefix_length
+ pattern: >-
+ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
+ type: string
+ minItems: 0
+ type: array
+ engine_config:
+ additionalProperties: false
+ description: >-
+ Advanced parameters you can apply to a PostgreSQL Managed
+ Database, via our partner [Aiven's
+ specification](https://aiven.io/docs/products/postgresql/reference/advanced-params).
+ Only include the objects for parameters you want to set in
+ your database. Omit objects for parameters you don't want to
+ define or change.
+
+
+ > 📘
+
+ >
+
+ > Aiven may offer additional parameters in their
+ specification. Currently, only those listed here are
+ supported for use in a PostgreSQL Managed Database. You can
+ also run the [List PostgreSQL Managed Database advanced
+ parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-postgresql-config)
+ operation to see an up-to-date list.
+ properties:
+ pg:
+ additionalProperties: false
+ description: PostgreSQL-specific advanced configuration parameters.
+ properties:
+ autovacuum_analyze_scale_factor:
+ default: 0.2
+ description: >-
+ Specifies a fraction of the table size to add to
+ `autovacuum_analyze_threshold` when deciding whether
+ to trigger an `ANALYZE`.
+ example: 1
+ maximum: 1
+ minimum: 0
+ type: number
+ autovacuum_analyze_threshold:
+ default: 50
+ description: >-
+ Specifies the minimum number of inserted, updated,
+ or deleted tuples needed to trigger an `ANALYZE` in
+ any one table.
+ example: 2147483647
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ autovacuum_max_workers:
+ default: 3
+ description: >-
+ Specifies the maximum number of `autovacuum`
+ processes, other than the `autovacuum` launcher,
+ that may be running at any one time. This parameter
+ can only be set at server start.
+ example: 20
+ maximum: 20
+ minimum: 1
+ type: integer
+ autovacuum_naptime:
+ default: 60
+ description: >-
+ Specifies the minimum delay between `autovacuum`
+ runs on any given database. The delay is measured in
+ seconds.
+ example: 86400
+ maximum: 86400
+ minimum: 1
+ type: integer
+ autovacuum_vacuum_cost_delay:
+ default: 20
+ description: >-
+ Specifies the cost delay value that will be used in
+ automatic `VACUUM` operations. If `-1` is specified,
+ the regular `vacuum_cost_delay` value will be used.
+ example: 100
+ maximum: 100
+ minimum: -1
+ type: integer
+ autovacuum_vacuum_cost_limit:
+ default: -1
+ description: >-
+ Specifies the cost limit value that will be used in
+ automatic `VACUUM` operations. The default of `-1`
+ applies the regular `vacuum_cost_limit` value.
+ example: 10000
+ maximum: 10000
+ minimum: -1
+ type: integer
+ autovacuum_vacuum_scale_factor:
+ default: 0.2
+ description: >-
+ Specifies a fraction of the table size to add to
+ `autovacuum_vacuum_threshold` when deciding whether
+ to trigger a `VACUUM`.
+ example: 1
+ maximum: 1
+ minimum: 0
+ type: number
+ autovacuum_vacuum_threshold:
+ default: 50
+ description: >-
+ Specifies the minimum number of updated or deleted
+ tuples needed to trigger a `VACUUM` in any one
+ table.
+ example: 2147483647
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ bgwriter_delay:
+ default: 200
+ description: >-
+ Specifies the delay between activity rounds for the
+ background writer in milliseconds.
+ example: 200
+ maximum: 10000
+ minimum: 20
+ type: integer
+ bgwriter_flush_after:
+ default: 512
+ description: >-
+ Whenever more than `bgwriter_flush_after` bytes have
+ been written by the background writer, attempt to
+ force the OS to issue these writes to the underlying
+ storage. Specified in kilobytes. A setting of `0`
+ disables forced writeback.
+ example: 512
+ maximum: 2048
+ minimum: 0
+ type: integer
+ bgwriter_lru_maxpages:
+ default: 100
+ description: >-
+ In each round, no more than this many buffers will
+ be written by the background writer. Setting this to
+ `0` disables background writing.
+ example: 100
+ maximum: 1073741823
+ minimum: 0
+ type: integer
+ bgwriter_lru_multiplier:
+ default: 2.5
+ description: >-
+ The average recent need for new buffers is
+ multiplied by bgwriter_lru_multiplier to arrive at
+ an estimate of the number that will be needed during
+ the next round, (up to `bgwriter_lru_maxpages`).
+ `1.0` represents a `\u201cjust` in `time\u201d`
+ policy of writing exactly the number of buffers
+ predicted to be needed. Larger values provide some
+ cushion against spikes in demand, while smaller
+ values intentionally leave writes to be done by
+ server processes.
+ example: 2.5
+ maximum: 10
+ minimum: 0
+ type: number
+ deadlock_timeout:
+ description: >-
+ This is the amount of time, in milliseconds, to wait
+ on a lock before checking to see if there is a
+ deadlock condition.
+ example: 1000
+ maximum: 1800000
+ minimum: 500
+ type: integer
+ default_toast_compression:
+ default: lz4
+ description: >-
+ Specifies the default TOAST compression method for
+ values of compressible columns.
+ enum:
+ - lz4
+ - pglz
+ example: lz4
+ type: string
+ idle_in_transaction_session_timeout:
+ description: >-
+ Time out sessions with open transactions after this
+ number of milliseconds.
+ example: 604800000
+ maximum: 604800000
+ minimum: 0
+ type: integer
+ jit:
+ description: >-
+ Controls system-wide use of Just-in-Time Compilation
+ (JIT).
+ example: true
+ type: boolean
+ max_files_per_process:
+ description: >-
+ PostgreSQL maximum number of files that can be open
+ per process.
+ example: 1024
+ maximum: 4096
+ minimum: 1000
+ type: integer
+ max_locks_per_transaction:
+ description: PostgreSQL maximum locks per transaction.
+ example: 1024
+ maximum: 6400
+ minimum: 64
+ type: integer
+ max_logical_replication_workers:
+ description: >-
+ PostgreSQL maximum logical replication workers,
+ taken from the pool of `max_parallel_workers`.
+ example: 64
+ maximum: 64
+ minimum: 4
+ type: integer
+ max_parallel_workers:
+ description: >-
+ Sets the maximum number of workers that the system
+ can support for parallel queries.
+ example: 96
+ maximum: 96
+ minimum: 0
+ type: integer
+ max_parallel_workers_per_gather:
+ description: >-
+ Sets the maximum number of workers that can be
+ started by a single Gather or Gather Merge node.
+ example: 96
+ maximum: 96
+ minimum: 0
+ type: integer
+ max_pred_locks_per_transaction:
+ description: PostgreSQL maximum predicate locks per transaction.
+ example: 5120
+ maximum: 5120
+ minimum: 64
+ type: integer
+ max_replication_slots:
+ description: PostgreSQL maximum replication slots.
+ example: 64
+ maximum: 64
+ minimum: 8
+ type: integer
+ max_slot_wal_keep_size:
+ default: -1
+ description: >-
+ PostgreSQL maximum write ahead log (WAL) size in MB,
+ reserved for replication slots. A value of `-1`
+ which indicates unlimited. The `wal_keep_size`
+ minimum write ahead log (WAL) size setting takes
+ precedence over this.
+ example: 1000000
+ maximum: 2147483647
+ minimum: -1
+ type: integer
+ max_stack_depth:
+ description: Maximum depth of the stack in bytes.
+ example: 2097152
+ maximum: 6291456
+ minimum: 2097152
+ type: integer
+ max_standby_archive_delay:
+ description: Maximum standby archive delay in milliseconds.
+ example: 1
+ maximum: 43200000
+ minimum: 1
+ type: integer
+ max_standby_streaming_delay:
+ description: Maximum standby streaming delay in milliseconds.
+ example: 10
+ maximum: 43200000
+ minimum: 1
+ type: integer
+ max_wal_senders:
+ description: PostgreSQL maximum write ahead log (WAL) senders.
+ example: 20
+ maximum: 64
+ minimum: 20
+ type: integer
+ max_worker_processes:
+ description: >-
+ Maximum number of background processes that the
+ system can support.
+ example: 96
+ maximum: 96
+ minimum: 8
+ type: integer
+ password_encryption:
+ default: md5
+ description: Chooses the algorithm for encrypting passwords.
+ enum:
+ - scram-sh-256
+ - md5
+ example: scram-sha-256
+ type: string
+ pg_partman_bgw.interval:
+ description: >-
+ Sets the time interval to run `pg_partman` scheduled
+ tasks.
+ example: 3600
+ maximum: 604800
+ minimum: 3600
+ type: integer
+ pg_partman_bgw.role:
+ description: >-
+ Controls which role to use for `pg_partman``
+ scheduled background tasks.
+ example: myrolename
+ type: string
+ pg_stat_monitor.pgsm_enable_query_plan:
+ description: Enables query plan monitoring.
+ example: true
+ type: boolean
+ pg_stat_monitor.pgsm_max_buckets:
+ description: Sets the maximum number of buckets.
+ example: 10
+ maximum: 10
+ minimum: 1
+ type: integer
+ pg_stat_statements.track:
+ default: top
+ description: >-
+ Controls which statements are counted. Specify `top`
+ to track top-level statements that are issued
+ directly by clients, `all` to also track nested
+ statements, such as those invoked within functions,
+ or `none` to disable statement statistics
+ collection.
+ enum:
+ - all
+ - top
+ - none
+ example: all
+ type: string
+ temp_file_limit:
+ description: >-
+ PostgreSQL temporary file limit in KB. Set to `-1`
+ for unlimited.
+ example: 5000000
+ maximum: 2147483647
+ minimum: -1
+ type: integer
+ timezone:
+ description: PostgreSQL service time zone.
+ example: Europe/Helsinki
+ maxLength: 64
+ pattern: ^[\\w/]*$
+ type: string
+ track_activity_query_size:
+ description: >-
+ Specifies the number of bytes reserved to track the
+ currently executing command for each active session.
+ example: 1024
+ maximum: 10240
+ minimum: 1024
+ type: integer
+ track_commit_timestamp:
+ description: Record the commit time of transactions.
+ enum:
+ - 'on'
+ - 'off'
+ example: 'on'
+ type: string
+ track_functions:
+ default: none
+ description: >-
+ Enables tracking of function call counts and time
+ used. Specify `pl` to track only procedural-language
+ functions, `all` to also track SQL and C language
+ functions, or `none` to disable function statistics
+ tracking.
+ enum:
+ - all
+ - pl
+ - none
+ example: all
+ type: string
+ track_io_timing:
+ default: 'off'
+ description: >-
+ Enables timing of database I/O calls. This parameter
+ is `off` by default, because it will repeatedly
+ query the operating system for the current time,
+ which may cause significant overhead on some
+ platforms.
+ enum:
+ - 'on'
+ - 'off'
+ example: 'off'
+ type: string
+ wal_sender_timeout:
+ description: >-
+ Terminate replication connections that are inactive
+ for longer than this amount of time, in
+ milliseconds. Setting this value to `0` disables the
+ timeout.
+ example: 60000
+ maximum: 60000
+ minimum: 0
+ type: integer
+ wal_writer_delay:
+ default: 200
+ description: >-
+ Write ahead log (WAL) flush interval in
+ milliseconds. A value lower than 200 milliseconds
+ may negatively impact performance.
+ example: 200
+ maximum: 200
+ minimum: 10
+ type: integer
+ type: object
+ pg_stat_monitor_enable:
+ description: >-
+ Enable the `pg_stat_monitor` extension. When this
+ extension is enabled, PostgreSQL restarts the cluster
+ it's in. Additionally, `pg_stat_statements` results for
+ utility commands are unreliable.
+ example: false
+ type: boolean
+ pglookout:
+ additionalProperties: false
+ description: Parameter used to apply PGLookout settings.
+ properties:
+ max_failover_replication_time_lag:
+ description: >-
+ Number of seconds of master unavailability before
+ triggering database failover to standby.
+ example: 10
+ maximum: 999999
+ minimum: 10
+ type: integer
+ type: object
+ shared_buffers_percentage:
+ description: >-
+ Percentage of total RAM that the database server uses
+ for shared memory buffers. Valid range is 20-60 (float),
+ which corresponds to 20% - 60%. This setting adjusts the
+ `shared_buffers` configuration value.
+ example: 41.5
+ maximum: 60
+ minimum: 20
+ type: number
+ work_mem:
+ description: >-
+ Sets the maximum amount of memory in MB to be used by a
+ query operation, such as a sort or hash table, before
+ writing to temporary disk files. Default is 1MB + 0.075%
+ of total RAM, up to 32 MB.
+ example: 4
+ maximum: 4
+ minimum: 1
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/database-postgresql-engine-config.yaml
+ label:
+ description: >-
+ __Filterable__ A unique, user-defined string referring to
+ the Managed Database. This string needs to be unique per
+ Managed Database engine type.
+ example: '{{label}}'
+ maxLength: 32
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ type:
+ description: >-
+ Request re-sizing of your cluster to a Linode Type with more
+ disk space. For example, you could request a Linode Type
+ that uses a higher plan.
+
+
+ - Needs to be a Linode Type with more disk space than your
+ current Linode.
+
+
+ - Resizing to a larger Linode Type can accrue additional
+ cost. Review the `price` output from the [List
+ types](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ operation for more information.
+
+
+ - You can't update the `allow_list` and set a new `type` in
+ the same request.
+
+
+ - Any active updates to your cluster need to complete before
+ you can request a resize. The reverse is also true: An
+ active resizing needs to complete before you can perform any
+ other update.
+ example: '{{type}}'
+ type: string
updates:
- $ref: '#/components/schemas/DatabasePostgreSQL/properties/updates'
+ additionalProperties: false
+ description: >-
+ Configuration settings for automated patch update
+ maintenance for the Managed Database.
+ properties:
+ day_of_week:
+ description: >-
+ The numeric reference for the day of the week to perform
+ maintenance. `1` is Monday, `2` is Tuesday, through to
+ `7` which is Sunday.
+ example: 1
+ maximum: 7
+ minimum: 1
+ type: integer
+ duration:
+ description: The maximum maintenance window time in hours.
+ example: 3
+ maximum: 3
+ minimum: 1
+ type: integer
+ frequency:
+ default: weekly
+ description: >-
+ How frequently maintenance occurs. Currently can only be
+ `weekly`.
+ enum:
+ - weekly
+ example: weekly
+ type: string
+ hour_of_day:
+ description: The hour to begin maintenance based in UTC time.
+ example: 0
+ maximum: 23
+ minimum: 0
+ type: integer
+ pending:
+ description: __Read-only__ An array of pending updates.
+ example: []
+ items:
+ additionalProperties: false
+ description: A planned maintenance update.
+ properties:
+ deadline:
+ description: >-
+ The time when a mandatory update needs to be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ description:
+ description: A description of the update.
+ example: TimescaleDB version 2.17.1 is available.
+ type: string
+ planned_for:
+ description: >-
+ The date and time a maintenance update will be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ type: object
+ minItems: 0
+ readOnly: true
+ type: array
+ type: object
+ version:
+ description: __Filterable__ The Managed Database engine version.
+ example: '{{version}}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/put-databases-postgresql-instance.yaml
+ required: true
responses:
'200':
- description: Managed Database updated successfully.
content:
application/json:
+ example:
+ allow_list:
+ - 192.0.2.133/24
+ - 192.0.2.92/24
+ cluster_size: 3
+ created: '2022-01-01T00:01:01'
+ encrypted: true
+ engine: postgresql
+ engine_config:
+ pg:
+ autovacuum_analyze_scale_factor: 1
+ autovacuum_analyze_threshold: 2147483647
+ autovacuum_max_workers: 20
+ autovacuum_naptime: 86400
+ autovacuum_vacuum_cost_delay: 100
+ autovacuum_vacuum_cost_limit: 10000
+ autovacuum_vacuum_scale_factor: 1
+ autovacuum_vacuum_threshold: 2147483647
+ bgwriter_delay: 200
+ bgwriter_flush_after: 512
+ bgwriter_lru_maxpages: 100
+ bgwriter_lru_multiplier: 2.5
+ deadlock_timeout: 1000
+ default_toast_compression: lz4
+ idle_in_transaction_session_timeout: 604800000
+ jit: true
+ max_files_per_process: 1024
+ max_locks_per_transaction: 1024
+ max_logical_replication_workers: 64
+ max_parallel_workers: 96
+ max_parallel_workers_per_gather: 96
+ max_pred_locks_per_transaction: 5120
+ max_replication_slots: 64
+ max_slot_wal_keep_size: 1000000
+ max_stack_depth: 2097152
+ max_standby_archive_delay: 1
+ max_standby_streaming_delay: 10
+ max_wal_senders: 20
+ max_worker_processes: 96
+ password_encryption: scram-sha-256
+ pg_partman_bgw.interval: 3600
+ pg_partman_bgw.role: myrolename
+ pg_stat_monitor.pgsm_enable_query_plan: true
+ pg_stat_monitor.pgsm_max_buckets: 10
+ pg_stat_statements.track: all
+ temp_file_limit: 5000000
+ timezone: Europe/Helsinki
+ track_activity_query_size: 1024
+ track_commit_timestamp: true
+ track_functions: 'on'
+ track_io_timing: 'off'
+ wal_sender_timeout: 60000
+ wal_writer_delay: 200
+ pg_stat_monitor_enable: false
+ pglookout:
+ max_failover_replication_time_lag: 10
+ shared_buffers_percentage: 41.5
+ work_mem: 4
+ fork:
+ restore_time: '2024-10-14T19:55:12'
+ source: 176881
+ hosts:
+ primary: lin-0000-000-pgsql-primary.servers.linodedb.net
+ secondary: lin-0000-000-pgsql-primary-private.servers.linodedb.net
+ id: 123
+ label: example-db
+ members:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ oldest_restore_time: '2024-10-03T20:48:05'
+ platform: rdbms-default
+ port: 3306
+ region: us-east
+ ssl_connection: true
+ status: active
+ total_disk_size_gb: 15
+ type: g6-dedicated-2
+ updated: '2022-01-01T00:01:01'
+ updates:
+ day_of_week: 1
+ duration: 3
+ frequency: weekly
+ hour_of_day: 0
+ pending: []
+ used_disk_size_gb: 2
+ version: '13.2'
schema:
- $ref: '#/components/schemas/DatabasePostgreSQL'
+ additionalProperties: false
+ description: Managed PostgreSQL Databases object.
+ properties:
+ allow_list:
+ description: >-
+ Controls access to the Managed Database.
+
+
+ - Individually included IP addresses or CIDR ranges can
+ access the Managed Database while all other sources are
+ blocked.
+
+
+ - A standalone value of `0.0.0.0/0` allows all IP
+ addresses access to the Managed Database.
+
+
+ - An empty array (`[]`) blocks all public and private
+ connections to the Managed Database.
+ example:
+ - 203.0.113.1/32
+ - 192.0.1.0/24
+ items:
+ format: ipv4/prefix_length
+ pattern: >-
+ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
+ type: string
+ minItems: 0
+ type: array
+ cluster_size:
+ default: 1
+ description: >-
+ The number of Linode instance nodes deployed to the
+ Managed Database.
+
+ - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes.
+
+ - A `2` node cluster is only available with a dedicated
+ plan. It consists of one primary node and one replica
+ node.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: 3
+ type: integer
+ x-linode-cli-display: 5
+ created:
+ description: __Read-only__ When this Managed Database was created.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encrypted:
+ default: true
+ description: >-
+ __Read-only__ Whether the Managed Databases is encrypted.
+ Currently required to be `true`.
+ example: true
+ readOnly: true
+ type: boolean
+ engine:
+ description: >-
+ __Filterable__, __Read-only__ The Managed Database engine
+ type.
+ example: postgresql
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ engine_config:
+ additionalProperties: false
+ description: >-
+ Advanced parameters you can apply to a PostgreSQL Managed
+ Database, via our partner [Aiven's
+ specification](https://aiven.io/docs/products/postgresql/reference/advanced-params).
+ Only include the objects for parameters you want to set in
+ your database. Omit objects for parameters you don't want
+ to define or change.
+
+
+ > 📘
+
+ >
+
+ > Aiven may offer additional parameters in their
+ specification. Currently, only those listed here are
+ supported for use in a PostgreSQL Managed Database. You
+ can also run the [List PostgreSQL Managed Database
+ advanced
+ parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-postgresql-config)
+ operation to see an up-to-date list.
+ properties:
+ pg:
+ additionalProperties: false
+ description: PostgreSQL-specific advanced configuration parameters.
+ properties:
+ autovacuum_analyze_scale_factor:
+ default: 0.2
+ description: >-
+ Specifies a fraction of the table size to add to
+ `autovacuum_analyze_threshold` when deciding
+ whether to trigger an `ANALYZE`.
+ example: 1
+ maximum: 1
+ minimum: 0
+ type: number
+ autovacuum_analyze_threshold:
+ default: 50
+ description: >-
+ Specifies the minimum number of inserted, updated,
+ or deleted tuples needed to trigger an `ANALYZE`
+ in any one table.
+ example: 2147483647
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ autovacuum_max_workers:
+ default: 3
+ description: >-
+ Specifies the maximum number of `autovacuum`
+ processes, other than the `autovacuum` launcher,
+ that may be running at any one time. This
+ parameter can only be set at server start.
+ example: 20
+ maximum: 20
+ minimum: 1
+ type: integer
+ autovacuum_naptime:
+ default: 60
+ description: >-
+ Specifies the minimum delay between `autovacuum`
+ runs on any given database. The delay is measured
+ in seconds.
+ example: 86400
+ maximum: 86400
+ minimum: 1
+ type: integer
+ autovacuum_vacuum_cost_delay:
+ default: 20
+ description: >-
+ Specifies the cost delay value that will be used
+ in automatic `VACUUM` operations. If `-1` is
+ specified, the regular `vacuum_cost_delay` value
+ will be used.
+ example: 100
+ maximum: 100
+ minimum: -1
+ type: integer
+ autovacuum_vacuum_cost_limit:
+ default: -1
+ description: >-
+ Specifies the cost limit value that will be used
+ in automatic `VACUUM` operations. The default of
+ `-1` applies the regular `vacuum_cost_limit`
+ value.
+ example: 10000
+ maximum: 10000
+ minimum: -1
+ type: integer
+ autovacuum_vacuum_scale_factor:
+ default: 0.2
+ description: >-
+ Specifies a fraction of the table size to add to
+ `autovacuum_vacuum_threshold` when deciding
+ whether to trigger a `VACUUM`.
+ example: 1
+ maximum: 1
+ minimum: 0
+ type: number
+ autovacuum_vacuum_threshold:
+ default: 50
+ description: >-
+ Specifies the minimum number of updated or deleted
+ tuples needed to trigger a `VACUUM` in any one
+ table.
+ example: 2147483647
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ bgwriter_delay:
+ default: 200
+ description: >-
+ Specifies the delay between activity rounds for
+ the background writer in milliseconds.
+ example: 200
+ maximum: 10000
+ minimum: 20
+ type: integer
+ bgwriter_flush_after:
+ default: 512
+ description: >-
+ Whenever more than `bgwriter_flush_after` bytes
+ have been written by the background writer,
+ attempt to force the OS to issue these writes to
+ the underlying storage. Specified in kilobytes. A
+ setting of `0` disables forced writeback.
+ example: 512
+ maximum: 2048
+ minimum: 0
+ type: integer
+ bgwriter_lru_maxpages:
+ default: 100
+ description: >-
+ In each round, no more than this many buffers will
+ be written by the background writer. Setting this
+ to `0` disables background writing.
+ example: 100
+ maximum: 1073741823
+ minimum: 0
+ type: integer
+ bgwriter_lru_multiplier:
+ default: 2.5
+ description: >-
+ The average recent need for new buffers is
+ multiplied by bgwriter_lru_multiplier to arrive at
+ an estimate of the number that will be needed
+ during the next round, (up to
+ `bgwriter_lru_maxpages`). `1.0` represents a
+ `\u201cjust` in `time\u201d` policy of writing
+ exactly the number of buffers predicted to be
+ needed. Larger values provide some cushion against
+ spikes in demand, while smaller values
+ intentionally leave writes to be done by server
+ processes.
+ example: 2.5
+ maximum: 10
+ minimum: 0
+ type: number
+ deadlock_timeout:
+ description: >-
+ This is the amount of time, in milliseconds, to
+ wait on a lock before checking to see if there is
+ a deadlock condition.
+ example: 1000
+ maximum: 1800000
+ minimum: 500
+ type: integer
+ default_toast_compression:
+ default: lz4
+ description: >-
+ Specifies the default TOAST compression method for
+ values of compressible columns.
+ enum:
+ - lz4
+ - pglz
+ example: lz4
+ type: string
+ idle_in_transaction_session_timeout:
+ description: >-
+ Time out sessions with open transactions after
+ this number of milliseconds.
+ example: 604800000
+ maximum: 604800000
+ minimum: 0
+ type: integer
+ jit:
+ description: >-
+ Controls system-wide use of Just-in-Time
+ Compilation (JIT).
+ example: true
+ type: boolean
+ max_files_per_process:
+ description: >-
+ PostgreSQL maximum number of files that can be
+ open per process.
+ example: 1024
+ maximum: 4096
+ minimum: 1000
+ type: integer
+ max_locks_per_transaction:
+ description: PostgreSQL maximum locks per transaction.
+ example: 1024
+ maximum: 6400
+ minimum: 64
+ type: integer
+ max_logical_replication_workers:
+ description: >-
+ PostgreSQL maximum logical replication workers,
+ taken from the pool of `max_parallel_workers`.
+ example: 64
+ maximum: 64
+ minimum: 4
+ type: integer
+ max_parallel_workers:
+ description: >-
+ Sets the maximum number of workers that the system
+ can support for parallel queries.
+ example: 96
+ maximum: 96
+ minimum: 0
+ type: integer
+ max_parallel_workers_per_gather:
+ description: >-
+ Sets the maximum number of workers that can be
+ started by a single Gather or Gather Merge node.
+ example: 96
+ maximum: 96
+ minimum: 0
+ type: integer
+ max_pred_locks_per_transaction:
+ description: >-
+ PostgreSQL maximum predicate locks per
+ transaction.
+ example: 5120
+ maximum: 5120
+ minimum: 64
+ type: integer
+ max_replication_slots:
+ description: PostgreSQL maximum replication slots.
+ example: 64
+ maximum: 64
+ minimum: 8
+ type: integer
+ max_slot_wal_keep_size:
+ default: -1
+ description: >-
+ PostgreSQL maximum write ahead log (WAL) size in
+ MB, reserved for replication slots. A value of
+ `-1` which indicates unlimited. The
+ `wal_keep_size` minimum write ahead log (WAL) size
+ setting takes precedence over this.
+ example: 1000000
+ maximum: 2147483647
+ minimum: -1
+ type: integer
+ max_stack_depth:
+ description: Maximum depth of the stack in bytes.
+ example: 2097152
+ maximum: 6291456
+ minimum: 2097152
+ type: integer
+ max_standby_archive_delay:
+ description: Maximum standby archive delay in milliseconds.
+ example: 1
+ maximum: 43200000
+ minimum: 1
+ type: integer
+ max_standby_streaming_delay:
+ description: Maximum standby streaming delay in milliseconds.
+ example: 10
+ maximum: 43200000
+ minimum: 1
+ type: integer
+ max_wal_senders:
+ description: PostgreSQL maximum write ahead log (WAL) senders.
+ example: 20
+ maximum: 64
+ minimum: 20
+ type: integer
+ max_worker_processes:
+ description: >-
+ Maximum number of background processes that the
+ system can support.
+ example: 96
+ maximum: 96
+ minimum: 8
+ type: integer
+ password_encryption:
+ default: md5
+ description: Chooses the algorithm for encrypting passwords.
+ enum:
+ - scram-sh-256
+ - md5
+ example: scram-sha-256
+ type: string
+ pg_partman_bgw.interval:
+ description: >-
+ Sets the time interval to run `pg_partman`
+ scheduled tasks.
+ example: 3600
+ maximum: 604800
+ minimum: 3600
+ type: integer
+ pg_partman_bgw.role:
+ description: >-
+ Controls which role to use for `pg_partman``
+ scheduled background tasks.
+ example: myrolename
+ type: string
+ pg_stat_monitor.pgsm_enable_query_plan:
+ description: Enables query plan monitoring.
+ example: true
+ type: boolean
+ pg_stat_monitor.pgsm_max_buckets:
+ description: Sets the maximum number of buckets.
+ example: 10
+ maximum: 10
+ minimum: 1
+ type: integer
+ pg_stat_statements.track:
+ default: top
+ description: >-
+ Controls which statements are counted. Specify
+ `top` to track top-level statements that are
+ issued directly by clients, `all` to also track
+ nested statements, such as those invoked within
+ functions, or `none` to disable statement
+ statistics collection.
+ enum:
+ - all
+ - top
+ - none
+ example: all
+ type: string
+ temp_file_limit:
+ description: >-
+ PostgreSQL temporary file limit in KB. Set to `-1`
+ for unlimited.
+ example: 5000000
+ maximum: 2147483647
+ minimum: -1
+ type: integer
+ timezone:
+ description: PostgreSQL service time zone.
+ example: Europe/Helsinki
+ maxLength: 64
+ pattern: ^[\\w/]*$
+ type: string
+ track_activity_query_size:
+ description: >-
+ Specifies the number of bytes reserved to track
+ the currently executing command for each active
+ session.
+ example: 1024
+ maximum: 10240
+ minimum: 1024
+ type: integer
+ track_commit_timestamp:
+ description: Record the commit time of transactions.
+ enum:
+ - 'on'
+ - 'off'
+ example: 'on'
+ type: string
+ track_functions:
+ default: none
+ description: >-
+ Enables tracking of function call counts and time
+ used. Specify `pl` to track only
+ procedural-language functions, `all` to also track
+ SQL and C language functions, or `none` to disable
+ function statistics tracking.
+ enum:
+ - all
+ - pl
+ - none
+ example: all
+ type: string
+ track_io_timing:
+ default: 'off'
+ description: >-
+ Enables timing of database I/O calls. This
+ parameter is `off` by default, because it will
+ repeatedly query the operating system for the
+ current time, which may cause significant overhead
+ on some platforms.
+ enum:
+ - 'on'
+ - 'off'
+ example: 'off'
+ type: string
+ wal_sender_timeout:
+ description: >-
+ Terminate replication connections that are
+ inactive for longer than this amount of time, in
+ milliseconds. Setting this value to `0` disables
+ the timeout.
+ example: 60000
+ maximum: 60000
+ minimum: 0
+ type: integer
+ wal_writer_delay:
+ default: 200
+ description: >-
+ Write ahead log (WAL) flush interval in
+ milliseconds. A value lower than 200 milliseconds
+ may negatively impact performance.
+ example: 200
+ maximum: 200
+ minimum: 10
+ type: integer
+ type: object
+ pg_stat_monitor_enable:
+ description: >-
+ Enable the `pg_stat_monitor` extension. When this
+ extension is enabled, PostgreSQL restarts the cluster
+ it's in. Additionally, `pg_stat_statements` results
+ for utility commands are unreliable.
+ example: false
+ type: boolean
+ pglookout:
+ additionalProperties: false
+ description: Parameter used to apply PGLookout settings.
+ properties:
+ max_failover_replication_time_lag:
+ description: >-
+ Number of seconds of master unavailability before
+ triggering database failover to standby.
+ example: 10
+ maximum: 999999
+ minimum: 10
+ type: integer
+ type: object
+ shared_buffers_percentage:
+ description: >-
+ Percentage of total RAM that the database server uses
+ for shared memory buffers. Valid range is 20-60
+ (float), which corresponds to 20% - 60%. This setting
+ adjusts the `shared_buffers` configuration value.
+ example: 41.5
+ maximum: 60
+ minimum: 20
+ type: number
+ work_mem:
+ description: >-
+ Sets the maximum amount of memory in MB to be used by
+ a query operation, such as a sort or hash table,
+ before writing to temporary disk files. Default is 1MB
+ + 0.075% of total RAM, up to 32 MB.
+ example: 4
+ maximum: 4
+ minimum: 1
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/database-postgresql-engine-config.yaml
+ x-linode-cli-display: 7
+ fork:
+ additionalProperties: false
+ description: >-
+ Details on the database that was the target of the fork.
+ This only exists if the database was restored by creating
+ a fork from another
+ [MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances)
+ or
+ [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)
+ database.
+ properties:
+ restore_time:
+ description: >-
+ The database timestamp from which it was restored.
+ This is _not_ when the fork was created.
+ example: '2024-10-14 19:55:12'
+ format: date-time
+ type: string
+ source:
+ description: The instance id of the database that was forked from.
+ example: 176881
+ type: integer
+ type: object
+ hosts:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The primary and secondary hosts for the
+ Managed Database. These are assigned after provisioning is
+ complete.
+ properties:
+ primary:
+ description: The primary host for the Managed Database.
+ example: lin-0000-000-pgsql-primary.servers.linodedb.net
+ nullable: true
+ type: string
+ secondary:
+ 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.
+
+
+ > 📘
+
+ >
+
+ > The secondary hostname is publicly visible and
+ accessible.
+ example: >-
+ lin-0000-000-pgsql-primary-private.servers.linodedb.net
+ nullable: true
+ type: string
+ readOnly: true
+ type: object
+ id:
+ description: >-
+ __Read-only__ A unique ID that can be used to identify and
+ reference the Managed Database.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ A unique, user-defined string referring to
+ the Managed Database. This string needs to be unique per
+ Managed Database engine type.
+ example: example-db
+ maxLength: 32
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ members:
+ description: >-
+ __Read-only__ A mapping between IP addresses and strings
+ designating them as `primary` or `failover`.
+ example:
+ 45.56.110.70: primary
+ 45.79.159.239: failover
+ readOnly: true
+ type: object
+ oldest_restore_time:
+ description: >-
+ __Read-only__ The oldest time to which a database can be
+ restored.
+ example: '2024-10-03 20:48:05'
+ format: date-time
+ readOnly: true
+ type: string
+ platform:
+ description: >-
+ __Filterable__, __Read-only__ The back-end platform for
+ relational databases used by the service.
+ enum:
+ - rdbms-legacy
+ - rdbms-default
+ example: rdbms-default
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ port:
+ description: __Read-only__ The access port for this Managed Database.
+ example: 3306
+ readOnly: true
+ type: integer
+ region:
+ description: >-
+ __Filterable__ The
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ ID for the Managed Database.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ ssl_connection:
+ default: true
+ description: >-
+ Currently required to be `true`. Whether to require SSL
+ credentials to establish a connection to the Managed
+ Database. Run the [Get managed PostgreSQL database
+ credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-credentials)
+ operation for access information.
+ example: true
+ type: boolean
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The operating status of the
+ Managed Database.
+ enum:
+ - provisioning
+ - active
+ - suspending
+ - suspended
+ - resuming
+ - failed
+ - degraded
+ - updating
+ - resizing
+ example: active
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ active: green
+ default_: white
+ degraded: red
+ failed: red
+ provisioning: yellow
+ restoring: yellow
+ resuming: yellow
+ x-linode-cli-display: 100
+ x-linode-filterable: true
+ total_disk_size_gb:
+ description: __Read-only__ The total disk size of the database, in GB.
+ example: 15
+ readOnly: true
+ type: integer
+ type:
+ description: >-
+ __Filterable__ The Linode Instance type used by the
+ Managed Database for its nodes.
+ example: g6-dedicated-2
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Managed Database was last updated.
+ example: '2022-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ updates:
+ additionalProperties: false
+ description: >-
+ Configuration settings for automated patch update
+ maintenance for the Managed Database.
+ properties:
+ day_of_week:
+ description: >-
+ The numeric reference for the day of the week to
+ perform maintenance. `1` is Monday, `2` is Tuesday,
+ through to `7` which is Sunday.
+ example: 1
+ maximum: 7
+ minimum: 1
+ type: integer
+ duration:
+ description: The maximum maintenance window time in hours.
+ example: 3
+ maximum: 3
+ minimum: 1
+ type: integer
+ frequency:
+ default: weekly
+ description: >-
+ How frequently maintenance occurs. Currently can only
+ be `weekly`.
+ enum:
+ - weekly
+ example: weekly
+ type: string
+ hour_of_day:
+ description: The hour to begin maintenance based in UTC time.
+ example: 0
+ maximum: 23
+ minimum: 0
+ type: integer
+ pending:
+ description: __Read-only__ An array of pending updates.
+ example: []
+ items:
+ additionalProperties: false
+ description: A planned maintenance update.
+ properties:
+ deadline:
+ description: >-
+ The time when a mandatory update needs to be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ description:
+ description: A description of the update.
+ example: TimescaleDB version 2.17.1 is available.
+ type: string
+ planned_for:
+ description: >-
+ The date and time a maintenance update will be
+ applied.
+ example: '2024-10-14T19:55:12'
+ format: date-time
+ nullable: true
+ type: string
+ type: object
+ minItems: 0
+ readOnly: true
+ type: array
+ type: object
+ used_disk_size_gb:
+ description: >-
+ __Read-only__ The amount of space currently in use in the
+ database, in GB.
+ example: 2
+ readOnly: true
+ type: integer
+ version:
+ description: __Filterable__ The Managed Database engine version.
+ example: '13.2'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/database-postgresql.yaml
+ description: PostgreSQL Managed Database updated successfully.
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": "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/databases/postgresql/instances/123
- - lang: CLI
- source: |
- 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
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed PostgreSQL Database.
- required: true
- schema:
- type: integer
- '/databases/postgresql/instances/{instanceId}/backups':
- get:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_write
+ summary: Update a PostgreSQL Managed Database
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:
- - name: instanceId
- in: path
- description: The ID of the Managed PostgreSQL Database.
- required: true
- schema:
- type: integer
- description: |
- Display all backups for an accessible Managed PostgreSQL Database.
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli databases postgresql-update 123 \
+ --label example-db \
+ --allow_list 203.0.113.1 \
+ --allow_list 192.0.1.0/24 \
+ --type g6-standard-1 \
+ --updates.frequency weekly \
+ --updates.duration 3 \
+ --updates.hour_of_day 12 \
+ --updates.day_of_week 4 \
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: postgresql-update
+ x-linode-grant: read_write
+ delete:
+ description: >-
+ Remove a PostgreSQL Managed Database from your account.
- 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.
+ - The user needs `read_write` [user
+ grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ access to the database.
- 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:
- - 'databases:read_write'
+
+ - The database's status can be `active`, `failed`, or `degraded`.
+
+
+ - Only unrestricted users can access this operation. They have access
+ regardless of the acting token's OAuth scopes.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-databases-postgre-sql-instance
+ operationId: delete-databases-postgre-sql-instance
responses:
'200':
- description: Returns a paginated list of backups for the Managed PostgreSQL Database.
content:
application/json:
+ example: {}
schema:
- allOf:
- - $ref: '#/components/schemas/PaginationEnvelope'
- - type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/DatabaseBackup'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ description: PostgreSQL Managed Database successfully deleted.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/databases/postgresql/instances/123/backups
- - lang: CLI
- source: |
- linode-cli databases postgresql-backups-list 123
- post:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_write
+ summary: Delete a PostgreSQL Managed Database
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-akamai:
+ tabs:
+ - syntax: linode-cli databases postgresql-delete 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: postgresql-delete
x-linode-grant: read_write
- description: |
- Creates a snapshot backup of a Managed PostgreSQL Database.
+ parameters:
+ - description: The ID of the Managed PostgreSQL Database.
+ example: '{{instanceId}}'
+ in: path
+ name: instanceId
+ required: true
+ schema:
+ example: 123458
+ type: integer
+ x-akamai:
+ file-path: parameters/instance-id-path.yaml
+ x-akamai:
+ file-path: paths/postgresql-instance.yaml
+ path-info: /{apiVersion}/databases/postgresql/instances/{instanceId}
+ x-linode-cli-command: databases
+ /databases/postgresql/instances/{instanceId}/credentials:
+ get:
+ description: >-
+ Display the root username and password for an accessible PostgreSQL
+ Managed Database. The database's status needs to be `active`.
- Requires `read_write` access to the Database.
- Up to 3 snapshot backups for each Database can be stored at a time. If 3 snapshots have been created for a Database, one must be deleted before another can be made.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- 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. If another backup is in progress, it must complete before a new backup can be initiated.
- security:
- - personalAccessToken: []
- - oauth:
- - 'databases:read_write'
- requestBody:
- description: Information about the snapshot backup to create.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/DatabaseBackupSnapshot'
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-credentials
+ operationId: get-databases-postgre-sql-instance-credentials
responses:
'200':
- description: Database snapshot backup request successful.
content:
application/json:
+ example:
+ password: s3cur3P@ssw0rd
+ username: jperez
schema:
+ additionalProperties: false
+ description: Managed Database object for database credentials.
+ properties:
+ password:
+ description: >-
+ __Read-only__ The randomly generated root password for the
+ Managed Database instance.
+ example: s3cur3P@ssw0rd
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ username:
+ description: >-
+ __Read-only__ The root username for the Managed Database
+ instance.
+ example: linroot
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
type: object
+ x-akamai:
+ file-path: schemas/database-credentials.yaml
+ description: PostgreSQL Managed Database root username and password.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -H "Content-Type: application/json" \
- -X POST -d '{
- "label": "snapshot1",
- "target": "primary"
- }' \
- https://api.linode.com/v4/databases/postgresql/instances/123/backups/
- - lang: CLI
- source: |
- linode-cli databases postgresql-backup-snapshot 123 \
- --label snapshot1 \
- --target primary
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed PostgreSQL Database.
- required: true
- schema:
- type: integer
- '/databases/postgresql/instances/{instanceId}/backups/{backupId}':
- get:
- tags:
- - 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: |
- Display information for a single backup for an accessible Managed PostgreSQL Database.
-
- The Database must not be provisioning to perform this command.
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'databases:read_write'
+ - databases:read_only
+ summary: Get PostgreSQL Managed Database credentials
+ tags:
+ - Credentials
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases postgresql-creds-view 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: postgresql-creds-view
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the Managed PostgreSQL Database.
+ example: '{{instanceId}}'
+ in: path
+ name: instanceId
+ required: true
+ schema:
+ example: 123458
+ type: integer
+ x-akamai:
+ file-path: parameters/instance-id-path.yaml
+ x-akamai:
+ file-path: paths/postgresql-credentials.yaml
+ path-info: /{apiVersion}/databases/postgresql/instances/{instanceId}/credentials
+ x-linode-cli-command: databases
+ /databases/postgresql/instances/{instanceId}/credentials/reset:
+ post:
+ description: >-
+ Reset the root password for a PostgreSQL Managed Database. A new root
+ password is randomly generated and accessible with the [Get PostgreSQL
+ Managed Database
+ credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-credentials)
+ operation.
+
+
+ - The database's status needs to be `active`.
+
+
+ - Only unrestricted users can access this operation. These users have
+ access regardless of the acting token's OAuth scopes.
+
+
+ - It may take several seconds for credentials to reset.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instance-credentials-reset
+ operationId: post-databases-postgre-sql-instance-credentials-reset
responses:
'200':
- description: Returns a single backup for the Managed PostgreSQL Database.
content:
application/json:
+ example: {}
schema:
- $ref: '#/components/schemas/DatabaseBackup'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ description: PostgreSQL Managed Database instance credentials successfully reset.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/databases/postgresql/instances/123/backups/456
- - lang: CLI
- source: |
- linode-cli databases postgresql-backup-view 123 456
- parameters:
- - 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
- delete:
- tags:
- - 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
- 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.
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'databases:read_write'
+ - databases:read_write
+ summary: Reset PostgreSQL Managed Database credentials
+ tags:
+ - Credentials
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases postgresql-creds-reset 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: postgresql-creds-reset
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Managed PostgreSQL Database.
+ example: '{{instanceId}}'
+ in: path
+ name: instanceId
+ required: true
+ schema:
+ example: 123458
+ type: integer
+ x-akamai:
+ file-path: parameters/instance-id-path-9f3ead4a.yaml
+ x-akamai:
+ file-path: paths/postgresql-reset.yaml
+ path-info: >-
+ /{apiVersion}/databases/postgresql/instances/{instanceId}/credentials/reset
+ x-linode-cli-command: databases
+ /databases/postgresql/instances/{instanceId}/patch:
+ post:
+ description: >-
+ Apply security patches and updates to the underlying operating system of
+ the PostgreSQL Managed Database. This function runs during regular
+ maintenance windows, which you can configure with the [Update a managed
+ PostgreSQL
+ database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance)
+ operation.
+
+
+ - The user needs `read_write` [user
+ grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ access to the database.
+
+
+ - The database's status needs to be `active`.
+
+
+ - If your database cluster is configured with a single node, downtime
+ occurs during maintenance updates. Consider upgrading to a [high
+ availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability)
+ plan to avoid any maintenance downtime.
+
+
+ - Major upgrades are optional until the service reaches end of service,
+ and can be done in place.
+
+
+ - A successful request triggers a `database_upgrade`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events).
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instance-patch
+ operationId: post-databases-postgre-sql-instance-patch
responses:
'200':
- description: Request to delete Database backup successful.
content:
application/json:
+ example: {}
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ description: PostgreSQL Managed Database instance patch request successful.
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/backups/456
- - lang: CLI
- source: |
- linode-cli databases postgresql-backup-delete 123 456
- parameters:
- - 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
- '/databases/postgresql/instances/{instanceId}/backups/{backupId}/restore':
- post:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_write
+ summary: Patch a PostgreSQL Managed Database
tags:
- 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-akamai:
+ tabs:
+ - syntax: linode-cli databases postgresql-patch 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: postgresql-patch
x-linode-grant: read_write
- description: |
- Restore a backup to a Managed PostgreSQL Database on your Account.
+ parameters:
+ - description: The ID of the Managed PostgreSQL Database.
+ example: '{{instanceId}}'
+ in: path
+ name: instanceId
+ required: true
+ schema:
+ example: 123458
+ type: integer
+ x-akamai:
+ file-path: parameters/instance-id-path.yaml
+ x-akamai:
+ file-path: paths/postgresql-patch.yaml
+ path-info: /{apiVersion}/databases/postgresql/instances/{instanceId}/patch
+ x-linode-cli-command: databases
+ /databases/postgresql/instances/{instanceId}/resume:
+ post:
+ description: >-
+ Resume a suspended PostgreSQL Managed Database from your account. This
+ resumes billing for the cluster.
- Requires `read_write` access to the Database.
- The Database must have an `active` status to perform this command.
+ - The user needs `read_write` [user
+ grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ access to the database.
- **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:
- - 'databases:read_write'
+ - The database's status needs to be `suspended`.
+
+
+ - A successful request triggers a `database_resume`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events).
+ __OAuth scopes__.
+
+ ```
+ databases:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/resume-databases-postgre-sql-instance
+ operationId: resume-databases-postgre-sql-instance
responses:
'200':
- description: Request to restore backup successful.
content:
application/json:
+ example: {}
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ description: PostgreSQL Managed Database successfully resumed.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X POST https://api.linode.com/v4/databases/postgresql/instances/123/backups/456/restore
- - lang: CLI
- source: |
- linode-cli databases postgresql-backup-restore 123 456
- parameters:
- - 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
- '/databases/postgresql/instances/{instanceId}/credentials':
- get:
- tags:
- - 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:
- - 'databases:read_only'
- responses:
- '200':
- description: Managed Database root username and password.
content:
application/json:
schema:
- $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/databases/postgresql/instances/123/credentials/
- - lang: CLI
- source: |
- linode-cli databases postgresql-creds-view 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed PostgreSQL Database.
- required: true
- schema:
- type: integer
- '/databases/postgresql/instances/{instanceId}/credentials/reset':
- post:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_write
+ summary: Resume a PostgreSQL Managed Database
tags:
- 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-akamai:
+ tabs:
+ - syntax: databases:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: postgresql-resume
x-linode-grant: read_write
- description: |
- Reset the root password for a Managed PostgreSQL Database.
+ parameters:
+ - description: The ID of the Managed PostgreSQL Database.
+ example: '{{instanceId}}'
+ in: path
+ name: instanceId
+ required: true
+ schema:
+ example: 123458
+ type: integer
+ x-akamai:
+ file-path: parameters/instance-id-path.yaml
+ x-akamai:
+ file-path: paths/postgresql-resume.yaml
+ path-info: /{apiVersion}/databases/postgresql/instances/{instanceId}/resume
+ x-linode-cli-command: databases
+ /databases/postgresql/instances/{instanceId}/ssl:
+ get:
+ description: >-
+ Display the SSL CA certificate for an accessible PostgreSQL Managed
+ Database. The database's status needs to be `active`.
- 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.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- 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:
- - 'databases:read_write'
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-databases-postgresql-instance-ssl
+ operationId: get-databases-postgresql-instance-ssl
responses:
'200':
- description: Managed Database instance credentials successfully reset.
content:
application/json:
+ example:
+ ca_certificate: LS0tLS1CRUdJ...==
schema:
+ additionalProperties: false
+ description: Managed Database SSL object.
+ properties:
+ ca_certificate:
+ description: >-
+ The base64-encoded SSL CA certificate for the Managed
+ Database instance.
+ example: LS0tLS1CRUdJ...==
+ format: base64
+ type: string
+ x-linode-cli-display: 1
type: object
+ x-akamai:
+ file-path: schemas/database-ssl.yaml
+ description: >-
+ Returns the SSL CA certificate of a single PostgreSQL Managed
+ Database.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X POST https://api.linode.com/v4/databases/postgresql/instances/123/credentials/reset
- - lang: CLI
- source: |
- linode-cli databases postgresql-creds-reset 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed PostgreSQL Database.
- required: true
- schema:
- type: integer
- '/databases/postgresql/instances/{instanceId}/ssl':
- get:
- tags:
- - 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:
- - 'databases:read_only'
- responses:
- '200':
- description: Returns the SSL CA certificate of a single Managed PostgreSQL Database.
content:
application/json:
schema:
- $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/databases/postgresql/instances/123/ssl
- - lang: CLI
- source: |
- linode-cli databases postgresql-ssl-cert 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed PostgreSQL Database.
- required: true
- schema:
- type: integer
- '/databases/postgresql/instances/{instanceId}/patch':
- post:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_only
+ summary: Get a PostgreSQL Managed Database SSL certificate
tags:
- - 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: |
- 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.
+ - SSL certificates
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases postgresql-ssl-cert 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: databases:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: postgresql-ssl-cert
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the Managed PostgreSQL Database.
+ example: '{{instanceId}}'
+ in: path
+ name: instanceId
+ required: true
+ schema:
+ example: 123458
+ type: integer
+ x-akamai:
+ file-path: parameters/instance-id-path-9f3ead4a.yaml
+ x-akamai:
+ file-path: paths/postgresql-ssl.yaml
+ path-info: /{apiVersion}/databases/postgresql/instances/{instanceId}/ssl
+ x-linode-cli-command: databases
+ /databases/postgresql/instances/{instanceId}/suspend:
+ post:
+ description: >-
+ Suspend a PostgreSQL Managed Database from your account, releasing idle
+ resources and keeping only necessary data. All service data is lost if
+ there are no backups available. This halts billing for the cluster.
- Requires `read_write` access to the Database.
- The Database must have an `active` status to perform this command.
+ - The user needs `read_write` [user
+ grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ access to the database.
- **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's status needs to be `active`.
- * **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:
- - 'databases:read_write'
+
+ - Akamai deletes suspended clusters after 180 days.
+
+
+ - A successful request triggers a `database_suspend`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events).
+ __OAuth scopes__.
+
+ ```
+ databases:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/suspend-databases-postgre-sql-instance
+ operationId: suspend-databases-postgre-sql-instance
responses:
'200':
- description: Managed Database instance patch request successful.
content:
application/json:
+ example: {}
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ description: PostgreSQL Managed Database successfully suspended.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X POST https://api.linode.com/v4/databases/postgresql/instances/123/patch
- - lang: CLI
- source: |
- linode-cli databases postgresql-patch 123
- parameters:
- - name: instanceId
- in: path
- description: The ID of the Managed PostgreSQL Database.
- required: true
- schema:
- type: integer
- /databases/types:
- get:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_write
+ summary: Suspend a PostgreSQL Managed Database
tags:
- 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
+ x-akamai:
+ tabs:
+ - syntax: databases:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: postgresql-suspend
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Managed PostgreSQL Database.
+ example: '{{instanceId}}'
+ in: path
+ name: instanceId
+ required: true
+ schema:
+ example: 123458
+ type: integer
+ x-akamai:
+ file-path: parameters/instance-id-path.yaml
+ x-akamai:
+ file-path: paths/postgresql-suspend.yaml
+ path-info: /{apiVersion}/databases/postgresql/instances/{instanceId}/suspend
+ x-linode-cli-command: databases
+ /databases/types:
+ get:
+ description: >-
+ Display all Managed Databases node types. The type and number of nodes
+ determine the resources and price of a Managed Databases instance. Each
+ database can have one node type. With a high availability database, all
+ nodes are deployed according to the chosen type.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-databases-types
+ operationId: get-databases-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.
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Returns a paginated list of all Managed Database types.
content:
application/json:
- x-linode-cli-nested-list: 'engines.mysql, engines.postgresql, engines.mongodb'
+ example:
+ data:
+ - class: nanode
+ deprecated: false
+ disk: 25600
+ engines:
+ mysql:
+ - price:
+ hourly: 0.03
+ monthly: 20
+ quantity: 1
+ postgresql:
+ - price:
+ hourly: 0.03
+ monthly: 20
+ quantity: 1
+ id: g6-nanode-1
+ label: DBaaS - Nanode 1GB
+ memory: 1024
+ vcpus: 1
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: Managed Database plan type object.
+ properties:
+ class:
+ description: The compute class category.
+ example: nanode
+ type: string
+ disk:
+ description: >-
+ The amount of disk space set aside for Databases
+ of this plan type. The value is represented in
+ megabytes.
+ example: 25600
+ type: integer
+ x-linode-cli-display: 4
+ engines:
+ additionalProperties: false
+ description: >-
+ Information for the supported third-party
+ databases that can be used with Managed
+ Databases.
+ properties:
+ mysql:
+ description: Pricing details for MySQL Managed Databases.
+ items:
+ additionalProperties: false
+ properties:
+ price:
+ additionalProperties: false
+ description: >-
+ Cost in US dollars, broken down into
+ hourly and monthly charges.
+ properties:
+ hourly:
+ description: >-
+ Cost (in US dollars) per hour for this
+ subscription tier.
+ example: 0.03
+ type: number
+ monthly:
+ description: >-
+ Maximum cost (in US dollars) per month
+ for this subscription tier.
+ example: 20
+ type: number
+ type: object
+ quantity:
+ description: >-
+ The number of nodes for the Managed
+ Database cluster for this subscription
+ tier.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: 1
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/database-type-engine.yaml
+ type: array
+ postgresql:
+ description: >-
+ Pricing details for PostgreSQL Managed
+ Databases.
+ items:
+ additionalProperties: false
+ properties:
+ price:
+ additionalProperties: false
+ description: >-
+ Cost in US dollars, broken down into
+ hourly and monthly charges.
+ properties:
+ hourly:
+ description: >-
+ Cost (in US dollars) per hour for this
+ subscription tier.
+ example: 0.03
+ type: number
+ monthly:
+ description: >-
+ Maximum cost (in US dollars) per month
+ for this subscription tier.
+ example: 20
+ type: number
+ type: object
+ quantity:
+ description: >-
+ The number of nodes for the Managed
+ Database cluster for this subscription
+ tier.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: 1
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/database-type-engine.yaml
+ type: array
+ type: object
+ id:
+ description: >-
+ __Read-only__ The ID representing the Managed
+ Database node plan type.
+ example: g6-nanode-1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Read-only__ A human-readable string that
+ describes each plan type. For display purposes
+ only.
+ example: DBaaS - Nanode 1GB
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ memory:
+ description: >-
+ The amount of RAM allocated to Database created
+ of this plan type. The value is represented in
+ megabytes.
+ example: 1024
+ type: integer
+ x-linode-cli-display: 3
+ vcpus:
+ description: >-
+ The number of CPUs allocated to databases of
+ this plan type.
+ example: 1
+ type: integer
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/database-type.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/get-databases-types-200.yaml
+ x-linode-cli-nested-list: engines.mysql, engines.postgresql
x-linode-cli-use-schema:
- type: object
+ additionalProperties: false
properties:
- id:
- x-linode-cli-display: 1
- label:
- x-linode-cli-display: 2
_split:
x-linode-cli-display: 2.5
engines:
+ additionalProperties: false
properties:
- quantity:
- x-linode-cli-display: 3
price:
+ additionalProperties: false
properties:
hourly:
x-linode-cli-display: 4
monthly:
x-linode-cli-display: 5
- schema:
- allOf:
- - $ref: '#/components/schemas/PaginationEnvelope'
- - type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/DatabaseType'
+ type: object
+ quantity:
+ x-linode-cli-display: 3
+ type: object
+ id:
+ x-linode-cli-display: 1
+ label:
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/database-type-cli.yaml
+ description: Returns a paginated list of all Managed Databases types.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl https://api.linode.com/v4/databases/types
- - lang: CLI
- source: |
- linode-cli databases types
- '/databases/types/{typeId}':
- get:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: List Managed Databases types
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
+ - Types
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases types
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: types
+ parameters: []
+ x-akamai:
+ file-path: paths/database-types.yaml
+ path-info: /{apiVersion}/databases/types
+ x-linode-cli-command: databases
+ /databases/types/{typeId}:
+ get:
+ description: >-
+ Display the details of a single Managed Databases node type. The type
+ and number of nodes determine the resources and price of a Managed
+ Databases instance. Run the [List Managed Databases
+ type](https://techdocs.akamai.com/linode-api/reference/get-databases-types)
+ operation and store the `id` for the applicable database node type.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-databases-type
+ operationId: get-databases-type
parameters:
- - name: typeId
- in: path
- description: The ID of the Managed Database type.
- required: true
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
schema:
- type: string
- 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.
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- 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
+ example:
+ class: nanode
+ disk: 25600
+ engines:
+ mysql:
+ - price:
+ hourly: 0.03
+ monthly: 20
+ quantity: 1
+ postgresql:
+ - price:
+ hourly: 0.03
+ monthly: 20
+ quantity: 1
+ id: g6-nanode-1
+ label: DBaaS - Nanode 1GB
+ memory: 1024
+ vcpus: 1
+ schema:
+ additionalProperties: false
+ description: Managed Database plan type object.
properties:
+ class:
+ description: The compute class category.
+ example: nanode
+ type: string
+ disk:
+ description: >-
+ The amount of disk space set aside for Databases of this
+ plan type. The value is represented in megabytes.
+ example: 25600
+ type: integer
+ x-linode-cli-display: 4
+ engines:
+ additionalProperties: false
+ description: >-
+ Information for the supported third-party databases that
+ can be used with Managed Databases.
+ properties:
+ mysql:
+ description: Pricing details for MySQL Managed Databases.
+ items:
+ additionalProperties: false
+ properties:
+ price:
+ additionalProperties: false
+ description: >-
+ Cost in US dollars, broken down into hourly and
+ monthly charges.
+ properties:
+ hourly:
+ description: >-
+ Cost (in US dollars) per hour for this
+ subscription tier.
+ example: 0.03
+ type: number
+ monthly:
+ description: >-
+ Maximum cost (in US dollars) per month for
+ this subscription tier.
+ example: 20
+ type: number
+ type: object
+ quantity:
+ description: >-
+ The number of nodes for the Managed Database
+ cluster for this subscription tier.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: 1
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/database-type-engine.yaml
+ type: array
+ postgresql:
+ description: Pricing details for PostgreSQL Managed Databases.
+ items:
+ additionalProperties: false
+ properties:
+ price:
+ additionalProperties: false
+ description: >-
+ Cost in US dollars, broken down into hourly and
+ monthly charges.
+ properties:
+ hourly:
+ description: >-
+ Cost (in US dollars) per hour for this
+ subscription tier.
+ example: 0.03
+ type: number
+ monthly:
+ description: >-
+ Maximum cost (in US dollars) per month for
+ this subscription tier.
+ example: 20
+ type: number
+ type: object
+ quantity:
+ description: >-
+ The number of nodes for the Managed Database
+ cluster for this subscription tier.
+ enum:
+ - 1
+ - 2
+ - 3
+ example: 1
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/database-type-engine.yaml
+ type: array
+ type: object
id:
+ description: >-
+ __Read-only__ The ID representing the Managed Database
+ node plan type.
+ example: g6-nanode-1
+ readOnly: true
+ type: string
x-linode-cli-display: 1
label:
+ description: >-
+ __Read-only__ A human-readable string that describes each
+ plan type. For display purposes only.
+ example: DBaaS - Nanode 1GB
+ readOnly: true
+ type: string
x-linode-cli-display: 2
+ memory:
+ description: >-
+ The amount of RAM allocated to Database created of this
+ plan type. The value is represented in megabytes.
+ example: 1024
+ type: integer
+ x-linode-cli-display: 3
+ vcpus:
+ description: >-
+ The number of CPUs allocated to databases of this plan
+ type.
+ example: 1
+ type: integer
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/database-type.yaml
+ x-linode-cli-nested-list: engines.mysql, engines.postgresql
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
_split:
x-linode-cli-display: 2.5
engines:
+ additionalProperties: false
properties:
- quantity:
- x-linode-cli-display: 3
price:
+ additionalProperties: false
properties:
hourly:
x-linode-cli-display: 4
monthly:
x-linode-cli-display: 5
- schema:
- $ref: '#/components/schemas/DatabaseType'
+ type: object
+ quantity:
+ x-linode-cli-display: 3
+ type: object
+ id:
+ x-linode-cli-display: 1
+ label:
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/database-type-cli.yaml
+ description: Returns a single Managed Databases type.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl https://api.linode.com/v4/databases/types/g6-nanode-1
- - lang: CLI
- source: |
- linode-cli databases type-view g6-nanode-1
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: Get a Managed Databases type
+ tags:
+ - Types
+ x-akamai:
+ tabs:
+ - syntax: linode-cli databases type-view
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: type-view
+ parameters:
+ - description: The ID of the Managed Database type.
+ example: '{{typeId}}'
+ in: path
+ name: typeId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/database-node-type-id.yaml
+ x-akamai:
+ file-path: paths/database-type.yaml
+ path-info: /{apiVersion}/databases/types/{typeId}
+ x-linode-cli-command: databases
+components:
+ x-stackQL-resources:
+ engines:
+ id: linode.databases.engines
+ name: engines
+ title: Engines
+ methods:
+ get_databases_engines:
+ operation:
+ $ref: '#/paths/~1databases~1engines/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ get_databases_engine:
+ operation:
+ $ref: '#/paths/~1databases~1engines~1{engineId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/engines/methods/get_databases_engine
+ - $ref: >-
+ #/components/x-stackQL-resources/engines/methods/get_databases_engines
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ instances:
+ id: linode.databases.instances
+ name: instances
+ title: Instances
+ methods:
+ get_databases_instances:
+ operation:
+ $ref: '#/paths/~1databases~1instances/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/instances/methods/get_databases_instances
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ mysql_config:
+ id: linode.databases.mysql_config
+ name: mysql_config
+ title: Mysql Config
+ methods:
+ get_databases_mysql_config:
+ operation:
+ $ref: '#/paths/~1databases~1mysql~1config/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/mysql_config/methods/get_databases_mysql_config
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ mysql_instances:
+ id: linode.databases.mysql_instances
+ name: mysql_instances
+ title: Mysql Instances
+ methods:
+ post_databases_mysql_instances:
+ operation:
+ $ref: '#/paths/~1databases~1mysql~1instances/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_databases_mysql_instances:
+ operation:
+ $ref: '#/paths/~1databases~1mysql~1instances/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ get_databases_mysql_instance:
+ operation:
+ $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_databases_mysql_instance:
+ operation:
+ $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_databases_mysql_instance:
+ operation:
+ $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_databases_mysql_instance_patch:
+ operation:
+ $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1patch/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ resume_databases_mysql_instance:
+ operation:
+ $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1resume/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ suspend_databases_mysql_instance:
+ operation:
+ $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1suspend/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/mysql_instances/methods/get_databases_mysql_instance
+ - $ref: >-
+ #/components/x-stackQL-resources/mysql_instances/methods/get_databases_mysql_instances
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/mysql_instances/methods/post_databases_mysql_instances
+ update:
+ - $ref: >-
+ #/components/x-stackQL-resources/mysql_instances/methods/post_databases_mysql_instance_patch
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/mysql_instances/methods/delete_databases_mysql_instance
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/mysql_instances/methods/put_databases_mysql_instance
+ mysql_instance_credentials:
+ id: linode.databases.mysql_instance_credentials
+ name: mysql_instance_credentials
+ title: Mysql Instance Credentials
+ methods:
+ get_databases_mysql_instance_credentials:
+ operation:
+ $ref: >-
+ #/paths/~1databases~1mysql~1instances~1{instanceId}~1credentials/get
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_databases_mysql_instance_credentials_reset:
+ operation:
+ $ref: >-
+ #/paths/~1databases~1mysql~1instances~1{instanceId}~1credentials~1reset/post
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/mysql_instance_credentials/methods/get_databases_mysql_instance_credentials
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ mysql_ssl_certificates:
+ id: linode.databases.mysql_ssl_certificates
+ name: mysql_ssl_certificates
+ title: Mysql Ssl Certificates
+ methods:
+ get_databases_mysql_instance_ssl:
+ operation:
+ $ref: '#/paths/~1databases~1mysql~1instances~1{instanceId}~1ssl/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/mysql_ssl_certificates/methods/get_databases_mysql_instance_ssl
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ postgresql_config:
+ id: linode.databases.postgresql_config
+ name: postgresql_config
+ title: Postgresql Config
+ methods:
+ get_databases_postgresql_config:
+ operation:
+ $ref: '#/paths/~1databases~1postgresql~1config/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/postgresql_config/methods/get_databases_postgresql_config
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ postgresql_instances:
+ id: linode.databases.postgresql_instances
+ name: postgresql_instances
+ title: Postgresql Instances
+ methods:
+ post_databases_postgre_sql_instances:
+ operation:
+ $ref: '#/paths/~1databases~1postgresql~1instances/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_databases_postgre_sql_instances:
+ operation:
+ $ref: '#/paths/~1databases~1postgresql~1instances/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ get_databases_postgre_sql_instance:
+ operation:
+ $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_databases_postgre_sql_instance:
+ operation:
+ $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_databases_postgre_sql_instance:
+ operation:
+ $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_databases_postgre_sql_instance_patch:
+ operation:
+ $ref: >-
+ #/paths/~1databases~1postgresql~1instances~1{instanceId}~1patch/post
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ resume_databases_postgre_sql_instance:
+ operation:
+ $ref: >-
+ #/paths/~1databases~1postgresql~1instances~1{instanceId}~1resume/post
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ suspend_databases_postgre_sql_instance:
+ operation:
+ $ref: >-
+ #/paths/~1databases~1postgresql~1instances~1{instanceId}~1suspend/post
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/postgresql_instances/methods/get_databases_postgre_sql_instance
+ - $ref: >-
+ #/components/x-stackQL-resources/postgresql_instances/methods/get_databases_postgre_sql_instances
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/postgresql_instances/methods/post_databases_postgre_sql_instances
+ update:
+ - $ref: >-
+ #/components/x-stackQL-resources/postgresql_instances/methods/post_databases_postgre_sql_instance_patch
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/postgresql_instances/methods/delete_databases_postgre_sql_instance
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/postgresql_instances/methods/put_databases_postgre_sql_instance
+ postgresql_instance_credentials:
+ id: linode.databases.postgresql_instance_credentials
+ name: postgresql_instance_credentials
+ title: Postgresql Instance Credentials
+ methods:
+ get_databases_postgre_sql_instance_credentials:
+ operation:
+ $ref: >-
+ #/paths/~1databases~1postgresql~1instances~1{instanceId}~1credentials/get
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_databases_postgre_sql_instance_credentials_reset:
+ operation:
+ $ref: >-
+ #/paths/~1databases~1postgresql~1instances~1{instanceId}~1credentials~1reset/post
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/postgresql_instance_credentials/methods/get_databases_postgre_sql_instance_credentials
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ postgresql_ssl_certificates:
+ id: linode.databases.postgresql_ssl_certificates
+ name: postgresql_ssl_certificates
+ title: Postgresql Ssl Certificates
+ methods:
+ get_databases_postgresql_instance_ssl:
+ operation:
+ $ref: '#/paths/~1databases~1postgresql~1instances~1{instanceId}~1ssl/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/postgresql_ssl_certificates/methods/get_databases_postgresql_instance_ssl
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ types:
+ id: linode.databases.types
+ name: types
+ title: Types
+ methods:
+ get_databases_types:
+ operation:
+ $ref: '#/paths/~1databases~1types/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ get_databases_type:
+ operation:
+ $ref: '#/paths/~1databases~1types~1{typeId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/types/methods/get_databases_type'
+ - $ref: '#/components/x-stackQL-resources/types/methods/get_databases_types'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/domains.yaml b/providers/src/linode/v00.00.00000/services/domains.yaml
index f246c9ac..730a6a4e 100644
--- a/providers/src/linode/v00.00.00000/services/domains.yaml
+++ b/providers/src/linode/v00.00.00000/services/domains.yaml
@@ -1,1392 +1,4848 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
info:
- version: 4.147.0
- title: Linode API - domains
- description: domains
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- Domain:
- type: object
- description: |
- A domain zonefile in our DNS system. You must own the domain name and tell your registrar to use Linode's nameservers in order for a domain in our system to be treated as authoritative.
- properties:
- id:
- type: integer
- description: This Domain's unique ID
- example: 1234
- readOnly: true
- x-linode-cli-display: 1
- type:
- type: string
- enum:
- - master
- - slave
- description: |
- Whether this Domain represents the authoritative source of information for the domain it describes ("master"), or whether it is a read-only copy of a master ("slave").
- example: master
- x-linode-cli-display: 3
- 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: 253
- description: |
- The domain this Domain represents. 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
- x-linode-cli-display: 2
- group:
- deprecated: true
- type: string
- description: |
- The group this Domain belongs to. This is for display purposes only.
- example: null
- minLength: 1
- maxLength: 50
- x-linode-filterable: true
- status:
- type: string
- enum:
- - disabled
- - active
- default: active
- description: |
- Used to control whether this Domain is currently being rendered.
- example: active
- x-linode-cli-display: 4
- x-linode-cli-color:
- active: green
- disabled: yellow
- edit_mode: yellow
- default_: red
- description:
- type: string
- minLength: 1
- maxLength: 253
- description: |
- A description for this Domain. This is for display purposes only.
- example: null
- soa_email:
- type: string
- format: email
- description: |
- Start of Authority email address. This is required for `type` master Domains.
- example: admin@example.org
- x-linode-cli-display: 5
- retry_sec:
- type: integer
- default: 0
- description: |
- The interval, in seconds, at which a failed refresh should be retried.
-
- * Valid values are
- 0, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.
-
- * Any other value is rounded up to the nearest valid value.
-
- * A value of 0 is equivalent to the default value of 14400.
- example: 300
- master_ips:
- type: array
- items:
- type: string
- format: ip
- description: |
- The IP addresses representing the master DNS for this Domain. At least one value is required for `type` slave Domains. The total combined length of all data within this array cannot exceed 1000 characters.
- example: []
- axfr_ips:
- type: array
- items:
- type: string
- format: ip
- description: |
- The list of IPs that may perform a zone transfer for this Domain. The total combined length of all data within this array cannot exceed 1000 characters.
-
- **Note**: This is potentially dangerous, and should be set to an empty list unless you intend to use it.
- example: []
- expire_sec:
- type: integer
- default: 0
- description: |
- The amount of time in seconds that may pass before this Domain is no longer
- authoritative.
+ title: domains API
+ description: linode domains API
+ version: 4.208.1
+paths:
+ /domains:
+ post:
+ 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.
- * Valid values are
- 0, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.
- * Any other value is rounded up to the nearest valid value.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- * A value of 0 is equivalent to the default value of 1209600.
- example: 300
- refresh_sec:
- type: integer
- default: 0
- description: |
- The amount of time in seconds before this Domain should be refreshed.
- * Valid values are
- 0, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-domain
+ operationId: post-domain
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ A domain zonefile in our DNS system. You must own the
+ domain name and tell your registrar to use Linode's
+ nameservers in order for a domain in our system to be
+ treated as authoritative.
+ properties:
+ axfr_ips:
+ description: >-
+ The list of IPs that may perform a zone transfer for
+ this domain. The total combined length of all data
+ within this array cannot exceed 1000 characters.
- * Any other value is rounded up to the nearest valid value.
- * A value of 0 is equivalent to the default value of 14400.
- example: 300
- ttl_sec:
- type: integer
- default: 0
- description: |
- "Time to Live" - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers.
- * Valid values are 0, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.
- * Any other value is rounded up to the nearest valid value.
- * A value of 0 is equivalent to the default value of 86400.
- example: 300
- 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
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- DomainRecord:
- type: object
- description: |
- A single record on a Domain.
- properties:
- id:
- type: integer
- description: This Record's unique ID.
- example: 123456
- readOnly: true
- x-linode-cli-display: 1
- type:
- type: string
- enum:
- - A
- - AAAA
- - NS
- - MX
- - CNAME
- - TXT
- - SRV
- - PTR
- - CAA
- description: |
- The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address. For more information, see the guides on [DNS Record Types](/docs/products/networking/dns-manager/guides/#dns-record-types).
- example: A
- x-linode-filterable: true
- x-linode-cli-display: 2
- name:
- type: string
- description: |
- The name of this Record. For requests, this property's actual usage and whether it is required depends
- on the type of record this represents:
+ > 📘
- `A` and `AAAA`: The hostname or FQDN of the Record.
+ >
- `NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported.
+ > This is potentially dangerous, and should be set to an
+ empty list unless you intend to use it.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ description:
+ description: >-
+ A description for this domain. This is for display
+ purposes only.
+ example: null
+ maxLength: 253
+ minLength: 1
+ nullable: true
+ type: string
+ domain:
+ description: >-
+ __Filterable__ The domain this domain represents. 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
+ maxLength: 253
+ minLength: 1
+ pattern: >-
+ ^(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ expire_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds that may pass before this
+ domain is no longer authoritative.
- `MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com`
- Domain. Must be an empty string (`""`) for a Null MX Record.
- `CNAME`: The hostname. Must be unique. Required.
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600,
+ and 2419200.
- `TXT`: The hostname.
- `SRV`: Unused. Use the `service` property to set the service name for this record.
+ - Any other value is rounded up to the nearest valid
+ value.
- `CAA`: The subdomain. Omit or enter an empty string (`""`) to apply to the entire Domain.
- `PTR`: See our guide on how to [Configure Your Linode for Reverse DNS
- (rDNS)](/docs/guides/configure-rdns/).
- minLength: 1
- maxLength: 100
- example: test
- x-linode-filterable: true
- x-linode-cli-display: 3
- target:
- type: string
- description: |
- The target for this Record. For requests, this property's actual usage and whether it is required depends
- on the type of record this represents:
+ - A value of 0 is equivalent to the default value of
+ 1209600.
+ example: 300
+ type: integer
+ group:
+ deprecated: true
+ description: >-
+ __Filterable__ The group this domain belongs to. This
+ is for display purposes only.
+ example: null
+ maxLength: 50
+ minLength: 1
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This domain's unique ID.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ master_ips:
+ description: >-
+ The IP addresses representing the master DNS for this
+ domain. At least one value is required for `type` slave
+ domains. The total combined length of all data within
+ this array cannot exceed 1000 characters.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ refresh_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds before this domain should
+ be refreshed.
- `A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required.
- `NS`: The name server. Must be a valid domain. Required.
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600,
+ and 2419200.
- `MX`: The mail server. Must be a valid domain unless creating a Null MX Record. To create a
- [Null MX Record](https://datatracker.ietf.org/doc/html/rfc7505), first
- [remove](/docs/api/domains/#domain-record-delete) any additional MX records, create an MX record with empty strings
- (`""`) for the `target` and `name`. If a Domain has a Null MX record, new MX records cannot be created. Required.
- `CNAME`: The alias. Must be a valid domain. Required.
+ - Any other value is rounded up to the nearest valid
+ value.
- `TXT`: The value. Required.
- `SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain.
- To configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for
- `example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a
- target set to `sample.com`. Required.
+ - A value of 0 is equivalent to the default value of
+ 14400.
+ example: 300
+ type: integer
+ retry_sec:
+ default: 0
+ description: >-
+ The interval, in seconds, at which a failed refresh
+ should be retried.
- `CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef`
- tag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record:
- * `issue`: The domain of your certificate issuer. Must be a valid domain.
- * `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).
- * `iodef`: Must be either (1) a valid domain, (2) a valid domain prepended with `http://` or `https://`, or (3) a valid email address prepended with `mailto:`.
- `PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS
- (rDNS)](/docs/guides/configure-rdns/).
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600,
+ and 2419200.
- With the exception of A, AAAA, and CAA records, this field accepts a trailing period.
- example: 192.0.2.0
- x-linode-filterable: true
- x-linode-cli-display: 4
- maxLength: 65535
- priority:
- type: integer
- minimum: 0
- maximum: 255
- description: |
- The priority of the target host for this Record. Lower values are preferred. Only valid for
- MX and SRV record requests. Required for SRV record requests.
-
- Defaults to `0` for MX record requests. Must be `0` for Null MX records.
- example: 50
- x-linode-cli-display: 6
- weight:
- type: integer
- description: |
- The relative weight of this Record used in the case of identical priority. Higher values are preferred. Only valid and required for SRV record requests.
- example: 50
- minimum: 0
- maximum: 65535
- x-linode-cli-display: 7
- port:
- type: integer
- description: |
- The port this Record points to. Only valid and required for SRV record requests.
- example: 80
- minimum: 0
- maximum: 65535
- service:
- type: string
- nullable: true
- description: |
- The name of the service. An underscore (`_`) is prepended and a period (`.`) is appended automatically to the submitted value for this property. Only valid and required for SRV record requests.
- example: null
- protocol:
- type: string
- nullable: true
- description: |
- The protocol this Record's service communicates with. An underscore (`_`) is prepended automatically to the submitted value for this property. Only valid for SRV record requests.
- example: null
- ttl_sec:
- type: integer
- description: |
- "Time to Live" - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
- example: 604800
- x-linode-cli-display: 5
- tag:
- type: string
- enum:
- - issue
- - issuewild
- - iodef
- nullable: true
- description: |
- The tag portion of a CAA record. Only valid and required for CAA record requests.
- example: null
- x-linode-filterable: true
- created:
- type: string
- format: date-time
- description: When this Domain Record was created.
- example: '2018-01-01T00:01:01'
- readOnly: true
- updated:
- type: string
- format: date-time
- description: When this Domain Record was last updated.
- example: '2018-01-01T00:01:01'
- readOnly: true
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- domains:
- id: linode.domains.domains
- name: domains
- title: Domains
- methods:
- getDomains:
- operation:
- $ref: '#/paths/~1domains/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDomains:
- operation:
- $ref: '#/paths/~1domains/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createDomain:
- operation:
- $ref: '#/paths/~1domains/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getDomain:
- operation:
- $ref: '#/paths/~1domains~1{domainId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDomain:
- operation:
- $ref: '#/paths/~1domains~1{domainId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateDomain:
- operation:
- $ref: '#/paths/~1domains~1{domainId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteDomain:
- operation:
- $ref: '#/paths/~1domains~1{domainId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- importDomain:
- operation:
- $ref: '#/paths/~1domains~1import/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- cloneDomain:
- operation:
- $ref: '#/paths/~1domains~1{domainId}~1clone/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/domains/methods/getDomains'
- - $ref: '#/components/x-stackQL-resources/domains/methods/getDomain'
- insert:
- - $ref: '#/components/x-stackQL-resources/domains/methods/createDomain'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/domains/methods/deleteDomain'
- zone_file:
- id: linode.domains.zone_file
- name: zone_file
- title: Zone File
- methods:
- getDomainZone:
- operation:
- $ref: '#/paths/~1domains~1{domainId}~1zone-file/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getDomainZone:
- operation:
- $ref: '#/paths/~1domains~1{domainId}~1zone-file/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/zone_file/methods/getDomainZone'
- insert: []
- update: []
- delete: []
- records:
- id: linode.domains.records
- name: records
- title: Records
- methods:
- getDomainRecords:
- operation:
- $ref: '#/paths/~1domains~1{domainId}~1records/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDomainRecords:
- operation:
- $ref: '#/paths/~1domains~1{domainId}~1records/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createDomainRecord:
- operation:
- $ref: '#/paths/~1domains~1{domainId}~1records/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getDomainRecord:
- operation:
- $ref: '#/paths/~1domains~1{domainId}~1records~1{recordId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDomainRecord:
- operation:
- $ref: '#/paths/~1domains~1{domainId}~1records~1{recordId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateDomainRecord:
- operation:
- $ref: '#/paths/~1domains~1{domainId}~1records~1{recordId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteDomainRecord:
- operation:
- $ref: '#/paths/~1domains~1{domainId}~1records~1{recordId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/records/methods/getDomainRecords'
- - $ref: '#/components/x-stackQL-resources/records/methods/getDomainRecord'
- insert:
- - $ref: '#/components/x-stackQL-resources/records/methods/createDomainRecord'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/records/methods/deleteDomainRecord'
-paths:
- /domains:
- get:
- x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- 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
- x-linode-cli-action:
- - list
- - ls
- security:
- - personalAccessToken: []
- - oauth:
- - 'domains:read_only'
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 14400.
+ example: 300
+ type: integer
+ soa_email:
+ description: >-
+ Start of Authority email address. This is required for
+ `type` master domains.
+ example: admin@example.org
+ format: email
+ type: string
+ x-linode-cli-display: 5
+ status:
+ default: active
+ description: >-
+ Used to control whether this domain is currently being
+ rendered.
+ enum:
+ - disabled
+ - active
+ example: active
+ type: string
+ x-linode-cli-color:
+ active: green
+ default_: red
+ disabled: yellow
+ edit_mode: yellow
+ x-linode-cli-display: 4
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ ttl_sec:
+ default: 0
+ description: >-
+ "Time to Live" - the amount of time in seconds that this
+ domain's records may be cached by resolvers or other
+ domain servers.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600,
+ and 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 86400.
+ example: 300
+ type: integer
+ type:
+ description: >-
+ Whether this domain represents the authoritative source
+ of information for the domain it describes (`master`),
+ or whether it is a read-only copy of a master (`slave`).
+ enum:
+ - master
+ - slave
+ example: master
+ type: string
+ x-linode-cli-display: 3
+ title: Domain
+ type: object
+ x-akamai:
+ file-path: schemas/domain.yaml
+ required:
+ - domain
+ - type
+ x-akamai:
+ file-path: schemas/added-post-domain.yaml
+ x-example:
+ x-ref: ../examples/post-domain.json
+ description: Information about the domain you are registering.
+ required: true
responses:
'200':
- description: A paginated list of Domains you have registered.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
+ description: >-
+ A domain zonefile in our DNS system. You must own the domain
+ name and tell your registrar to use Linode's nameservers in
+ order for a domain in our system to be treated as
+ authoritative.
properties:
- data:
+ axfr_ips:
+ description: >-
+ The list of IPs that may perform a zone transfer for this
+ domain. The total combined length of all data within this
+ array cannot exceed 1000 characters.
+
+
+ > 📘
+
+ >
+
+ > This is potentially dangerous, and should be set to an
+ empty list unless you intend to use it.
+ example: []
+ items:
+ format: ip
+ type: string
type: array
+ description:
+ description: >-
+ A description for this domain. This is for display
+ purposes only.
+ example: null
+ maxLength: 253
+ minLength: 1
+ nullable: true
+ type: string
+ domain:
+ description: >-
+ __Filterable__ The domain this domain represents. 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
+ maxLength: 253
+ minLength: 1
+ pattern: >-
+ ^(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ expire_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds that may pass before this
+ domain is no longer authoritative.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 1209600.
+ example: 300
+ type: integer
+ group:
+ deprecated: true
+ description: >-
+ __Filterable__ The group this domain belongs to. This is
+ for display purposes only.
+ example: null
+ maxLength: 50
+ minLength: 1
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This domain's unique ID.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ master_ips:
+ description: >-
+ The IP addresses representing the master DNS for this
+ domain. At least one value is required for `type` slave
+ domains. The total combined length of all data within this
+ array cannot exceed 1000 characters.
+ example: []
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'
+ format: ip
+ type: string
+ type: array
+ refresh_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds before this domain should be
+ refreshed.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 14400.
+ example: 300
+ type: integer
+ retry_sec:
+ default: 0
+ description: >-
+ The interval, in seconds, at which a failed refresh should
+ be retried.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 14400.
+ example: 300
+ type: integer
+ soa_email:
+ description: >-
+ Start of Authority email address. This is required for
+ `type` master domains.
+ example: admin@example.org
+ format: email
+ type: string
+ x-linode-cli-display: 5
+ status:
+ default: active
+ description: >-
+ Used to control whether this domain is currently being
+ rendered.
+ enum:
+ - disabled
+ - active
+ example: active
+ type: string
+ x-linode-cli-color:
+ active: green
+ default_: red
+ disabled: yellow
+ edit_mode: yellow
+ x-linode-cli-display: 4
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ ttl_sec:
+ default: 0
+ description: >-
+ "Time to Live" - the amount of time in seconds that this
+ domain's records may be cached by resolvers or other
+ domain servers.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 86400.
+ example: 300
+ type: integer
+ type:
+ description: >-
+ Whether this domain represents the authoritative source of
+ information for the domain it describes (`master`), or
+ whether it is a read-only copy of a master (`slave`).
+ enum:
+ - master
+ - slave
+ example: master
+ type: string
+ x-linode-cli-display: 3
+ title: Domain
+ type: object
+ x-akamai:
+ file-path: schemas/domain.yaml
+ x-example:
+ x-ref: ../examples/post-domain-200.json
+ description: Domain added successfully.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/domains
- - lang: CLI
- source: |
- linode-cli domains list
- post:
- x-linode-grant: add_domains
- tags:
- - Domains
- summary: 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
- 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'
- responses:
- '200':
- description: |
- Domain added successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/Domain'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "domain": "example.com",
- "type": "master",
- "soa_email": "admin@example.com",
- "description": "Example Description",
- "refresh_sec": 14400,
- "retry_sec": 3600,
- "expire_sec": 604800,
- "ttl_sec": 3600,
- "status": "active",
- "master_ips": ["127.0.0.1","255.255.255.1","123.123.123.7"],
- "axfr_ips": ["44.55.66.77"],
- "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}':
- get:
- x-linode-grant: read_only
- 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
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'domains:read_only'
- responses:
- '200':
- description: |
- A single Domain in Linode's DNS Manager.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Domain'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/domains/123
- - lang: CLI
- source: |
- linode-cli domains view 123
- parameters:
- - name: domainId
- in: path
- description: The ID of the Domain to access.
- required: true
- schema:
- type: integer
- put:
- x-linode-grant: read_write
+ - domains:read_write
+ summary: Create a domain
tags:
- Domains
- summary: Domain Update
- description: |
- Update information about a Domain in Linode's DNS Manager.
- operationId: updateDomain
- x-linode-cli-action: update
- security:
- - personalAccessToken: []
- - oauth:
- - 'domains:read_write'
- requestBody:
- description: The Domain information to update.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Domain'
- responses:
- '200':
- description: Domain update successful.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Domain'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "domain": "example.com",
- "type": "master",
- "soa_email": "admin@example.com",
- "description": "Example Description",
- "refresh_sec": 14400,
- "retry_sec": 3600,
- "expire_sec": 604800,
- "ttl_sec": 3600,
- "status": "active",
- "master_ips": ["127.0.0.1","255.255.255.1","123.123.123.7"],
- "axfr_ips": ["44.55.66.77"],
- "group": "Example Display Group",
- "tags": ["tag1","tag2"]
- }' \
- https://api.linode.com/v4/domains/123
- - lang: CLI
- source: |
- linode-cli domains update 1234 \
- --retry_sec 7200 \
- --ttl_sec 300
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli domains create \
+ --type master \
+ --domain example.org \
+ --soa_email admin@example.org
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: domains:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: create
+ x-linode-grant: add_domains
+ get:
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-domains
+ operationId: get-domains
parameters:
- - name: domainId
- in: path
- description: The ID of the Domain to access.
- required: true
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
schema:
+ default: 1
+ example: 6
+ minimum: 1
type: integer
- 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
- - rm
- security:
- - personalAccessToken: []
- - oauth:
- - 'domains:read_write'
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Domain deleted successfully.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ A domain zonefile in our DNS system. You must own the
+ domain name and tell your registrar to use Linode's
+ nameservers in order for a domain in our system to be
+ treated as authoritative.
+ properties:
+ axfr_ips:
+ description: >-
+ The list of IPs that may perform a zone transfer for
+ this domain. The total combined length of all data
+ within this array cannot exceed 1000 characters.
+
+
+ > 📘
+
+ >
+
+ > This is potentially dangerous, and should be set
+ to an empty list unless you intend to use it.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ description:
+ description: >-
+ A description for this domain. This is for display
+ purposes only.
+ example: null
+ maxLength: 253
+ minLength: 1
+ nullable: true
+ type: string
+ domain:
+ description: >-
+ __Filterable__ The domain this domain represents.
+ 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
+ maxLength: 253
+ minLength: 1
+ pattern: >-
+ ^(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ expire_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds that may pass before
+ this domain is no longer authoritative.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200,
+ 14400, 28800, 57600, 86400, 172800, 345600, 604800,
+ 1209600, and 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 1209600.
+ example: 300
+ type: integer
+ group:
+ deprecated: true
+ description: >-
+ __Filterable__ The group this domain belongs to.
+ This is for display purposes only.
+ example: null
+ maxLength: 50
+ minLength: 1
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This domain's unique ID.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ master_ips:
+ description: >-
+ The IP addresses representing the master DNS for
+ this domain. At least one value is required for
+ `type` slave domains. The total combined length of
+ all data within this array cannot exceed 1000
+ characters.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ refresh_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds before this domain
+ should be refreshed.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200,
+ 14400, 28800, 57600, 86400, 172800, 345600, 604800,
+ 1209600, and 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 14400.
+ example: 300
+ type: integer
+ retry_sec:
+ default: 0
+ description: >-
+ The interval, in seconds, at which a failed refresh
+ should be retried.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200,
+ 14400, 28800, 57600, 86400, 172800, 345600, 604800,
+ 1209600, and 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 14400.
+ example: 300
+ type: integer
+ soa_email:
+ description: >-
+ Start of Authority email address. This is required
+ for `type` master domains.
+ example: admin@example.org
+ format: email
+ type: string
+ x-linode-cli-display: 5
+ status:
+ default: active
+ description: >-
+ Used to control whether this domain is currently
+ being rendered.
+ enum:
+ - disabled
+ - active
+ example: active
+ type: string
+ x-linode-cli-color:
+ active: green
+ default_: red
+ disabled: yellow
+ edit_mode: yellow
+ x-linode-cli-display: 4
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this
+ object. Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ ttl_sec:
+ default: 0
+ description: >-
+ "Time to Live" - the amount of time in seconds that
+ this domain's records may be cached by resolvers or
+ other domain servers.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200,
+ 14400, 28800, 57600, 86400, 172800, 345600, 604800,
+ 1209600, and 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 86400.
+ example: 300
+ type: integer
+ type:
+ description: >-
+ Whether this domain represents the authoritative
+ source of information for the domain it describes
+ (`master`), or whether it is a read-only copy of a
+ master (`slave`).
+ enum:
+ - master
+ - slave
+ example: master
+ type: string
+ x-linode-cli-display: 3
+ title: Domain
+ type: object
+ x-akamai:
+ file-path: schemas/domain.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
type: object
+ x-akamai:
+ file-path: schemas/added-get-domains-200.yaml
+ x-example:
+ x-ref: ../examples/get-domains-200.json
+ description: A paginated list of Domains you have registered.
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
- parameters:
- - name: domainId
- in: path
- description: The ID of the Domain to access.
- required: true
- schema:
- type: integer
- '/domains/{domainId}/zone-file':
- 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'domains:read_only'
- responses:
- '200':
- description: |
- An array containing the lines of the domain zone file.
content:
application/json:
schema:
+ additionalProperties: false
properties:
- zone_file:
- type: array
+ errors:
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.
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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/zone-file
- - lang: CLI
- source: |
- linode-cli domains zone-file 123
- parameters:
- - name: domainId
- in: path
- description: ID of the Domain.
- required: true
- schema:
- type: string
- /domains/import:
- 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
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'domains:read_write'
+ - domains:read_only
+ summary: List domains
+ tags:
+ - Domains
+ x-akamai:
+ tabs:
+ - syntax: linode-cli domains list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: domains:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/domains.yaml
+ path-info: /{apiVersion}/domains
+ x-linode-cli-command: domains
+ /domains/import:
+ post:
+ 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
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-import-domain
+ operationId: post-import-domain
requestBody:
- description: Information about the Domain to import.
content:
application/json:
schema:
- required:
- - domain
- - remote_nameserver
+ additionalProperties: false
properties:
domain:
+ description: The domain to import.
+ example: '{{domain}}'
type: string
- description: |
- The domain to import.
- example: example.com
remote_nameserver:
+ description: The remote nameserver that allows zone transfers (AXFR).
+ example: '{{remote_nameserver}}'
type: string
- description: |
- The remote nameserver that allows zone transfers (AXFR).
- example: examplenameserver.com
- responses:
- '200':
- description: |
- A single Domain in Linode's DNS Manager.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Domain'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "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':
- post:
- x-linode-grant: read_write
- 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'domains:read_write'
- requestBody:
- description: Information about the Domain to clone.
- required: true
- content:
- application/json:
- schema:
required:
- domain
+ - remote_nameserver
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: 253
- 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
+ x-akamai:
+ file-path: schemas/added-post-import-domain.yaml
+ x-example:
+ x-ref: ../examples/post-import-domain.json
+ description: Information about the Domain to import.
responses:
'200':
- description: |
- A new Domain in Linode's DNS Manager, based on a cloned Domain.
content:
application/json:
schema:
- $ref: '#/components/schemas/Domain'
+ additionalProperties: false
+ description: >-
+ A domain zonefile in our DNS system. You must own the domain
+ name and tell your registrar to use Linode's nameservers in
+ order for a domain in our system to be treated as
+ authoritative.
+ properties:
+ axfr_ips:
+ description: >-
+ The list of IPs that may perform a zone transfer for this
+ domain. The total combined length of all data within this
+ array cannot exceed 1000 characters.
+
+
+ > 📘
+
+ >
+
+ > This is potentially dangerous, and should be set to an
+ empty list unless you intend to use it.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ description:
+ description: >-
+ A description for this domain. This is for display
+ purposes only.
+ example: null
+ maxLength: 253
+ minLength: 1
+ nullable: true
+ type: string
+ domain:
+ description: >-
+ __Filterable__ The domain this domain represents. 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
+ maxLength: 253
+ minLength: 1
+ pattern: >-
+ ^(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ expire_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds that may pass before this
+ domain is no longer authoritative.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 1209600.
+ example: 300
+ type: integer
+ group:
+ deprecated: true
+ description: >-
+ __Filterable__ The group this domain belongs to. This is
+ for display purposes only.
+ example: null
+ maxLength: 50
+ minLength: 1
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This domain's unique ID.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ master_ips:
+ description: >-
+ The IP addresses representing the master DNS for this
+ domain. At least one value is required for `type` slave
+ domains. The total combined length of all data within this
+ array cannot exceed 1000 characters.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ refresh_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds before this domain should be
+ refreshed.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 14400.
+ example: 300
+ type: integer
+ retry_sec:
+ default: 0
+ description: >-
+ The interval, in seconds, at which a failed refresh should
+ be retried.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 14400.
+ example: 300
+ type: integer
+ soa_email:
+ description: >-
+ Start of Authority email address. This is required for
+ `type` master domains.
+ example: admin@example.org
+ format: email
+ type: string
+ x-linode-cli-display: 5
+ status:
+ default: active
+ description: >-
+ Used to control whether this domain is currently being
+ rendered.
+ enum:
+ - disabled
+ - active
+ example: active
+ type: string
+ x-linode-cli-color:
+ active: green
+ default_: red
+ disabled: yellow
+ edit_mode: yellow
+ x-linode-cli-display: 4
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ ttl_sec:
+ default: 0
+ description: >-
+ "Time to Live" - the amount of time in seconds that this
+ domain's records may be cached by resolvers or other
+ domain servers.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 86400.
+ example: 300
+ type: integer
+ type:
+ description: >-
+ Whether this domain represents the authoritative source of
+ information for the domain it describes (`master`), or
+ whether it is a read-only copy of a master (`slave`).
+ enum:
+ - master
+ - slave
+ example: master
+ type: string
+ x-linode-cli-display: 3
+ title: Domain
+ type: object
+ x-akamai:
+ file-path: schemas/domain.yaml
+ x-example:
+ x-ref: ../examples/post-import-domain-200.json
+ description: A single Domain in Linode's DNS Manager.
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
- - lang: CLI
- source: |
- linode-cli domains clone 123 --domain example.com
- parameters:
- - name: domainId
- in: path
- description: ID of the Domain to clone.
- required: true
- schema:
- type: string
- '/domains/{domainId}/records':
- get:
- x-linode-grant: read_only
- tags:
- - Domains
- parameters:
- - name: domainId
- in: path
- description: The ID of the Domain we are accessing Records for.
- required: true
- schema:
- type: integer
- 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
- responses:
- '200':
- description: A list of Domain Records.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
items:
- $ref: '#/components/schemas/DomainRecord'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/domains/1234/records
- - lang: CLI
- source: |
- linode-cli domains records-list 1234
- post:
- x-linode-grant: read_write
- tags:
- - Domains
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'domains:read_write'
- summary: Domain Record Create
- description: |
- Adds a new Domain Record to the zonefile this Domain represents.
+ - domains:read_write
+ summary: Import a domain
+ tags:
+ - Domains
+ x-akamai:
+ tabs:
+ - syntax: >-
+ linode-cli domains import --domain example.com --remote_nameserver
+ examplenameserver.com
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: domains:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: import
+ x-linode-cli-command: domains
+ x-linode-grant: read_write
+ parameters: []
+ x-akamai:
+ file-path: paths/import.yaml
+ path-info: /{apiVersion}/domains/import
+ x-linode-cli-command: domains
+ /domains/{domainId}:
+ get:
+ 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.
- Each domain can have up to 12,000 active records.
- 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'
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-domain
+ operationId: get-domain
responses:
'200':
- description: Domain Record created successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/DomainRecord'
+ additionalProperties: false
+ description: >-
+ A domain zonefile in our DNS system. You must own the domain
+ name and tell your registrar to use Linode's nameservers in
+ order for a domain in our system to be treated as
+ authoritative.
+ properties:
+ axfr_ips:
+ description: >-
+ The list of IPs that may perform a zone transfer for this
+ domain. The total combined length of all data within this
+ array cannot exceed 1000 characters.
+
+
+ > 📘
+
+ >
+
+ > This is potentially dangerous, and should be set to an
+ empty list unless you intend to use it.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ description:
+ description: >-
+ A description for this domain. This is for display
+ purposes only.
+ example: null
+ maxLength: 253
+ minLength: 1
+ nullable: true
+ type: string
+ domain:
+ description: >-
+ __Filterable__ The domain this domain represents. 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
+ maxLength: 253
+ minLength: 1
+ pattern: >-
+ ^(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ expire_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds that may pass before this
+ domain is no longer authoritative.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 1209600.
+ example: 300
+ type: integer
+ group:
+ deprecated: true
+ description: >-
+ __Filterable__ The group this domain belongs to. This is
+ for display purposes only.
+ example: null
+ maxLength: 50
+ minLength: 1
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This domain's unique ID.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ master_ips:
+ description: >-
+ The IP addresses representing the master DNS for this
+ domain. At least one value is required for `type` slave
+ domains. The total combined length of all data within this
+ array cannot exceed 1000 characters.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ refresh_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds before this domain should be
+ refreshed.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 14400.
+ example: 300
+ type: integer
+ retry_sec:
+ default: 0
+ description: >-
+ The interval, in seconds, at which a failed refresh should
+ be retried.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 14400.
+ example: 300
+ type: integer
+ soa_email:
+ description: >-
+ Start of Authority email address. This is required for
+ `type` master domains.
+ example: admin@example.org
+ format: email
+ type: string
+ x-linode-cli-display: 5
+ status:
+ default: active
+ description: >-
+ Used to control whether this domain is currently being
+ rendered.
+ enum:
+ - disabled
+ - active
+ example: active
+ type: string
+ x-linode-cli-color:
+ active: green
+ default_: red
+ disabled: yellow
+ edit_mode: yellow
+ x-linode-cli-display: 4
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ ttl_sec:
+ default: 0
+ description: >-
+ "Time to Live" - the amount of time in seconds that this
+ domain's records may be cached by resolvers or other
+ domain servers.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 86400.
+ example: 300
+ type: integer
+ type:
+ description: >-
+ Whether this domain represents the authoritative source of
+ information for the domain it describes (`master`), or
+ whether it is a read-only copy of a master (`slave`).
+ enum:
+ - master
+ - slave
+ example: master
+ type: string
+ x-linode-cli-display: 3
+ title: Domain
+ type: object
+ x-akamai:
+ file-path: schemas/domain.yaml
+ x-example:
+ x-ref: ../examples/get-domain-200.json
+ description: A single Domain in Linode's DNS Manager.
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": "203.0.113.1",
- "priority": 50,
- "weight": 50,
- "port": 80,
- "service": null,
- "protocol": null,
- "ttl_sec": 604800
- }' \
- https://api.linode.com/v4/domains/123/records
- - lang: CLI
- source: |
- linode-cli domains records-create 123 \
- --type A \
- --name test \
- --target 203.0.113.1 \
- --priority 50 \
- --weight 50 \
- --port 80 \
- --ttl_sec 604800
- parameters:
- - name: domainId
- in: path
- description: The ID of the Domain we are accessing Records for.
- required: true
- schema:
- type: integer
- '/domains/{domainId}/records/{recordId}':
- get:
- x-linode-grant: read_only
- tags:
- - 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: A Domain Record object.
content:
application/json:
schema:
- $ref: '#/components/schemas/DomainRecord'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/domains/123/records/234
- - lang: CLI
- source: |
- linode-cli domains records-view 123 234
- 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
- put:
- x-linode-grant: read_write
- tags:
- - Domains
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
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
+ - domains:read_only
+ summary: Get a domain
+ tags:
+ - Domains
+ x-akamai:
+ tabs:
+ - syntax: linode-cli domains view 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: domains:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ x-linode-grant: read_only
+ put:
+ description: >-
+ Update information about a Domain in Linode's DNS Manager.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-domain
+ operationId: put-domain
requestBody:
- description: The values to change.
- required: true
content:
application/json:
schema:
- type: object
- description: A Domain Record Update request object.
+ additionalProperties: false
+ description: >-
+ A domain zonefile in our DNS system. You must own the domain
+ name and tell your registrar to use Linode's nameservers in
+ order for a domain in our system to be treated as authoritative.
properties:
- name:
- $ref: '#/components/schemas/DomainRecord/properties/name'
- target:
- $ref: '#/components/schemas/DomainRecord/properties/target'
- priority:
- $ref: '#/components/schemas/DomainRecord/properties/priority'
- weight:
- $ref: '#/components/schemas/DomainRecord/properties/weight'
- port:
- $ref: '#/components/schemas/DomainRecord/properties/port'
- service:
- $ref: '#/components/schemas/DomainRecord/properties/service'
- protocol:
- $ref: '#/components/schemas/DomainRecord/properties/protocol'
+ axfr_ips:
+ description: >-
+ The list of IPs that may perform a zone transfer for this
+ domain. The total combined length of all data within this
+ array cannot exceed 1000 characters.
+
+
+ > 📘
+
+ >
+
+ > This is potentially dangerous, and should be set to an
+ empty list unless you intend to use it.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ description:
+ description: >-
+ A description for this domain. This is for display purposes
+ only.
+ example: '{{description}}'
+ maxLength: 253
+ minLength: 1
+ nullable: true
+ type: string
+ domain:
+ description: >-
+ __Filterable__ The domain this domain represents. 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: '{{domain}}'
+ maxLength: 253
+ minLength: 1
+ pattern: >-
+ ^(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ expire_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds that may pass before this
+ domain is no longer authoritative.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 1209600.
+ example: '{{expire_sec}}'
+ type: integer
+ group:
+ deprecated: true
+ description: >-
+ __Filterable__ The group this domain belongs to. This is
+ for display purposes only.
+ example: '{{group}}'
+ maxLength: 50
+ minLength: 1
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This domain's unique ID.
+ example: '{{id}}'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ master_ips:
+ description: >-
+ The IP addresses representing the master DNS for this
+ domain. At least one value is required for `type` slave
+ domains. The total combined length of all data within this
+ array cannot exceed 1000 characters.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ refresh_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds before this domain should be
+ refreshed.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid value.
+
+
+ - A value of 0 is equivalent to the default value of 14400.
+ example: '{{refresh_sec}}'
+ type: integer
+ retry_sec:
+ default: 0
+ description: >-
+ The interval, in seconds, at which a failed refresh should
+ be retried.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid value.
+
+
+ - A value of 0 is equivalent to the default value of 14400.
+ example: '{{retry_sec}}'
+ type: integer
+ soa_email:
+ description: >-
+ Start of Authority email address. This is required for
+ `type` master domains.
+ example: '{{soa_email}}'
+ format: email
+ type: string
+ x-linode-cli-display: 5
+ status:
+ default: active
+ description: >-
+ Used to control whether this domain is currently being
+ rendered.
+ enum:
+ - disabled
+ - active
+ example: '{{status}}'
+ type: string
+ x-linode-cli-color:
+ active: green
+ default_: red
+ disabled: yellow
+ edit_mode: yellow
+ x-linode-cli-display: 4
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
ttl_sec:
- $ref: '#/components/schemas/DomainRecord/properties/ttl_sec'
- tag:
- $ref: '#/components/schemas/DomainRecord/properties/tag'
+ default: 0
+ description: >-
+ "Time to Live" - the amount of time in seconds that this
+ domain's records may be cached by resolvers or other domain
+ servers.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid value.
+
+
+ - A value of 0 is equivalent to the default value of 86400.
+ example: '{{ttl_sec}}'
+ type: integer
+ type:
+ description: >-
+ Whether this domain represents the authoritative source of
+ information for the domain it describes (`master`), or
+ whether it is a read-only copy of a master (`slave`).
+ enum:
+ - master
+ - slave
+ example: '{{type}}'
+ type: string
+ x-linode-cli-display: 3
+ title: Domain
+ type: object
+ x-akamai:
+ file-path: schemas/domain.yaml
+ x-example:
+ x-ref: ../examples/put-domain.json
+ description: The Domain information to update.
+ required: true
responses:
'200':
- description: Domain Record updated.
content:
application/json:
schema:
- $ref: '#/components/schemas/DomainRecord'
+ additionalProperties: false
+ description: >-
+ A domain zonefile in our DNS system. You must own the domain
+ name and tell your registrar to use Linode's nameservers in
+ order for a domain in our system to be treated as
+ authoritative.
+ properties:
+ axfr_ips:
+ description: >-
+ The list of IPs that may perform a zone transfer for this
+ domain. The total combined length of all data within this
+ array cannot exceed 1000 characters.
+
+
+ > 📘
+
+ >
+
+ > This is potentially dangerous, and should be set to an
+ empty list unless you intend to use it.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ description:
+ description: >-
+ A description for this domain. This is for display
+ purposes only.
+ example: null
+ maxLength: 253
+ minLength: 1
+ nullable: true
+ type: string
+ domain:
+ description: >-
+ __Filterable__ The domain this domain represents. 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
+ maxLength: 253
+ minLength: 1
+ pattern: >-
+ ^(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ expire_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds that may pass before this
+ domain is no longer authoritative.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 1209600.
+ example: 300
+ type: integer
+ group:
+ deprecated: true
+ description: >-
+ __Filterable__ The group this domain belongs to. This is
+ for display purposes only.
+ example: null
+ maxLength: 50
+ minLength: 1
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This domain's unique ID.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ master_ips:
+ description: >-
+ The IP addresses representing the master DNS for this
+ domain. At least one value is required for `type` slave
+ domains. The total combined length of all data within this
+ array cannot exceed 1000 characters.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ refresh_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds before this domain should be
+ refreshed.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 14400.
+ example: 300
+ type: integer
+ retry_sec:
+ default: 0
+ description: >-
+ The interval, in seconds, at which a failed refresh should
+ be retried.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 14400.
+ example: 300
+ type: integer
+ soa_email:
+ description: >-
+ Start of Authority email address. This is required for
+ `type` master domains.
+ example: admin@example.org
+ format: email
+ type: string
+ x-linode-cli-display: 5
+ status:
+ default: active
+ description: >-
+ Used to control whether this domain is currently being
+ rendered.
+ enum:
+ - disabled
+ - active
+ example: active
+ type: string
+ x-linode-cli-color:
+ active: green
+ default_: red
+ disabled: yellow
+ edit_mode: yellow
+ x-linode-cli-display: 4
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ ttl_sec:
+ default: 0
+ description: >-
+ "Time to Live" - the amount of time in seconds that this
+ domain's records may be cached by resolvers or other
+ domain servers.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 86400.
+ example: 300
+ type: integer
+ type:
+ description: >-
+ Whether this domain represents the authoritative source of
+ information for the domain it describes (`master`), or
+ whether it is a read-only copy of a master (`slave`).
+ enum:
+ - master
+ - slave
+ example: master
+ type: string
+ x-linode-cli-display: 3
+ title: Domain
+ type: object
+ x-akamai:
+ file-path: schemas/domain.yaml
+ x-example:
+ x-ref: ../examples/get-domain-200.json
+ description: Domain update successful.
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": "test",
- "target": "203.0.113.1",
- "priority": 50,
- "weight": 50,
- "port": 80,
- "service": null,
- "protocol": null,
- "ttl_sec": 604800,
- "tag": null
- }' \
- https://api.linode.com/v4/domains/123/records/234
- - lang: CLI
- source: |
- linode-cli domains records-update 123 234 \
- --name test \
- --target 203.0.113.1 \
- --priority 50 \
- --weight 50 \
- --port 80 \
- --ttl_sec 604800
- 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
- delete:
- x-linode-grant: read_write
- tags:
- - Domains
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
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
+ - domains:read_write
+ summary: Update a domain
+ tags:
+ - Domains
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli domains update 1234 \
+ --retry_sec 7200 \
+ --ttl_sec 300
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: domains:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update
+ x-linode-grant: read_write
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-domain
+ operationId: delete-domain
responses:
'200':
- description: Record deleted successfully.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-domain-200.json
+ description: Domain deleted successfully.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/domains/123/records/234
- - lang: CLI
- source: |
- linode-cli domains records-delete 123 234
- 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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - domains:read_write
+ summary: Delete a domain
+ tags:
+ - Domains
+ x-akamai:
+ tabs:
+ - syntax: linode-cli domains delete 1234
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: domains:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - delete
+ - rm
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Domain to access.
+ example: '{{domainId}}'
+ in: path
+ name: domainId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/domain-id-path-6aab9d6d.yaml
+ x-akamai:
+ file-path: paths/domain.yaml
+ path-info: /{apiVersion}/domains/{domainId}
+ x-linode-cli-command: domains
+ /domains/{domainId}/clone:
+ post:
+ description: >-
+ Clones a Domain and all associated DNS records from a Domain that is
+ registered in Linode's DNS manager.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-clone-domain
+ operationId: post-clone-domain
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ domain:
+ description: >-
+ __Filterable__ 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: '{{domain}}'
+ maxLength: 253
+ minLength: 1
+ pattern: >-
+ ^(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ required:
+ - domain
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-clone-domain.yaml
+ x-example:
+ x-ref: ../examples/post-clone-domain.json
+ description: Information about the Domain to clone.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A domain zonefile in our DNS system. You must own the domain
+ name and tell your registrar to use Linode's nameservers in
+ order for a domain in our system to be treated as
+ authoritative.
+ properties:
+ axfr_ips:
+ description: >-
+ The list of IPs that may perform a zone transfer for this
+ domain. The total combined length of all data within this
+ array cannot exceed 1000 characters.
+
+
+ > 📘
+
+ >
+
+ > This is potentially dangerous, and should be set to an
+ empty list unless you intend to use it.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ description:
+ description: >-
+ A description for this domain. This is for display
+ purposes only.
+ example: null
+ maxLength: 253
+ minLength: 1
+ nullable: true
+ type: string
+ domain:
+ description: >-
+ __Filterable__ The domain this domain represents. 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
+ maxLength: 253
+ minLength: 1
+ pattern: >-
+ ^(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ expire_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds that may pass before this
+ domain is no longer authoritative.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 1209600.
+ example: 300
+ type: integer
+ group:
+ deprecated: true
+ description: >-
+ __Filterable__ The group this domain belongs to. This is
+ for display purposes only.
+ example: null
+ maxLength: 50
+ minLength: 1
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This domain's unique ID.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ master_ips:
+ description: >-
+ The IP addresses representing the master DNS for this
+ domain. At least one value is required for `type` slave
+ domains. The total combined length of all data within this
+ array cannot exceed 1000 characters.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ refresh_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds before this domain should be
+ refreshed.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 14400.
+ example: 300
+ type: integer
+ retry_sec:
+ default: 0
+ description: >-
+ The interval, in seconds, at which a failed refresh should
+ be retried.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 14400.
+ example: 300
+ type: integer
+ soa_email:
+ description: >-
+ Start of Authority email address. This is required for
+ `type` master domains.
+ example: admin@example.org
+ format: email
+ type: string
+ x-linode-cli-display: 5
+ status:
+ default: active
+ description: >-
+ Used to control whether this domain is currently being
+ rendered.
+ enum:
+ - disabled
+ - active
+ example: active
+ type: string
+ x-linode-cli-color:
+ active: green
+ default_: red
+ disabled: yellow
+ edit_mode: yellow
+ x-linode-cli-display: 4
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ ttl_sec:
+ default: 0
+ description: >-
+ "Time to Live" - the amount of time in seconds that this
+ domain's records may be cached by resolvers or other
+ domain servers.
+
+
+ - Valid values are 0, 30, 120, 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200.
+
+
+ - Any other value is rounded up to the nearest valid
+ value.
+
+
+ - A value of 0 is equivalent to the default value of
+ 86400.
+ example: 300
+ type: integer
+ type:
+ description: >-
+ Whether this domain represents the authoritative source of
+ information for the domain it describes (`master`), or
+ whether it is a read-only copy of a master (`slave`).
+ enum:
+ - master
+ - slave
+ example: master
+ type: string
+ x-linode-cli-display: 3
+ title: Domain
+ type: object
+ x-akamai:
+ file-path: schemas/domain.yaml
+ x-example:
+ x-ref: ../examples/post-clone-domain-200.json
+ description: A new Domain in Linode's DNS Manager, based on a cloned Domain.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - domains:read_write
+ summary: Clone a domain
+ tags:
+ - Domains
+ x-akamai:
+ tabs:
+ - syntax: linode-cli domains clone 123 --domain example.com
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: domains:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: clone
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Domain to clone.
+ example: '{{domainId}}'
+ in: path
+ name: domainId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/domain-id-path-f5ed829a.yaml
+ x-akamai:
+ file-path: paths/domain-clone.yaml
+ path-info: /{apiVersion}/domains/{domainId}/clone
+ x-linode-cli-command: domains
+ /domains/{domainId}/records:
+ post:
+ description: >-
+ Adds a new Domain Record to the zonefile this Domain represents.
+
+
+ Each domain can have up to 12,000 active records.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-domain-record
+ operationId: post-domain-record
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: A single record on a Domain.
+ properties:
+ created:
+ description: __Read-only__ When this Domain Record was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ This Record's unique ID.
+ example: 123456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ name:
+ description: >-
+ __Filterable__ The name of this Record. For requests,
+ this property's actual usage and whether it is required
+ depends on the type of record this represents:
+
+
+ `A` and `AAAA`: The hostname or FQDN of the Record.
+
+
+ `NS`: The subdomain, if any, to use with the Domain of
+ the Record. Wildcard NS records (`*`) are not supported.
+
+
+ `MX`: The mail subdomain. For example, `sub` for the
+ address `user@sub.example.com` under the `example.com`
+ Domain.
+
+
+ - The left-most subdomain component may be an asterisk
+ (`*`) to designate a wildcard subdomain.
+
+ - Other subdomain components must only contain letters,
+ digits, and hyphens, start with a letter, end with a
+ letter or digit, and contain less than 64 characters.
+
+ - Must be an empty string (`""`) for a Null MX Record.
+
+
+ `CNAME`: The hostname. Must be unique. Required.
+
+
+ `TXT`: The hostname.
+
+
+ `SRV`: Unused. Use the `service` property to set the
+ service name for this record.
+
+
+ `CAA`: The subdomain. Omit or enter an empty string
+ (`""`) to apply to the entire Domain.
+
+
+ `PTR`: See our guide on how to [Configure Your Linode
+ for Reverse DNS
+
+ (rDNS)](https://www.linode.com/docs/guides/configure-rdns/).
+ example: test
+ maxLength: 100
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ port:
+ description: >-
+ The port this Record points to. Only valid and required
+ for SRV record requests.
+ example: 80
+ maximum: 65535
+ minimum: 0
+ type: integer
+ priority:
+ description: >-
+ The priority of the target host for this Record. Lower
+ values are preferred. Only valid for MX and SRV record
+ requests. Required for SRV record requests.
+
+
+ Defaults to `0` for MX record requests. Must be `0` for
+ Null MX records.
+ example: 50
+ maximum: 255
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 6
+ protocol:
+ description: >-
+ The protocol this Record's service communicates with. An
+ underscore (`_`) is prepended automatically to the
+ submitted value for this property. Only valid for SRV
+ record requests.
+ example: null
+ nullable: true
+ type: string
+ service:
+ description: >-
+ The name of the service. An underscore (`_`) is
+ prepended and a period (`.`) is appended automatically
+ to the submitted value for this property. Only valid and
+ required for SRV record requests.
+ example: null
+ nullable: true
+ type: string
+ tag:
+ description: >-
+ __Filterable__ The tag portion of a CAA record. Only
+ valid and required for CAA record requests.
+ enum:
+ - issue
+ - issuewild
+ - iodef
+ example: null
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ target:
+ description: >-
+ __Filterable__ The target for this Record. For requests,
+ this property's actual usage and whether it is required
+ depends on the type of record this represents:
+
+
+ `A` and `AAAA`: The IP address. Use `[remote_addr]` to
+ submit the IPv4 address of the request. Required.
+
+
+ `NS`: The name server. Must be a valid domain. Required.
+
+
+ `MX`: The mail server. Must be a valid domain unless
+ creating a Null MX Record. Required.
+
+
+ - Must have less than 254 total characters.
+
+ - The left-most domain component may be an asterisk
+ (`*`) to designate a wildcard domain.
+
+ - Other domain components must only contain letters,
+ digits, and hyphens, start with a letter, end with a
+ letter or digit, and contain less than 64 characters.
+
+ - To create a [Null MX
+ Record](https://datatracker.ietf.org/doc/html/rfc7505),
+ first
+ [remove](https://techdocs.akamai.com/linode-api/reference/delete-domain-record)
+ any additional MX records, then create an MX record with
+ empty strings (`""`) for the `target` and `name`. If a
+ Domain has a Null MX record, new MX records cannot be
+ created.
+
+
+ `CNAME`: The alias. Must be a valid domain. Required.
+
+
+ `TXT`: The value. Required.
+
+
+ `SRV`: The target domain or subdomain. If a subdomain is
+ entered, it is automatically used with the Domain.
+
+ To configure for a different domain, enter a valid FQDN.
+ For example, the value `www` with a Domain for
+
+ `example.com` results in a target set to
+ `www.example.com`, whereas the value `sample.com`
+ results in a
+
+ target set to `sample.com`. Required.
+
+
+ `CAA`: The value. For `issue` or `issuewild` tags, the
+ domain of your certificate issuer. For the `iodef`
+
+ tag, a contact or submission URL (domain, http, https,
+ or mailto). Requirements depend on the tag for this
+ record:
+
+ - `issue`: The domain of your certificate issuer. Must include a valid domain. May include additional parameters separated with semicolons (`;`), for example: `www.example.com; foo=bar`
+ - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).
+ - `iodef`: Must be either (1) a valid domain, (2) a valid domain prepended with `http://` or `https://`, or (3) a valid email address prepended with `mailto:`.
+
+ `PTR`: Required. See our guide on how to [Configure Your
+ Linode for Reverse DNS
+
+ (rDNS)](https://www.linode.com/docs/guides/configure-rdns/).
+
+
+ With the exception of A, AAAA, and CAA records, this
+ field accepts a trailing period.
+ example: 192.0.2.0
+ maxLength: 65535
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ ttl_sec:
+ description: >-
+ "Time to Live" - the amount of time in seconds that this
+ Domain's records may be cached by resolvers or other
+ domain servers. Valid values are 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600,
+ and 2419200 - any other value will be rounded to the
+ nearest valid value.
+ example: 604800
+ type: integer
+ x-linode-cli-display: 5
+ type:
+ description: >-
+ __Filterable__ The type of Record this is in the DNS
+ system. For example, A records associate a domain name
+ with an IPv4 address, and AAAA records associate a
+ domain name with an IPv6 address. For more information,
+ see the guides on [DNS Record
+ Types](https://www.linode.com/docs/products/networking/dns-manager/guides/#dns-record-types).
+ enum:
+ - A
+ - AAAA
+ - NS
+ - MX
+ - CNAME
+ - TXT
+ - SRV
+ - PTR
+ - CAA
+ example: A
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Domain Record was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ weight:
+ description: >-
+ The relative weight of this Record used in the case of
+ identical priority. Higher values are preferred. Only
+ valid and required for SRV record requests.
+ example: 50
+ maximum: 65535
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 7
+ type: object
+ x-akamai:
+ file-path: schemas/domain-record.yaml
+ required:
+ - type
+ x-akamai:
+ file-path: schemas/added-post-domain-record.yaml
+ x-example:
+ x-ref: ../examples/post-domain-record.json
+ description: Information about the new Record to add.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A single record on a Domain.
+ properties:
+ created:
+ description: __Read-only__ When this Domain Record was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ This Record's unique ID.
+ example: 123456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ name:
+ description: >-
+ __Filterable__ The name of this Record. For requests, this
+ property's actual usage and whether it is required depends
+ on the type of record this represents:
+
+
+ `A` and `AAAA`: The hostname or FQDN of the Record.
+
+
+ `NS`: The subdomain, if any, to use with the Domain of the
+ Record. Wildcard NS records (`*`) are not supported.
+
+
+ `MX`: The mail subdomain. For example, `sub` for the
+ address `user@sub.example.com` under the `example.com`
+ Domain.
+
+
+ - The left-most subdomain component may be an asterisk
+ (`*`) to designate a wildcard subdomain.
+
+ - Other subdomain components must only contain letters,
+ digits, and hyphens, start with a letter, end with a
+ letter or digit, and contain less than 64 characters.
+
+ - Must be an empty string (`""`) for a Null MX Record.
+
+
+ `CNAME`: The hostname. Must be unique. Required.
+
+
+ `TXT`: The hostname.
+
+
+ `SRV`: Unused. Use the `service` property to set the
+ service name for this record.
+
+
+ `CAA`: The subdomain. Omit or enter an empty string (`""`)
+ to apply to the entire Domain.
+
+
+ `PTR`: See our guide on how to [Configure Your Linode for
+ Reverse DNS
+
+ (rDNS)](https://www.linode.com/docs/guides/configure-rdns/).
+ example: test
+ maxLength: 100
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ port:
+ description: >-
+ The port this Record points to. Only valid and required
+ for SRV record requests.
+ example: 80
+ maximum: 65535
+ minimum: 0
+ type: integer
+ priority:
+ description: >-
+ The priority of the target host for this Record. Lower
+ values are preferred. Only valid for MX and SRV record
+ requests. Required for SRV record requests.
+
+
+ Defaults to `0` for MX record requests. Must be `0` for
+ Null MX records.
+ example: 50
+ maximum: 255
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 6
+ protocol:
+ description: >-
+ The protocol this Record's service communicates with. An
+ underscore (`_`) is prepended automatically to the
+ submitted value for this property. Only valid for SRV
+ record requests.
+ example: null
+ nullable: true
+ type: string
+ service:
+ description: >-
+ The name of the service. An underscore (`_`) is prepended
+ and a period (`.`) is appended automatically to the
+ submitted value for this property. Only valid and required
+ for SRV record requests.
+ example: null
+ nullable: true
+ type: string
+ tag:
+ description: >-
+ __Filterable__ The tag portion of a CAA record. Only valid
+ and required for CAA record requests.
+ enum:
+ - issue
+ - issuewild
+ - iodef
+ example: null
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ target:
+ description: >-
+ __Filterable__ The target for this Record. For requests,
+ this property's actual usage and whether it is required
+ depends on the type of record this represents:
+
+
+ `A` and `AAAA`: The IP address. Use `[remote_addr]` to
+ submit the IPv4 address of the request. Required.
+
+
+ `NS`: The name server. Must be a valid domain. Required.
+
+
+ `MX`: The mail server. Must be a valid domain unless
+ creating a Null MX Record. Required.
+
+
+ - Must have less than 254 total characters.
+
+ - The left-most domain component may be an asterisk (`*`)
+ to designate a wildcard domain.
+
+ - Other domain components must only contain letters,
+ digits, and hyphens, start with a letter, end with a
+ letter or digit, and contain less than 64 characters.
+
+ - To create a [Null MX
+ Record](https://datatracker.ietf.org/doc/html/rfc7505),
+ first
+ [remove](https://techdocs.akamai.com/linode-api/reference/delete-domain-record)
+ any additional MX records, then create an MX record with
+ empty strings (`""`) for the `target` and `name`. If a
+ Domain has a Null MX record, new MX records cannot be
+ created.
+
+
+ `CNAME`: The alias. Must be a valid domain. Required.
+
+
+ `TXT`: The value. Required.
+
+
+ `SRV`: The target domain or subdomain. If a subdomain is
+ entered, it is automatically used with the Domain.
+
+ To configure for a different domain, enter a valid FQDN.
+ For example, the value `www` with a Domain for
+
+ `example.com` results in a target set to
+ `www.example.com`, whereas the value `sample.com` results
+ in a
+
+ target set to `sample.com`. Required.
+
+
+ `CAA`: The value. For `issue` or `issuewild` tags, the
+ domain of your certificate issuer. For the `iodef`
+
+ tag, a contact or submission URL (domain, http, https, or
+ mailto). Requirements depend on the tag for this record:
+
+ - `issue`: The domain of your certificate issuer. Must include a valid domain. May include additional parameters separated with semicolons (`;`), for example: `www.example.com; foo=bar`
+ - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).
+ - `iodef`: Must be either (1) a valid domain, (2) a valid domain prepended with `http://` or `https://`, or (3) a valid email address prepended with `mailto:`.
+
+ `PTR`: Required. See our guide on how to [Configure Your
+ Linode for Reverse DNS
+
+ (rDNS)](https://www.linode.com/docs/guides/configure-rdns/).
+
+
+ With the exception of A, AAAA, and CAA records, this field
+ accepts a trailing period.
+ example: 192.0.2.0
+ maxLength: 65535
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ ttl_sec:
+ description: >-
+ "Time to Live" - the amount of time in seconds that this
+ Domain's records may be cached by resolvers or other
+ domain servers. Valid values are 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200 - any other value will be rounded to the nearest
+ valid value.
+ example: 604800
+ type: integer
+ x-linode-cli-display: 5
+ type:
+ description: >-
+ __Filterable__ The type of Record this is in the DNS
+ system. For example, A records associate a domain name
+ with an IPv4 address, and AAAA records associate a domain
+ name with an IPv6 address. For more information, see the
+ guides on [DNS Record
+ Types](https://www.linode.com/docs/products/networking/dns-manager/guides/#dns-record-types).
+ enum:
+ - A
+ - AAAA
+ - NS
+ - MX
+ - CNAME
+ - TXT
+ - SRV
+ - PTR
+ - CAA
+ example: A
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Domain Record was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ weight:
+ description: >-
+ The relative weight of this Record used in the case of
+ identical priority. Higher values are preferred. Only
+ valid and required for SRV record requests.
+ example: 50
+ maximum: 65535
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 7
+ type: object
+ x-akamai:
+ file-path: schemas/domain-record.yaml
+ x-example:
+ x-ref: ../examples/post-domain-record-200.json
+ description: Domain Record created successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - domains:read_write
+ summary: Create a domain record
+ tags:
+ - Records
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli domains records-create 123 \
+ --type A \
+ --name test \
+ --target 203.0.113.1 \
+ --priority 50 \
+ --weight 50 \
+ --port 80 \
+ --ttl_sec 604800
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: domains:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: records-create
+ x-linode-grant: read_write
+ get:
+ description: >-
+ Returns a paginated list of Records configured on a Domain in Linode's
+ DNS Manager.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-domain-records
+ operationId: get-domain-records
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: A single record on a Domain.
+ properties:
+ created:
+ description: __Read-only__ When this Domain Record was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ This Record's unique ID.
+ example: 123456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ name:
+ description: >-
+ __Filterable__ The name of this Record. For
+ requests, this property's actual usage and whether
+ it is required depends on the type of record this
+ represents:
+
+
+ `A` and `AAAA`: The hostname or FQDN of the Record.
+
+
+ `NS`: The subdomain, if any, to use with the Domain
+ of the Record. Wildcard NS records (`*`) are not
+ supported.
+
+
+ `MX`: The mail subdomain. For example, `sub` for the
+ address `user@sub.example.com` under the
+ `example.com` Domain.
+
+
+ - The left-most subdomain component may be an
+ asterisk (`*`) to designate a wildcard subdomain.
+
+ - Other subdomain components must only contain
+ letters, digits, and hyphens, start with a letter,
+ end with a letter or digit, and contain less than 64
+ characters.
+
+ - Must be an empty string (`""`) for a Null MX
+ Record.
+
+
+ `CNAME`: The hostname. Must be unique. Required.
+
+
+ `TXT`: The hostname.
+
+
+ `SRV`: Unused. Use the `service` property to set the
+ service name for this record.
+
+
+ `CAA`: The subdomain. Omit or enter an empty string
+ (`""`) to apply to the entire Domain.
+
+
+ `PTR`: See our guide on how to [Configure Your
+ Linode for Reverse DNS
+
+ (rDNS)](https://www.linode.com/docs/guides/configure-rdns/).
+ example: test
+ maxLength: 100
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ port:
+ description: >-
+ The port this Record points to. Only valid and
+ required for SRV record requests.
+ example: 80
+ maximum: 65535
+ minimum: 0
+ type: integer
+ priority:
+ description: >-
+ The priority of the target host for this Record.
+ Lower values are preferred. Only valid for MX and
+ SRV record requests. Required for SRV record
+ requests.
+
+
+ Defaults to `0` for MX record requests. Must be `0`
+ for Null MX records.
+ example: 50
+ maximum: 255
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 6
+ protocol:
+ description: >-
+ The protocol this Record's service communicates
+ with. An underscore (`_`) is prepended automatically
+ to the submitted value for this property. Only valid
+ for SRV record requests.
+ example: null
+ nullable: true
+ type: string
+ service:
+ description: >-
+ The name of the service. An underscore (`_`) is
+ prepended and a period (`.`) is appended
+ automatically to the submitted value for this
+ property. Only valid and required for SRV record
+ requests.
+ example: null
+ nullable: true
+ type: string
+ tag:
+ description: >-
+ __Filterable__ The tag portion of a CAA record. Only
+ valid and required for CAA record requests.
+ enum:
+ - issue
+ - issuewild
+ - iodef
+ example: null
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ target:
+ description: >-
+ __Filterable__ The target for this Record. For
+ requests, this property's actual usage and whether
+ it is required depends on the type of record this
+ represents:
+
+
+ `A` and `AAAA`: The IP address. Use `[remote_addr]`
+ to submit the IPv4 address of the request. Required.
+
+
+ `NS`: The name server. Must be a valid domain.
+ Required.
+
+
+ `MX`: The mail server. Must be a valid domain unless
+ creating a Null MX Record. Required.
+
+
+ - Must have less than 254 total characters.
+
+ - The left-most domain component may be an asterisk
+ (`*`) to designate a wildcard domain.
+
+ - Other domain components must only contain letters,
+ digits, and hyphens, start with a letter, end with a
+ letter or digit, and contain less than 64
+ characters.
+
+ - To create a [Null MX
+ Record](https://datatracker.ietf.org/doc/html/rfc7505),
+ first
+ [remove](https://techdocs.akamai.com/linode-api/reference/delete-domain-record)
+ any additional MX records, then create an MX record
+ with empty strings (`""`) for the `target` and
+ `name`. If a Domain has a Null MX record, new MX
+ records cannot be created.
+
+
+ `CNAME`: The alias. Must be a valid domain.
+ Required.
+
+
+ `TXT`: The value. Required.
+
+
+ `SRV`: The target domain or subdomain. If a
+ subdomain is entered, it is automatically used with
+ the Domain.
+
+ To configure for a different domain, enter a valid
+ FQDN. For example, the value `www` with a Domain for
+
+ `example.com` results in a target set to
+ `www.example.com`, whereas the value `sample.com`
+ results in a
+
+ target set to `sample.com`. Required.
+
+
+ `CAA`: The value. For `issue` or `issuewild` tags,
+ the domain of your certificate issuer. For the
+ `iodef`
+
+ tag, a contact or submission URL (domain, http,
+ https, or mailto). Requirements depend on the tag
+ for this record:
+
+ - `issue`: The domain of your certificate issuer. Must include a valid domain. May include additional parameters separated with semicolons (`;`), for example: `www.example.com; foo=bar`
+ - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).
+ - `iodef`: Must be either (1) a valid domain, (2) a valid domain prepended with `http://` or `https://`, or (3) a valid email address prepended with `mailto:`.
+
+ `PTR`: Required. See our guide on how to [Configure
+ Your Linode for Reverse DNS
+
+ (rDNS)](https://www.linode.com/docs/guides/configure-rdns/).
+
+
+ With the exception of A, AAAA, and CAA records, this
+ field accepts a trailing period.
+ example: 192.0.2.0
+ maxLength: 65535
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ ttl_sec:
+ description: >-
+ "Time to Live" - the amount of time in seconds that
+ this Domain's records may be cached by resolvers or
+ other domain servers. Valid values are 300, 3600,
+ 7200, 14400, 28800, 57600, 86400, 172800, 345600,
+ 604800, 1209600, and 2419200 - any other value will
+ be rounded to the nearest valid value.
+ example: 604800
+ type: integer
+ x-linode-cli-display: 5
+ type:
+ description: >-
+ __Filterable__ The type of Record this is in the DNS
+ system. For example, A records associate a domain
+ name with an IPv4 address, and AAAA records
+ associate a domain name with an IPv6 address. For
+ more information, see the guides on [DNS Record
+ Types](https://www.linode.com/docs/products/networking/dns-manager/guides/#dns-record-types).
+ enum:
+ - A
+ - AAAA
+ - NS
+ - MX
+ - CNAME
+ - TXT
+ - SRV
+ - PTR
+ - CAA
+ example: A
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Read-only__ When this Domain Record was last
+ updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ weight:
+ description: >-
+ The relative weight of this Record used in the case
+ of identical priority. Higher values are preferred.
+ Only valid and required for SRV record requests.
+ example: 50
+ maximum: 65535
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 7
+ type: object
+ x-akamai:
+ file-path: schemas/domain-record.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-domain-records-200.yaml
+ x-example:
+ x-ref: ../examples/get-domain-records-200.json
+ description: A list of Domain Records.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - domains:read_only
+ summary: List domain records
+ tags:
+ - Records
+ x-akamai:
+ tabs:
+ - syntax: linode-cli domains records-list 1234
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: domains:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: records-list
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the Domain we are accessing Records for.
+ example: '{{domainId}}'
+ in: path
+ name: domainId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/domain-id-path-eb9ccd41.yaml
+ x-akamai:
+ file-path: paths/records.yaml
+ path-info: /{apiVersion}/domains/{domainId}/records
+ x-linode-cli-command: domains
+ /domains/{domainId}/records/{recordId}:
+ get:
+ description: >-
+ View a single Record on this Domain.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-domain-record
+ operationId: get-domain-record
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A single record on a Domain.
+ properties:
+ created:
+ description: __Read-only__ When this Domain Record was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ This Record's unique ID.
+ example: 123456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ name:
+ description: >-
+ __Filterable__ The name of this Record. For requests, this
+ property's actual usage and whether it is required depends
+ on the type of record this represents:
+
+
+ `A` and `AAAA`: The hostname or FQDN of the Record.
+
+
+ `NS`: The subdomain, if any, to use with the Domain of the
+ Record. Wildcard NS records (`*`) are not supported.
+
+
+ `MX`: The mail subdomain. For example, `sub` for the
+ address `user@sub.example.com` under the `example.com`
+ Domain.
+
+
+ - The left-most subdomain component may be an asterisk
+ (`*`) to designate a wildcard subdomain.
+
+ - Other subdomain components must only contain letters,
+ digits, and hyphens, start with a letter, end with a
+ letter or digit, and contain less than 64 characters.
+
+ - Must be an empty string (`""`) for a Null MX Record.
+
+
+ `CNAME`: The hostname. Must be unique. Required.
+
+
+ `TXT`: The hostname.
+
+
+ `SRV`: Unused. Use the `service` property to set the
+ service name for this record.
+
+
+ `CAA`: The subdomain. Omit or enter an empty string (`""`)
+ to apply to the entire Domain.
+
+
+ `PTR`: See our guide on how to [Configure Your Linode for
+ Reverse DNS
+
+ (rDNS)](https://www.linode.com/docs/guides/configure-rdns/).
+ example: test
+ maxLength: 100
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ port:
+ description: >-
+ The port this Record points to. Only valid and required
+ for SRV record requests.
+ example: 80
+ maximum: 65535
+ minimum: 0
+ type: integer
+ priority:
+ description: >-
+ The priority of the target host for this Record. Lower
+ values are preferred. Only valid for MX and SRV record
+ requests. Required for SRV record requests.
+
+
+ Defaults to `0` for MX record requests. Must be `0` for
+ Null MX records.
+ example: 50
+ maximum: 255
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 6
+ protocol:
+ description: >-
+ The protocol this Record's service communicates with. An
+ underscore (`_`) is prepended automatically to the
+ submitted value for this property. Only valid for SRV
+ record requests.
+ example: null
+ nullable: true
+ type: string
+ service:
+ description: >-
+ The name of the service. An underscore (`_`) is prepended
+ and a period (`.`) is appended automatically to the
+ submitted value for this property. Only valid and required
+ for SRV record requests.
+ example: null
+ nullable: true
+ type: string
+ tag:
+ description: >-
+ __Filterable__ The tag portion of a CAA record. Only valid
+ and required for CAA record requests.
+ enum:
+ - issue
+ - issuewild
+ - iodef
+ example: null
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ target:
+ description: >-
+ __Filterable__ The target for this Record. For requests,
+ this property's actual usage and whether it is required
+ depends on the type of record this represents:
+
+
+ `A` and `AAAA`: The IP address. Use `[remote_addr]` to
+ submit the IPv4 address of the request. Required.
+
+
+ `NS`: The name server. Must be a valid domain. Required.
+
+
+ `MX`: The mail server. Must be a valid domain unless
+ creating a Null MX Record. Required.
+
+
+ - Must have less than 254 total characters.
+
+ - The left-most domain component may be an asterisk (`*`)
+ to designate a wildcard domain.
+
+ - Other domain components must only contain letters,
+ digits, and hyphens, start with a letter, end with a
+ letter or digit, and contain less than 64 characters.
+
+ - To create a [Null MX
+ Record](https://datatracker.ietf.org/doc/html/rfc7505),
+ first
+ [remove](https://techdocs.akamai.com/linode-api/reference/delete-domain-record)
+ any additional MX records, then create an MX record with
+ empty strings (`""`) for the `target` and `name`. If a
+ Domain has a Null MX record, new MX records cannot be
+ created.
+
+
+ `CNAME`: The alias. Must be a valid domain. Required.
+
+
+ `TXT`: The value. Required.
+
+
+ `SRV`: The target domain or subdomain. If a subdomain is
+ entered, it is automatically used with the Domain.
+
+ To configure for a different domain, enter a valid FQDN.
+ For example, the value `www` with a Domain for
+
+ `example.com` results in a target set to
+ `www.example.com`, whereas the value `sample.com` results
+ in a
+
+ target set to `sample.com`. Required.
+
+
+ `CAA`: The value. For `issue` or `issuewild` tags, the
+ domain of your certificate issuer. For the `iodef`
+
+ tag, a contact or submission URL (domain, http, https, or
+ mailto). Requirements depend on the tag for this record:
+
+ - `issue`: The domain of your certificate issuer. Must include a valid domain. May include additional parameters separated with semicolons (`;`), for example: `www.example.com; foo=bar`
+ - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).
+ - `iodef`: Must be either (1) a valid domain, (2) a valid domain prepended with `http://` or `https://`, or (3) a valid email address prepended with `mailto:`.
+
+ `PTR`: Required. See our guide on how to [Configure Your
+ Linode for Reverse DNS
+
+ (rDNS)](https://www.linode.com/docs/guides/configure-rdns/).
+
+
+ With the exception of A, AAAA, and CAA records, this field
+ accepts a trailing period.
+ example: 192.0.2.0
+ maxLength: 65535
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ ttl_sec:
+ description: >-
+ "Time to Live" - the amount of time in seconds that this
+ Domain's records may be cached by resolvers or other
+ domain servers. Valid values are 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200 - any other value will be rounded to the nearest
+ valid value.
+ example: 604800
+ type: integer
+ x-linode-cli-display: 5
+ type:
+ description: >-
+ __Filterable__ The type of Record this is in the DNS
+ system. For example, A records associate a domain name
+ with an IPv4 address, and AAAA records associate a domain
+ name with an IPv6 address. For more information, see the
+ guides on [DNS Record
+ Types](https://www.linode.com/docs/products/networking/dns-manager/guides/#dns-record-types).
+ enum:
+ - A
+ - AAAA
+ - NS
+ - MX
+ - CNAME
+ - TXT
+ - SRV
+ - PTR
+ - CAA
+ example: A
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Domain Record was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ weight:
+ description: >-
+ The relative weight of this Record used in the case of
+ identical priority. Higher values are preferred. Only
+ valid and required for SRV record requests.
+ example: 50
+ maximum: 65535
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 7
+ type: object
+ x-akamai:
+ file-path: schemas/domain-record.yaml
+ x-example:
+ x-ref: ../examples/get-domain-record-200.json
+ description: A Domain Record object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - domains:read_only
+ summary: Get a domain record
+ tags:
+ - Records
+ x-akamai:
+ tabs:
+ - syntax: linode-cli domains records-view 123 234
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: domains:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: records-view
+ x-linode-grant: read_only
+ put:
+ description: >-
+ Updates a single Record on this Domain.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-domain-record
+ operationId: put-domain-record
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A Domain Record Update request object.
+ properties:
+ name:
+ description: >-
+ __Filterable__ The name of this Record. For requests, this
+ property's actual usage and whether it is required depends
+ on the type of record this represents:
+
+
+ `A` and `AAAA`: The hostname or FQDN of the Record.
+
+
+ `NS`: The subdomain, if any, to use with the Domain of the
+ Record. Wildcard NS records (`*`) are not supported.
+
+
+ `MX`: The mail subdomain. For example, `sub` for the address
+ `user@sub.example.com` under the `example.com` Domain.
+
+
+ - The left-most subdomain component may be an asterisk (`*`)
+ to designate a wildcard subdomain.
+
+ - Other subdomain components must only contain letters,
+ digits, and hyphens, start with a letter, end with a letter
+ or digit, and contain less than 64 characters.
+
+ - Must be an empty string (`""`) for a Null MX Record.
+
+
+ `CNAME`: The hostname. Must be unique. Required.
+
+
+ `TXT`: The hostname.
+
+
+ `SRV`: Unused. Use the `service` property to set the service
+ name for this record.
+
+
+ `CAA`: The subdomain. Omit or enter an empty string (`""`)
+ to apply to the entire Domain.
+
+
+ `PTR`: See our guide on how to [Configure Your Linode for
+ Reverse DNS
+
+ (rDNS)](https://www.linode.com/docs/guides/configure-rdns/).
+ example: '{{name}}'
+ maxLength: 100
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ port:
+ description: >-
+ The port this Record points to. Only valid and required for
+ SRV record requests.
+ example: '{{port}}'
+ maximum: 65535
+ minimum: 0
+ type: integer
+ priority:
+ description: >-
+ The priority of the target host for this Record. Lower
+ values are preferred. Only valid for MX and SRV record
+ requests. Required for SRV record requests.
+
+
+ Defaults to `0` for MX record requests. Must be `0` for Null
+ MX records.
+ example: '{{priority}}'
+ maximum: 255
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 6
+ protocol:
+ description: >-
+ The protocol this Record's service communicates with. An
+ underscore (`_`) is prepended automatically to the submitted
+ value for this property. Only valid for SRV record requests.
+ example: '{{protocol}}'
+ nullable: true
+ type: string
+ service:
+ description: >-
+ The name of the service. An underscore (`_`) is prepended
+ and a period (`.`) is appended automatically to the
+ submitted value for this property. Only valid and required
+ for SRV record requests.
+ example: '{{service}}'
+ nullable: true
+ type: string
+ tag:
+ description: >-
+ __Filterable__ The tag portion of a CAA record. Only valid
+ and required for CAA record requests.
+ enum:
+ - issue
+ - issuewild
+ - iodef
+ example: '{{tag}}'
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ target:
+ description: >-
+ __Filterable__ The target for this Record. For requests,
+ this property's actual usage and whether it is required
+ depends on the type of record this represents:
+
+
+ `A` and `AAAA`: The IP address. Use `[remote_addr]` to
+ submit the IPv4 address of the request. Required.
+
+
+ `NS`: The name server. Must be a valid domain. Required.
+
+
+ `MX`: The mail server. Must be a valid domain unless
+ creating a Null MX Record. Required.
+
+
+ - Must have less than 254 total characters.
+
+ - The left-most domain component may be an asterisk (`*`) to
+ designate a wildcard domain.
+
+ - Other domain components must only contain letters, digits,
+ and hyphens, start with a letter, end with a letter or
+ digit, and contain less than 64 characters.
+
+ - To create a [Null MX
+ Record](https://datatracker.ietf.org/doc/html/rfc7505),
+ first
+ [remove](https://techdocs.akamai.com/linode-api/reference/delete-domain-record)
+ any additional MX records, then create an MX record with
+ empty strings (`""`) for the `target` and `name`. If a
+ Domain has a Null MX record, new MX records cannot be
+ created.
+
+
+ `CNAME`: The alias. Must be a valid domain. Required.
+
+
+ `TXT`: The value. Required.
+
+
+ `SRV`: The target domain or subdomain. If a subdomain is
+ entered, it is automatically used with the Domain.
+
+ To configure for a different domain, enter a valid FQDN. For
+ example, the value `www` with a Domain for
+
+ `example.com` results in a target set to `www.example.com`,
+ whereas the value `sample.com` results in a
+
+ target set to `sample.com`. Required.
+
+
+ `CAA`: The value. For `issue` or `issuewild` tags, the
+ domain of your certificate issuer. For the `iodef`
+
+ tag, a contact or submission URL (domain, http, https, or
+ mailto). Requirements depend on the tag for this record:
+
+ - `issue`: The domain of your certificate issuer. Must include a valid domain. May include additional parameters separated with semicolons (`;`), for example: `www.example.com; foo=bar`
+ - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).
+ - `iodef`: Must be either (1) a valid domain, (2) a valid domain prepended with `http://` or `https://`, or (3) a valid email address prepended with `mailto:`.
+
+ `PTR`: Required. See our guide on how to [Configure Your
+ Linode for Reverse DNS
+
+ (rDNS)](https://www.linode.com/docs/guides/configure-rdns/).
+
+
+ With the exception of A, AAAA, and CAA records, this field
+ accepts a trailing period.
+ example: '{{target}}'
+ maxLength: 65535
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ ttl_sec:
+ description: >-
+ "Time to Live" - the amount of time in seconds that this
+ Domain's records may be cached by resolvers or other domain
+ servers. Valid values are 300, 3600, 7200, 14400, 28800,
+ 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 -
+ any other value will be rounded to the nearest valid value.
+ example: '{{ttl_sec}}'
+ type: integer
+ x-linode-cli-display: 5
+ weight:
+ description: >-
+ The relative weight of this Record used in the case of
+ identical priority. Higher values are preferred. Only valid
+ and required for SRV record requests.
+ example: '{{weight}}'
+ maximum: 65535
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 7
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-domain-record.yaml
+ x-example:
+ x-ref: ../examples/put-domain-record.json
+ description: The values to change.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A single record on a Domain.
+ properties:
+ created:
+ description: __Read-only__ When this Domain Record was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ This Record's unique ID.
+ example: 123456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ name:
+ description: >-
+ __Filterable__ The name of this Record. For requests, this
+ property's actual usage and whether it is required depends
+ on the type of record this represents:
+
+
+ `A` and `AAAA`: The hostname or FQDN of the Record.
+
+
+ `NS`: The subdomain, if any, to use with the Domain of the
+ Record. Wildcard NS records (`*`) are not supported.
+
+
+ `MX`: The mail subdomain. For example, `sub` for the
+ address `user@sub.example.com` under the `example.com`
+ Domain.
+
+
+ - The left-most subdomain component may be an asterisk
+ (`*`) to designate a wildcard subdomain.
+
+ - Other subdomain components must only contain letters,
+ digits, and hyphens, start with a letter, end with a
+ letter or digit, and contain less than 64 characters.
+
+ - Must be an empty string (`""`) for a Null MX Record.
+
+
+ `CNAME`: The hostname. Must be unique. Required.
+
+
+ `TXT`: The hostname.
+
+
+ `SRV`: Unused. Use the `service` property to set the
+ service name for this record.
+
+
+ `CAA`: The subdomain. Omit or enter an empty string (`""`)
+ to apply to the entire Domain.
+
+
+ `PTR`: See our guide on how to [Configure Your Linode for
+ Reverse DNS
+
+ (rDNS)](https://www.linode.com/docs/guides/configure-rdns/).
+ example: test
+ maxLength: 100
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ port:
+ description: >-
+ The port this Record points to. Only valid and required
+ for SRV record requests.
+ example: 80
+ maximum: 65535
+ minimum: 0
+ type: integer
+ priority:
+ description: >-
+ The priority of the target host for this Record. Lower
+ values are preferred. Only valid for MX and SRV record
+ requests. Required for SRV record requests.
+
+
+ Defaults to `0` for MX record requests. Must be `0` for
+ Null MX records.
+ example: 50
+ maximum: 255
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 6
+ protocol:
+ description: >-
+ The protocol this Record's service communicates with. An
+ underscore (`_`) is prepended automatically to the
+ submitted value for this property. Only valid for SRV
+ record requests.
+ example: null
+ nullable: true
+ type: string
+ service:
+ description: >-
+ The name of the service. An underscore (`_`) is prepended
+ and a period (`.`) is appended automatically to the
+ submitted value for this property. Only valid and required
+ for SRV record requests.
+ example: null
+ nullable: true
+ type: string
+ tag:
+ description: >-
+ __Filterable__ The tag portion of a CAA record. Only valid
+ and required for CAA record requests.
+ enum:
+ - issue
+ - issuewild
+ - iodef
+ example: null
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ target:
+ description: >-
+ __Filterable__ The target for this Record. For requests,
+ this property's actual usage and whether it is required
+ depends on the type of record this represents:
+
+
+ `A` and `AAAA`: The IP address. Use `[remote_addr]` to
+ submit the IPv4 address of the request. Required.
+
+
+ `NS`: The name server. Must be a valid domain. Required.
+
+
+ `MX`: The mail server. Must be a valid domain unless
+ creating a Null MX Record. Required.
+
+
+ - Must have less than 254 total characters.
+
+ - The left-most domain component may be an asterisk (`*`)
+ to designate a wildcard domain.
+
+ - Other domain components must only contain letters,
+ digits, and hyphens, start with a letter, end with a
+ letter or digit, and contain less than 64 characters.
+
+ - To create a [Null MX
+ Record](https://datatracker.ietf.org/doc/html/rfc7505),
+ first
+ [remove](https://techdocs.akamai.com/linode-api/reference/delete-domain-record)
+ any additional MX records, then create an MX record with
+ empty strings (`""`) for the `target` and `name`. If a
+ Domain has a Null MX record, new MX records cannot be
+ created.
+
+
+ `CNAME`: The alias. Must be a valid domain. Required.
+
+
+ `TXT`: The value. Required.
+
+
+ `SRV`: The target domain or subdomain. If a subdomain is
+ entered, it is automatically used with the Domain.
+
+ To configure for a different domain, enter a valid FQDN.
+ For example, the value `www` with a Domain for
+
+ `example.com` results in a target set to
+ `www.example.com`, whereas the value `sample.com` results
+ in a
+
+ target set to `sample.com`. Required.
+
+
+ `CAA`: The value. For `issue` or `issuewild` tags, the
+ domain of your certificate issuer. For the `iodef`
+
+ tag, a contact or submission URL (domain, http, https, or
+ mailto). Requirements depend on the tag for this record:
+
+ - `issue`: The domain of your certificate issuer. Must include a valid domain. May include additional parameters separated with semicolons (`;`), for example: `www.example.com; foo=bar`
+ - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).
+ - `iodef`: Must be either (1) a valid domain, (2) a valid domain prepended with `http://` or `https://`, or (3) a valid email address prepended with `mailto:`.
+
+ `PTR`: Required. See our guide on how to [Configure Your
+ Linode for Reverse DNS
+
+ (rDNS)](https://www.linode.com/docs/guides/configure-rdns/).
+
+
+ With the exception of A, AAAA, and CAA records, this field
+ accepts a trailing period.
+ example: 192.0.2.0
+ maxLength: 65535
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ ttl_sec:
+ description: >-
+ "Time to Live" - the amount of time in seconds that this
+ Domain's records may be cached by resolvers or other
+ domain servers. Valid values are 300, 3600, 7200, 14400,
+ 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and
+ 2419200 - any other value will be rounded to the nearest
+ valid value.
+ example: 604800
+ type: integer
+ x-linode-cli-display: 5
+ type:
+ description: >-
+ __Filterable__ The type of Record this is in the DNS
+ system. For example, A records associate a domain name
+ with an IPv4 address, and AAAA records associate a domain
+ name with an IPv6 address. For more information, see the
+ guides on [DNS Record
+ Types](https://www.linode.com/docs/products/networking/dns-manager/guides/#dns-record-types).
+ enum:
+ - A
+ - AAAA
+ - NS
+ - MX
+ - CNAME
+ - TXT
+ - SRV
+ - PTR
+ - CAA
+ example: A
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Domain Record was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ weight:
+ description: >-
+ The relative weight of this Record used in the case of
+ identical priority. Higher values are preferred. Only
+ valid and required for SRV record requests.
+ example: 50
+ maximum: 65535
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 7
+ type: object
+ x-akamai:
+ file-path: schemas/domain-record.yaml
+ x-example:
+ x-ref: ../examples/get-domain-record-200.json
+ description: Domain Record updated.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - domains:read_write
+ summary: Update a domain record
+ tags:
+ - Records
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli domains records-update 123 234 \
+ --name test \
+ --target 203.0.113.1 \
+ --priority 50 \
+ --weight 50 \
+ --port 80 \
+ --ttl_sec 604800
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: domains:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: records-update
+ x-linode-grant: read_write
+ delete:
+ description: >-
+ Deletes a Record on this Domain.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-domain-record
+ operationId: delete-domain-record
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-domain-record-200.json
+ description: Record deleted successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - domains:read_write
+ summary: Delete a domain record
+ tags:
+ - Records
+ x-akamai:
+ tabs:
+ - syntax: linode-cli domains records-delete 123 234
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: domains:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: records-delete
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Domain whose Record you are accessing.
+ example: '{{domainId}}'
+ in: path
+ name: domainId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/domain-id-path-8876155d.yaml
+ - description: The ID of the Record you are accessing.
+ example: '{{recordId}}'
+ in: path
+ name: recordId
+ required: true
+ schema:
+ example: 815
+ type: integer
+ x-akamai:
+ file-path: parameters/record-id-path.yaml
+ x-akamai:
+ file-path: paths/record.yaml
+ path-info: /{apiVersion}/domains/{domainId}/records/{recordId}
+ x-linode-cli-command: domains
+ /domains/{domainId}/zone-file:
+ get:
+ description: >-
+ Returns the zone file for the last rendered zone for the specified
+ domain.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-domain-zone
+ operationId: get-domain-zone
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ zone_file:
+ description: >-
+ The lines of the zone file for the last rendered zone for
+ this domain.
+ 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.'
+ items:
+ type: string
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-domain-zone-200.yaml
+ x-example:
+ x-ref: ../examples/get-domain-zone-200.json
+ description: An array containing the lines of the domain zone file.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - domains:read_only
+ summary: Get a domain zone file
+ tags:
+ - Domain zone file
+ x-akamai:
+ tabs:
+ - syntax: linode-cli domains zone-file 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: domains:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: zone-file
+ x-linode-grant: read_only
+ parameters:
+ - description: ID of the Domain.
+ example: '{{domainId}}'
+ in: path
+ name: domainId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/domain-id-path-32edd7bc.yaml
+ x-akamai:
+ file-path: paths/zone-file.yaml
+ path-info: /{apiVersion}/domains/{domainId}/zone-file
+ x-linode-cli-command: domains
+components:
+ x-stackQL-resources:
+ domains:
+ id: linode.domains.domains
+ name: domains
+ title: Domains
+ methods:
+ post_domain:
+ operation:
+ $ref: '#/paths/~1domains/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_domains:
+ operation:
+ $ref: '#/paths/~1domains/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_import_domain:
+ operation:
+ $ref: '#/paths/~1domains~1import/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_domain:
+ operation:
+ $ref: '#/paths/~1domains~1{domainId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_domain:
+ operation:
+ $ref: '#/paths/~1domains~1{domainId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_domain:
+ operation:
+ $ref: '#/paths/~1domains~1{domainId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_clone_domain:
+ operation:
+ $ref: '#/paths/~1domains~1{domainId}~1clone/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/domains/methods/get_domain'
+ - $ref: '#/components/x-stackQL-resources/domains/methods/get_domains'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/domains/methods/post_domain'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/domains/methods/delete_domain'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/domains/methods/put_domain'
+ records:
+ id: linode.domains.records
+ name: records
+ title: Records
+ methods:
+ post_domain_record:
+ operation:
+ $ref: '#/paths/~1domains~1{domainId}~1records/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_domain_records:
+ operation:
+ $ref: '#/paths/~1domains~1{domainId}~1records/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_domain_record:
+ operation:
+ $ref: '#/paths/~1domains~1{domainId}~1records~1{recordId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_domain_record:
+ operation:
+ $ref: '#/paths/~1domains~1{domainId}~1records~1{recordId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_domain_record:
+ operation:
+ $ref: '#/paths/~1domains~1{domainId}~1records~1{recordId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/records/methods/get_domain_record'
+ - $ref: >-
+ #/components/x-stackQL-resources/records/methods/get_domain_records
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/records/methods/post_domain_record
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/records/methods/delete_domain_record
+ replace:
+ - $ref: '#/components/x-stackQL-resources/records/methods/put_domain_record'
+ zone_file:
+ id: linode.domains.zone_file
+ name: zone_file
+ title: Zone File
+ methods:
+ get_domain_zone:
+ operation:
+ $ref: '#/paths/~1domains~1{domainId}~1zone-file/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.zone_file
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/zone_file/methods/get_domain_zone'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/images.yaml b/providers/src/linode/v00.00.00000/services/images.yaml
index 44ec8409..5f6d2531 100644
--- a/providers/src/linode/v00.00.00000/services/images.yaml
+++ b/providers/src/linode/v00.00.00000/services/images.yaml
@@ -1,771 +1,2937 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
info:
- version: 4.147.0
- title: Linode API - images
- description: images
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- Image:
- type: object
- description: Image object
- properties:
- id:
- type: string
- description: The unique ID of this Image.
- example: linode/debian11
- readOnly: true
- x-linode-cli-display: 1
- label:
- x-linode-filterable: true
- type: string
- description: |
- A short description of the Image.
- example: Debian 11
- x-linode-cli-display: 2
- created:
- type: string
- format: date-time
- description: When this Image was created.
- example: '2021-08-14T22:44:02'
- readOnly: true
- updated:
- type: string
- format: date-time
- description: When this Image was last updated.
- example: '2021-08-14T22:44:02'
- readOnly: true
- created_by:
- type: string
- description: |
- The name of the User who created this Image, or "linode" for public Images.
- example: linode
- readOnly: true
- deprecated:
- x-linode-filterable: true
- type: boolean
- description: |
- Whether or not this Image is deprecated. Will only be true for deprecated public Images.
- example: false
- readOnly: true
- description:
- type: string
- description: A detailed description of this Image.
- example: Example Image description.
- nullable: true
- minLength: 1
- maxLength: 65000
- x-linode-cli-display: 4
- x-linode-cli-color:
- None: black
- default_: white
- is_public:
- x-linode-filterable: true
- description: True if the Image is a public distribution image. False if Image is private Account-specific Image.
- type: boolean
- example: true
- readOnly: true
- x-linode-cli-display: 5
- size:
- x-linode-filterable: true
- type: integer
- description: |
- The minimum size this Image needs to deploy. Size is in MB.
- example: 2500
- readOnly: true
- x-linode-cli-display: 6
- type:
- type: string
- x-linode-filterable: true
- description: |
- How the Image was created.
-
- "Manual" Images can be created at any time.
-
- "Automatic" Images are created automatically from a deleted Linode.
- enum:
- - manual
- - automatic
- example: manual
- readOnly: true
- expiry:
- type: string
- format: date-time
- nullable: true
- description: |
- Only Images created automatically from a deleted Linode (type=automatic) will expire.
- example: null
- readOnly: true
- eol:
- type: string
- format: date-time
- description: |
- The date of the public Image's planned end of life. `None` for private Images.
- example: '2026-07-01T04:00:00'
- readOnly: true
- vendor:
- x-linode-filterable: true
- type: string
- description: |
- The upstream distribution vendor. `None` for private Images.
- example: Debian
- readOnly: true
- x-linode-cli-display: 3
- x-linode-cli-color:
- None: black
- default_: white
- status:
- x-linode-cli-display: 7
- type: string
- readOnly: true
- x-linode-filterable: true
- enum:
- - creating
- - pending_upload
- - available
- description: |
- The current status of this Image.
-
- Only Images in an "available" status can be deployed. Images in a "creating" status are being created from a Linode Disk, and will become "available" shortly. Images in a "pending_upload" status are waiting for data to be [uploaded](/docs/api/images/#image-upload), and become "available" after the upload and processing are complete.
-
- The "+order_by" and "+order" operators are not available for [filtering](/docs/api/#filtering-and-sorting) on this key.
- example: available
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- images:
- id: linode.images.images
- name: images
- title: Images
- methods:
- getImages:
- operation:
- $ref: '#/paths/~1images/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getImages:
- operation:
- $ref: '#/paths/~1images/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createImage:
- operation:
- $ref: '#/paths/~1images/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- post_images_upload:
- operation:
- $ref: '#/paths/~1images~1upload/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getImage:
- operation:
- $ref: '#/paths/~1images~1{imageId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getImage:
- operation:
- $ref: '#/paths/~1images~1{imageId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateImage:
- operation:
- $ref: '#/paths/~1images~1{imageId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteImage:
- operation:
- $ref: '#/paths/~1images~1{imageId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/images/methods/getImages'
- - $ref: '#/components/x-stackQL-resources/images/methods/getImage'
- insert:
- - $ref: '#/components/x-stackQL-resources/images/methods/createImage'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/images/methods/deleteImage'
+ title: images API
+ description: linode images API
+ version: 4.208.1
paths:
/images:
- get:
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- tags:
- - Images
- summary: Images List
- description: |
- Returns a paginated list of Images.
+ post:
+ description: >-
+ Captures a private, gold-master image from a Linode disk.
- * **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
- - ls
+ >
+
+ > - When you capture an image, we store it using our Object Storage
+ service. The `region` where the target image exists determines where the
+ [resulting image is
+ stored](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-captured-custom-images).
+
+ >
+
+ > - When you create a new image, we automatically encrypt it for its
+ protection. Images remain encrypted at rest, in storage, in caching, and
+ in transit. When you deploy an image to a
+ [new](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-a-new-compute-instance)
+ or
+ [existing](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-an-existing-compute-instance)
+ Linode, we automatically decrypt it. If you've enabled encryption for a
+ Linode you want to create an image of, we also encrypt the image. When
+ you deploy that image, the image is decrypted and the resulting disk
+ will be automatically encrypted.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-image
+ operationId: post-image
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ cloud_init:
+ description: >-
+ Whether this image supports
+ [cloud-init](https://www.linode.com/docs/guides/write-files-with-cloud-init/).
+ example: '{{cloud_init}}'
+ type: boolean
+ description:
+ description: A detailed description of this image.
+ example: '{{description}}'
+ type: string
+ disk_id:
+ description: The ID of the target Linode disk for this image.
+ example: '{{disk_id}}'
+ type: integer
+ label:
+ description: >-
+ The short title for this image. If not provided, the disk's
+ current label is used.
+ example: '{{label}}'
+ type: string
+ tags:
+ description: >-
+ Tags used for organizational purposes. A tag can be from 3
+ to 100 characters long, and an image can have a maximum of
+ 500 total tags.
+ example:
+ - repair-image
+ - fix-1
+ items:
+ maxLength: 100
+ minLength: 3
+ type: string
+ maxItems: 500
+ minItems: 0
+ type: array
+ required:
+ - disk_id
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-image.yaml
+ x-example:
+ x-ref: ../examples/post-image.json
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Image object.
+ properties:
+ capabilities:
+ description: >-
+ __Read-only__ A list of the possible capabilities of this
+ image.
+
+
+ - `cloud-init`. The image supports the cloud-init
+ multi-distribution method with our [Metadata
+ service](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/#troubleshoot-metadata-and-cloud-init).
+ This only applies to public images.
+
+
+ - `distributed-sites`. Whether the image can be used in
+ distributed compute regions. Compared to a core compute
+ region, distributed compute regions offer limited
+ functionality, but they're globally distributed. Your
+ image can be geographically closer to you, potentially
+ letting you deploy it quicker. See [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for complete details.
+ example:
+ - cloud-init
+ - distributed-sites
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-linode-cli-display: 8
+ created:
+ description: __Read-only__ When this image was created.
+ example: '2021-08-14T22:44:02'
+ format: date-time
+ readOnly: true
+ type: string
+ created_by:
+ description: >-
+ __Read-only__ The name of the user who created this image,
+ or `linode` for public images.
+ example: linode
+ readOnly: true
+ type: string
+ deprecated:
+ description: >-
+ __Filterable__, __Read-only__ Whether this image is
+ deprecated. Only public images can be deprecated.
+ example: false
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: A detailed description of this image.
+ example: Example image description.
+ maxLength: 65000
+ minLength: 1
+ nullable: true
+ type: string
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 4
+ eol:
+ description: >-
+ __Read-only__ The date of the public image's planned
+ removal from service. This is `null` for private images.
+ example: '2026-07-01T04:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ expiry:
+ description: >-
+ __Read-only__ Only images created automatically from a
+ deleted compute instance (type=automatic) expire. This is
+ `null` for private images.
+ example: null
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for each image.
+ example: linode/debian11
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ is_public:
+ description: >-
+ __Filterable__, __Read-only__ Revealed as `true` if the
+ image is a public distribution image. Private,
+ account-specific images are listed as `false`.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ label:
+ description: __Filterable__ A short description of the image.
+ example: Debian 11
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ regions:
+ description: >-
+ __Read-only__ Details on the regions where this image is
+ stored. See [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for full details on support for `regions`.
+ items:
+ additionalProperties: false
+ properties:
+ region:
+ description: >-
+ The unique identifier for the core compute region
+ where this image is stored.
+ example: us-iad
+ type: string
+ status:
+ description: >-
+ The status of the image in this `region`. Possible
+ values are `available`, `creating`, `pending`,
+ `pending deletion`, `pending replication`, or
+ `replicating`.
+ enum:
+ - available
+ - creating
+ - pending
+ - pending deletion
+ - pending replication
+ - replicating
+ example: available
+ type: string
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-format: json
+ size:
+ description: >-
+ __Filterable__, __Read-only__ The minimum size in MB this
+ image needs to deploy.
+ example: 2500
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The current status of the
+ image. Possible values are `available`, `creating`, and
+ `pending_upload`.
+
+
+ > 📘
+
+ >
+
+ > The `+order_by` and `+order` operators are not available
+ when
+ [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting)
+ on this key.
+ enum:
+ - creating
+ - pending_upload
+ - available
+ example: available
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ Tags used for organizational purposes. A
+ tag can be from 3 to 100 characters long, and an image can
+ have a maximum of 500 total tags.
+ example:
+ - repair-image
+ - fix-1
+ items:
+ maxLength: 100
+ minLength: 3
+ type: string
+ maxItems: 500
+ minItems: 0
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ total_size:
+ description: >-
+ __Read-only__ The total size in bytes of all instances of
+ this image, in all `regions`.
+
+
+ > 📘
+
+ >
+
+ > This object is empty for existing images. It's intended
+ for use with future functionality.
+ example: 1234567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 9
+ type:
+ description: >-
+ __Filterable__, __Read-only__ How the image was created.
+ Create a `manual` image at any time. An `automatic` image
+ is created automatically from a deleted compute instance.
+ enum:
+ - manual
+ - automatic
+ example: manual
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this image was last updated.
+ example: '2021-08-14T22:44:02'
+ format: date-time
+ readOnly: true
+ type: string
+ vendor:
+ description: >-
+ __Filterable__, __Read-only__ The upstream distribution
+ vendor. This is `null` for private images.
+ example: Debian
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/image.yaml
+ x-example:
+ x-ref: ../examples/post-image-200.json
+ description: New private image created successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'images:read_only'
+ - images:read_write
+ - linodes:read_only
+ summary: Create an image
+ tags:
+ - Images
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli images create \
+ --label this_is_a_label \
+ --description "A longer description \
+ of the image" \
+ --disk_id 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ images:read_write
+ linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: create
+ x-linode-grant: add_images
+ get:
+ description: >-
+ Returns a paginated list of images. An image can be one of two types:
+
+
+ - **Public image**. The `id` for these images begins with `linode/`.
+ These images are generally available to all users. To limit the response
+ to public images, don't include
+ [authentication](https://techdocs.akamai.com/linode-api/reference/get-started#authentication)
+ when calling this operation.
+
+
+ - **Private image**. The `id` for these images begins with `private/`.
+ These images are account-specific and only accessible to users with
+ appropriate
+ [grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants).
+ To view private images, you need to include authentication when calling
+ this operation. The response includes both private and public images.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-images
+ operationId: get-images
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: A paginated list of Images.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
data:
- type: array
items:
- $ref: '#/components/schemas/Image'
+ additionalProperties: false
+ description: Image object.
+ properties:
+ capabilities:
+ description: >-
+ __Read-only__ A list of the possible capabilities of
+ this image.
+
+
+ - `cloud-init`. The image supports the cloud-init
+ multi-distribution method with our [Metadata
+ service](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/#troubleshoot-metadata-and-cloud-init).
+ This only applies to public images.
+
+
+ - `distributed-sites`. Whether the image can be used
+ in distributed compute regions. Compared to a core
+ compute region, distributed compute regions offer
+ limited functionality, but they're globally
+ distributed. Your image can be geographically closer
+ to you, potentially letting you deploy it quicker.
+ See [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for complete details.
+ example:
+ - cloud-init
+ - distributed-sites
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-linode-cli-display: 8
+ created:
+ description: __Read-only__ When this image was created.
+ example: '2021-08-14T22:44:02'
+ format: date-time
+ readOnly: true
+ type: string
+ created_by:
+ description: >-
+ __Read-only__ The name of the user who created this
+ image, or `linode` for public images.
+ example: linode
+ readOnly: true
+ type: string
+ deprecated:
+ description: >-
+ __Filterable__, __Read-only__ Whether this image is
+ deprecated. Only public images can be deprecated.
+ example: false
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: A detailed description of this image.
+ example: Example image description.
+ maxLength: 65000
+ minLength: 1
+ nullable: true
+ type: string
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 4
+ eol:
+ description: >-
+ __Read-only__ The date of the public image's planned
+ removal from service. This is `null` for private
+ images.
+ example: '2026-07-01T04:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ expiry:
+ description: >-
+ __Read-only__ Only images created automatically from
+ a deleted compute instance (type=automatic) expire.
+ This is `null` for private images.
+ example: null
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for each image.
+ example: linode/debian11
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ is_public:
+ description: >-
+ __Filterable__, __Read-only__ Revealed as `true` if
+ the image is a public distribution image. Private,
+ account-specific images are listed as `false`.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ label:
+ description: __Filterable__ A short description of the image.
+ example: Debian 11
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ regions:
+ description: >-
+ __Read-only__ Details on the regions where this
+ image is stored. See [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for full details on support for `regions`.
+ items:
+ additionalProperties: false
+ properties:
+ region:
+ description: >-
+ The unique identifier for the core compute
+ region where this image is stored.
+ example: us-iad
+ type: string
+ status:
+ description: >-
+ The status of the image in this `region`.
+ Possible values are `available`, `creating`,
+ `pending`, `pending deletion`, `pending
+ replication`, or `replicating`.
+ enum:
+ - available
+ - creating
+ - pending
+ - pending deletion
+ - pending replication
+ - replicating
+ example: available
+ type: string
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-format: json
+ size:
+ description: >-
+ __Filterable__, __Read-only__ The minimum size in MB
+ this image needs to deploy.
+ example: 2500
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The current status of
+ the image. Possible values are `available`,
+ `creating`, and `pending_upload`.
+
+
+ > 📘
+
+ >
+
+ > The `+order_by` and `+order` operators are not
+ available when
+ [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting)
+ on this key.
+ enum:
+ - creating
+ - pending_upload
+ - available
+ example: available
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ Tags used for organizational
+ purposes. A tag can be from 3 to 100 characters
+ long, and an image can have a maximum of 500 total
+ tags.
+ example:
+ - repair-image
+ - fix-1
+ items:
+ maxLength: 100
+ minLength: 3
+ type: string
+ maxItems: 500
+ minItems: 0
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ total_size:
+ description: >-
+ __Read-only__ The total size in bytes of all
+ instances of this image, in all `regions`.
+
+
+ > 📘
+
+ >
+
+ > This object is empty for existing images. It's
+ intended for use with future functionality.
+ example: 1234567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 9
+ type:
+ description: >-
+ __Filterable__, __Read-only__ How the image was
+ created. Create a `manual` image at any time. An
+ `automatic` image is created automatically from a
+ deleted compute instance.
+ enum:
+ - manual
+ - automatic
+ example: manual
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this image was last updated.
+ example: '2021-08-14T22:44:02'
+ format: date-time
+ readOnly: true
+ type: string
+ vendor:
+ description: >-
+ __Filterable__, __Read-only__ The upstream
+ distribution vendor. This is `null` for private
+ images.
+ example: Debian
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/image.yaml
+ type: array
page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-images-200.yaml
+ x-example:
+ x-ref: ../examples/get-images-200.json
+ description: A paginated list of images.
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
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/images
- - lang: CLI
- source: |
- linode-cli images list
- post:
- x-linode-grant: add_images
- tags:
- - Images
- summary: Image Create
- description: |
- Captures a private gold-master Image from a Linode Disk.
- operationId: createImage
- x-linode-cli-action: create
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'images:read_write'
- - 'linodes:read_only'
+ - images:read_only
+ summary: List images
+ tags:
+ - Images
+ x-akamai:
+ tabs:
+ - syntax: linode-cli images list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: images:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-redoc-load-ids: true
+ parameters: []
+ x-akamai:
+ file-path: paths/images.yaml
+ path-info: /{apiVersion}/images
+ x-linode-cli-command: images
+ /images/upload:
+ post:
+ description: >-
+ Creates a new private image container and returns a URL as the
+ `upload_to` object in the response. Use this URL to upload your own disk
+ image to the container.
+
+
+ 1. Ensure the disk image is raw disk image (`.img`) format.
+
+
+ 2. Compress the disk image using gzip (`.gz`) format. Compressed, the
+ file can be up to 5 GB and decompressed it can be up to 6 GB.
+
+
+ 3. Upload the file in a separate PUT request that includes the
+ `Content-type: application/octet-stream` header:
+
+ ```
+ curl -v \
+ -H "Content-Type: application/octet-stream" \
+ --upload-file example.img.gz \
+ $UPLOAD_URL \
+ --progress-bar \
+ --output /dev/null
+ ```
+
+ > 📘
+
+ >
+
+ > - You need to upload image data within 24 hours of creation or the API
+ cancels the upload and deletes the image container.
+
+ >
+
+ > - Only core regions that support our [Object
+ Storage](https://techdocs.akamai.com/cloud-computing/reference/how-to-choose-a-data-center#product-availability)
+ service can store an uploaded image.
+
+ >
+
+ > - When you create a new image, we automatically encrypt it for its
+ protection. Images remain encrypted at rest, in storage, in caching, and
+ in transit. When you deploy an image to a
+ [new](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-a-new-compute-instance)
+ or
+ [existing](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-an-existing-compute-instance)
+ Linode, we automatically decrypt it. If you've enabled encryption for a
+ Linode you want to create an image of, we also encrypt the image. When
+ you deploy that image, the image is decrypted and the resulting disk
+ will be automatically encrypted.
+
+ >
+
+ > - You can create a new image and upload image data using a single
+ process through [Cloud
+ Manager](https://www.linode.com/docs/products/tools/images/guides/upload-an-image/#uploading-an-image-file-through-the-cloud-manager)
+ or the [Linode
+ CLI](https://www.linode.com/docs/products/tools/images/guides/upload-an-image/#uploading-an-image-file-through-the-linode-cli).
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-upload-image
+ operationId: post-upload-image
requestBody:
- description: Information about the Image to create.
content:
application/json:
schema:
- required:
- - disk_id
+ additionalProperties: false
properties:
- disk_id:
- type: integer
- description: |
- The ID of the Linode Disk that this Image will be created from.
- example: 42
+ cloud_init:
+ description: Whether the uploaded Image supports cloud-init.
+ example: '{{cloud_init}}'
+ type: boolean
+ description:
+ description: Description for the uploaded image.
+ example: '{{description}}'
+ type: string
label:
+ description: Label for the uploaded image.
+ example: '{{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:
+ region:
+ description: >-
+ The region to upload to. Once uploaded, the image can be
+ used in any region.
+ example: '{{region}}'
type: string
- description: |
- A detailed description of this Image.
+ tags:
+ description: >-
+ Tags you can use to organize images. A tag can be from 3 to
+ 100 characters long, and an image can have a maximum of 500
+ total tags.
+ example:
+ - repair-image
+ - fix-1
+ items:
+ maxLength: 100
+ minLength: 3
+ type: string
+ maxItems: 500
+ minItems: 0
+ type: array
+ required:
+ - label
+ - region
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-upload-image.yaml
+ x-example:
+ x-ref: ../examples/post-upload-image.json
+ description: The uploaded image details.
+ x-linode-cli-allowed-defaults:
+ - region
responses:
'200':
- description: New private Image created successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/Image'
+ additionalProperties: false
+ properties:
+ image:
+ additionalProperties: false
+ description: Image object.
+ properties:
+ capabilities:
+ description: >-
+ __Read-only__ A list of the possible capabilities of
+ this image.
+
+
+ - `cloud-init`. The image supports the cloud-init
+ multi-distribution method with our [Metadata
+ service](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/#troubleshoot-metadata-and-cloud-init).
+ This only applies to public images.
+
+
+ - `distributed-sites`. Whether the image can be used
+ in distributed compute regions. Compared to a core
+ compute region, distributed compute regions offer
+ limited functionality, but they're globally
+ distributed. Your image can be geographically closer
+ to you, potentially letting you deploy it quicker. See
+ [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for complete details.
+ example:
+ - cloud-init
+ - distributed-sites
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-linode-cli-display: 8
+ created:
+ description: __Read-only__ When this image was created.
+ example: '2021-08-14T22:44:02'
+ format: date-time
+ readOnly: true
+ type: string
+ created_by:
+ description: >-
+ __Read-only__ The name of the user who created this
+ image, or `linode` for public images.
+ example: linode
+ readOnly: true
+ type: string
+ deprecated:
+ description: >-
+ __Filterable__, __Read-only__ Whether this image is
+ deprecated. Only public images can be deprecated.
+ example: false
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: A detailed description of this image.
+ example: Example image description.
+ maxLength: 65000
+ minLength: 1
+ nullable: true
+ type: string
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 4
+ eol:
+ description: >-
+ __Read-only__ The date of the public image's planned
+ removal from service. This is `null` for private
+ images.
+ example: '2026-07-01T04:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ expiry:
+ description: >-
+ __Read-only__ Only images created automatically from a
+ deleted compute instance (type=automatic) expire. This
+ is `null` for private images.
+ example: null
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for each image.
+ example: linode/debian11
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ is_public:
+ description: >-
+ __Filterable__, __Read-only__ Revealed as `true` if
+ the image is a public distribution image. Private,
+ account-specific images are listed as `false`.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ label:
+ description: __Filterable__ A short description of the image.
+ example: Debian 11
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ regions:
+ description: >-
+ __Read-only__ Details on the regions where this image
+ is stored. See [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for full details on support for `regions`.
+ items:
+ additionalProperties: false
+ properties:
+ region:
+ description: >-
+ The unique identifier for the core compute
+ region where this image is stored.
+ example: us-iad
+ type: string
+ status:
+ description: >-
+ The status of the image in this `region`.
+ Possible values are `available`, `creating`,
+ `pending`, `pending deletion`, `pending
+ replication`, or `replicating`.
+ enum:
+ - available
+ - creating
+ - pending
+ - pending deletion
+ - pending replication
+ - replicating
+ example: available
+ type: string
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-format: json
+ size:
+ description: >-
+ __Filterable__, __Read-only__ The minimum size in MB
+ this image needs to deploy.
+ example: 2500
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The current status of
+ the image. Possible values are `available`,
+ `creating`, and `pending_upload`.
+
+
+ > 📘
+
+ >
+
+ > The `+order_by` and `+order` operators are not
+ available when
+ [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting)
+ on this key.
+ enum:
+ - creating
+ - pending_upload
+ - available
+ example: available
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ Tags used for organizational purposes.
+ A tag can be from 3 to 100 characters long, and an
+ image can have a maximum of 500 total tags.
+ example:
+ - repair-image
+ - fix-1
+ items:
+ maxLength: 100
+ minLength: 3
+ type: string
+ maxItems: 500
+ minItems: 0
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ total_size:
+ description: >-
+ __Read-only__ The total size in bytes of all instances
+ of this image, in all `regions`.
+
+
+ > 📘
+
+ >
+
+ > This object is empty for existing images. It's
+ intended for use with future functionality.
+ example: 1234567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 9
+ type:
+ description: >-
+ __Filterable__, __Read-only__ How the image was
+ created. Create a `manual` image at any time. An
+ `automatic` image is created automatically from a
+ deleted compute instance.
+ enum:
+ - manual
+ - automatic
+ example: manual
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this image was last updated.
+ example: '2021-08-14T22:44:02'
+ format: date-time
+ readOnly: true
+ type: string
+ vendor:
+ description: >-
+ __Filterable__, __Read-only__ The upstream
+ distribution vendor. This is `null` for private
+ images.
+ example: Debian
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/image.yaml
+ upload_to:
+ description: The URL to upload the Image to.
+ type: string
+ x-linode-cli-display: 1
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-upload-image-200.yaml
+ x-example:
+ x-ref: ../examples/post-upload-image-200.json
+ description: Image Upload object including the upload URL and image 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 '{
- "disk_id": 123,
- "label": "this_is_a_label",
- "description": "A longer description of the image"
- }' \
- https://api.linode.com/v4/images
- - lang: CLI
- source: |
- linode-cli images create \
- --label this_is_a_label \
- --description "A longer description \
- of the image" \
- --disk_id 123
- /images/upload:
- post:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - images:read_write
+ summary: Upload an image
+ tags:
+ - Images
+ x-akamai:
+ tabs:
+ - syntax: |-
+ # Run the operation to just get the upload_to URL
+ linode-cli images upload \
+ --description "Optional details about the Image" \
+ --label "Example Image" \
+ --region us-east
+
+ # 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
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: images:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: upload
x-linode-grant: add_images
- servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
+ parameters: []
+ x-akamai:
+ file-path: paths/image-upload.yaml
+ path-info: /{apiVersion}/images/upload
+ x-linode-cli-command: images
+ /images/{imageId}:
+ get:
+ description: >-
+ Get information about a single image. An image can be one of two types:
+
+
+ - **Public image**. The `id` for these images begins with `linode/`.
+ These images are generally available to all users. To limit the response
+ to public images, don't include
+ [authentication](https://techdocs.akamai.com/linode-api/reference/get-started#authentication)
+ when calling this operation.
+
+
+ - **Private image**. The `id` for these images begins with `private/`.
+ These images are account-specific and only accessible to users with
+ appropriate
+ [grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants).
+ To view private images, you need to include authentication when calling
+ this operation. The response will also include public images.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-image
+ operationId: get-image
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Image object.
+ properties:
+ capabilities:
+ description: >-
+ __Read-only__ A list of the possible capabilities of this
+ image.
+
+
+ - `cloud-init`. The image supports the cloud-init
+ multi-distribution method with our [Metadata
+ service](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/#troubleshoot-metadata-and-cloud-init).
+ This only applies to public images.
+
+
+ - `distributed-sites`. Whether the image can be used in
+ distributed compute regions. Compared to a core compute
+ region, distributed compute regions offer limited
+ functionality, but they're globally distributed. Your
+ image can be geographically closer to you, potentially
+ letting you deploy it quicker. See [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for complete details.
+ example:
+ - cloud-init
+ - distributed-sites
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-linode-cli-display: 8
+ created:
+ description: __Read-only__ When this image was created.
+ example: '2021-08-14T22:44:02'
+ format: date-time
+ readOnly: true
+ type: string
+ created_by:
+ description: >-
+ __Read-only__ The name of the user who created this image,
+ or `linode` for public images.
+ example: linode
+ readOnly: true
+ type: string
+ deprecated:
+ description: >-
+ __Filterable__, __Read-only__ Whether this image is
+ deprecated. Only public images can be deprecated.
+ example: false
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: A detailed description of this image.
+ example: Example image description.
+ maxLength: 65000
+ minLength: 1
+ nullable: true
+ type: string
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 4
+ eol:
+ description: >-
+ __Read-only__ The date of the public image's planned
+ removal from service. This is `null` for private images.
+ example: '2026-07-01T04:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ expiry:
+ description: >-
+ __Read-only__ Only images created automatically from a
+ deleted compute instance (type=automatic) expire. This is
+ `null` for private images.
+ example: null
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for each image.
+ example: linode/debian11
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ is_public:
+ description: >-
+ __Filterable__, __Read-only__ Revealed as `true` if the
+ image is a public distribution image. Private,
+ account-specific images are listed as `false`.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ label:
+ description: __Filterable__ A short description of the image.
+ example: Debian 11
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ regions:
+ description: >-
+ __Read-only__ Details on the regions where this image is
+ stored. See [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for full details on support for `regions`.
+ items:
+ additionalProperties: false
+ properties:
+ region:
+ description: >-
+ The unique identifier for the core compute region
+ where this image is stored.
+ example: us-iad
+ type: string
+ status:
+ description: >-
+ The status of the image in this `region`. Possible
+ values are `available`, `creating`, `pending`,
+ `pending deletion`, `pending replication`, or
+ `replicating`.
+ enum:
+ - available
+ - creating
+ - pending
+ - pending deletion
+ - pending replication
+ - replicating
+ example: available
+ type: string
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-format: json
+ size:
+ description: >-
+ __Filterable__, __Read-only__ The minimum size in MB this
+ image needs to deploy.
+ example: 2500
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The current status of the
+ image. Possible values are `available`, `creating`, and
+ `pending_upload`.
+
+
+ > 📘
+
+ >
+
+ > The `+order_by` and `+order` operators are not available
+ when
+ [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting)
+ on this key.
+ enum:
+ - creating
+ - pending_upload
+ - available
+ example: available
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ Tags used for organizational purposes. A
+ tag can be from 3 to 100 characters long, and an image can
+ have a maximum of 500 total tags.
+ example:
+ - repair-image
+ - fix-1
+ items:
+ maxLength: 100
+ minLength: 3
+ type: string
+ maxItems: 500
+ minItems: 0
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ total_size:
+ description: >-
+ __Read-only__ The total size in bytes of all instances of
+ this image, in all `regions`.
+
+
+ > 📘
+
+ >
+
+ > This object is empty for existing images. It's intended
+ for use with future functionality.
+ example: 1234567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 9
+ type:
+ description: >-
+ __Filterable__, __Read-only__ How the image was created.
+ Create a `manual` image at any time. An `automatic` image
+ is created automatically from a deleted compute instance.
+ enum:
+ - manual
+ - automatic
+ example: manual
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this image was last updated.
+ example: '2021-08-14T22:44:02'
+ format: date-time
+ readOnly: true
+ type: string
+ vendor:
+ description: >-
+ __Filterable__, __Read-only__ The upstream distribution
+ vendor. This is `null` for private images.
+ example: Debian
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/image.yaml
+ x-example:
+ x-ref: ../examples/get-image-200.json
+ x-linode-cli-subtables:
+ - regions
+ description: A single image object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - images:read_only
+ summary: Get an image
tags:
- Images
- summary: Image Upload
- description: |
- Initiates an Image upload.
+ x-akamai:
+ tabs:
+ - syntax: linode-cli images view linode/debian9
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: images:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ put:
+ description: >-
+ Updates a private image that you have permission to `read_write`.
- 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
+ > You can't update the `regions` with this operation. Use the [Replicate
+ an
+ image](https://techdocs.akamai.com/linode-api/reference/post-replicate-image)
+ operation to modify the existing regions for your image.
- - 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:
- - 'images:read_write'
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-image
+ operationId: put-image
requestBody:
- description: The uploaded Image details.
- x-linode-cli-allowed-defaults:
- - region
content:
application/json:
schema:
- type: object
- required:
- - label
- - region
+ additionalProperties: false
+ description: Image object.
properties:
- region:
+ capabilities:
+ description: >-
+ __Read-only__ A list of the possible capabilities of this
+ image.
+
+
+ - `cloud-init`. The image supports the cloud-init
+ multi-distribution method with our [Metadata
+ service](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/#troubleshoot-metadata-and-cloud-init).
+ This only applies to public images.
+
+
+ - `distributed-sites`. Whether the image can be used in
+ distributed compute regions. Compared to a core compute
+ region, distributed compute regions offer limited
+ functionality, but they're globally distributed. Your image
+ can be geographically closer to you, potentially letting you
+ deploy it quicker. See [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for complete details.
+ example:
+ - cloud-init
+ - distributed-sites
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-linode-cli-display: 8
+ created:
+ description: __Read-only__ When this image was created.
+ example: '{{created}}'
+ format: date-time
+ readOnly: true
type: string
- description: |
- The region to upload to. Once uploaded, the Image can be used in any region.
- example: eu-central
- label:
+ created_by:
+ description: >-
+ __Read-only__ The name of the user who created this image,
+ or `linode` for public images.
+ example: '{{created_by}}'
+ readOnly: true
type: string
- description: Label for the uploaded Image.
- example: my-image-label
+ deprecated:
+ description: >-
+ __Filterable__, __Read-only__ Whether this image is
+ deprecated. Only public images can be deprecated.
+ example: '{{deprecated}}'
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
description:
+ description: A detailed description of this image.
+ example: '{{description}}'
+ maxLength: 65000
+ minLength: 1
+ nullable: true
+ type: string
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 4
+ eol:
+ description: >-
+ __Read-only__ The date of the public image's planned removal
+ from service. This is `null` for private images.
+ example: '{{eol}}'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ expiry:
+ description: >-
+ __Read-only__ Only images created automatically from a
+ deleted compute instance (type=automatic) expire. This is
+ `null` for private images.
+ example: '{{expiry}}'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for each image.
+ example: '{{id}}'
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ is_public:
+ description: >-
+ __Filterable__, __Read-only__ Revealed as `true` if the
+ image is a public distribution image. Private,
+ account-specific images are listed as `false`.
+ example: '{{is_public}}'
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ label:
+ description: __Filterable__ A short description of the image.
+ example: '{{label}}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ regions:
+ description: >-
+ __Read-only__ Details on the regions where this image is
+ stored. See [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for full details on support for `regions`.
+ items:
+ additionalProperties: false
+ properties:
+ region:
+ description: >-
+ The unique identifier for the core compute region
+ where this image is stored.
+ example: us-iad
+ type: string
+ status:
+ description: >-
+ The status of the image in this `region`. Possible
+ values are `available`, `creating`, `pending`,
+ `pending deletion`, `pending replication`, or
+ `replicating`.
+ enum:
+ - available
+ - creating
+ - pending
+ - pending deletion
+ - pending replication
+ - replicating
+ example: available
+ type: string
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-format: json
+ size:
+ description: >-
+ __Filterable__, __Read-only__ The minimum size in MB this
+ image needs to deploy.
+ example: '{{size}}'
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The current status of the
+ image. Possible values are `available`, `creating`, and
+ `pending_upload`.
+
+
+ > 📘
+
+ >
+
+ > The `+order_by` and `+order` operators are not available
+ when
+ [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting)
+ on this key.
+ enum:
+ - creating
+ - pending_upload
+ - available
+ example: '{{status}}'
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ Tags used for organizational purposes. A tag
+ can be from 3 to 100 characters long, and an image can have
+ a maximum of 500 total tags.
+ example:
+ - repair-image
+ - fix-1
+ items:
+ maxLength: 100
+ minLength: 3
+ type: string
+ maxItems: 500
+ minItems: 0
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ total_size:
+ description: >-
+ __Read-only__ The total size in bytes of all instances of
+ this image, in all `regions`.
+
+
+ > 📘
+
+ >
+
+ > This object is empty for existing images. It's intended
+ for use with future functionality.
+ example: '{{total_size}}'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 9
+ type:
+ description: >-
+ __Filterable__, __Read-only__ How the image was created.
+ Create a `manual` image at any time. An `automatic` image is
+ created automatically from a deleted compute instance.
+ enum:
+ - manual
+ - automatic
+ example: '{{type}}'
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this image was last updated.
+ example: '{{updated}}'
+ format: date-time
+ readOnly: true
+ type: string
+ vendor:
+ description: >-
+ __Filterable__, __Read-only__ The upstream distribution
+ vendor. This is `null` for private images.
+ example: '{{vendor}}'
+ nullable: true
+ readOnly: true
type: string
- description: Description for the uploaded Image.
- example: This is an example image in the docs.
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/image.yaml
+ x-example:
+ x-ref: ../examples/put-image.json
+ required: true
responses:
'200':
- description: Image Upload object including the upload URL and Image object.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
+ description: Image object.
properties:
- upload_to:
+ capabilities:
+ description: >-
+ __Read-only__ A list of the possible capabilities of this
+ image.
+
+
+ - `cloud-init`. The image supports the cloud-init
+ multi-distribution method with our [Metadata
+ service](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/#troubleshoot-metadata-and-cloud-init).
+ This only applies to public images.
+
+
+ - `distributed-sites`. Whether the image can be used in
+ distributed compute regions. Compared to a core compute
+ region, distributed compute regions offer limited
+ functionality, but they're globally distributed. Your
+ image can be geographically closer to you, potentially
+ letting you deploy it quicker. See [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for complete details.
+ example:
+ - cloud-init
+ - distributed-sites
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-linode-cli-display: 8
+ created:
+ description: __Read-only__ When this image was created.
+ example: '2021-08-14T22:44:02'
+ format: date-time
+ readOnly: true
+ type: string
+ created_by:
+ description: >-
+ __Read-only__ The name of the user who created this image,
+ or `linode` for public images.
+ example: linode
+ readOnly: true
+ type: string
+ deprecated:
+ description: >-
+ __Filterable__, __Read-only__ Whether this image is
+ deprecated. Only public images can be deprecated.
+ example: false
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: A detailed description of this image.
+ example: Example image description.
+ maxLength: 65000
+ minLength: 1
+ nullable: true
+ type: string
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 4
+ eol:
+ description: >-
+ __Read-only__ The date of the public image's planned
+ removal from service. This is `null` for private images.
+ example: '2026-07-01T04:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ expiry:
+ description: >-
+ __Read-only__ Only images created automatically from a
+ deleted compute instance (type=automatic) expire. This is
+ `null` for private images.
+ example: null
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for each image.
+ example: linode/debian11
+ readOnly: true
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:
- - lang: Shell
- source: |
- 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"
- }' \
- https://api.linode.com/v4/images/upload
- - lang: CLI
- 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}':
- get:
- tags:
- - Images
- summary: Image View
- description: |
- Get information about a single Image.
+ is_public:
+ description: >-
+ __Filterable__, __Read-only__ Revealed as `true` if the
+ image is a public distribution image. Private,
+ account-specific images are listed as `false`.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ label:
+ description: __Filterable__ A short description of the image.
+ example: Debian 11
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ regions:
+ description: >-
+ __Read-only__ Details on the regions where this image is
+ stored. See [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for full details on support for `regions`.
+ items:
+ additionalProperties: false
+ properties:
+ region:
+ description: >-
+ The unique identifier for the core compute region
+ where this image is stored.
+ example: us-iad
+ type: string
+ status:
+ description: >-
+ The status of the image in this `region`. Possible
+ values are `available`, `creating`, `pending`,
+ `pending deletion`, `pending replication`, or
+ `replicating`.
+ enum:
+ - available
+ - creating
+ - pending
+ - pending deletion
+ - pending replication
+ - replicating
+ example: available
+ type: string
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-format: json
+ size:
+ description: >-
+ __Filterable__, __Read-only__ The minimum size in MB this
+ image needs to deploy.
+ example: 2500
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The current status of the
+ image. Possible values are `available`, `creating`, and
+ `pending_upload`.
- * **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 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
+ >
+
+ > The `+order_by` and `+order` operators are not available
+ when
+ [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting)
+ on this key.
+ enum:
+ - creating
+ - pending_upload
+ - available
+ example: available
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ Tags used for organizational purposes. A
+ tag can be from 3 to 100 characters long, and an image can
+ have a maximum of 500 total tags.
+ example:
+ - repair-image
+ - fix-1
+ items:
+ maxLength: 100
+ minLength: 3
+ type: string
+ maxItems: 500
+ minItems: 0
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ total_size:
+ description: >-
+ __Read-only__ The total size in bytes of all instances of
+ this image, in all `regions`.
+
+
+ > 📘
+
+ >
+
+ > This object is empty for existing images. It's intended
+ for use with future functionality.
+ example: 1234567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 9
+ type:
+ description: >-
+ __Filterable__, __Read-only__ How the image was created.
+ Create a `manual` image at any time. An `automatic` image
+ is created automatically from a deleted compute instance.
+ enum:
+ - manual
+ - automatic
+ example: manual
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this image was last updated.
+ example: '2021-08-14T22:44:02'
+ format: date-time
+ readOnly: true
+ type: string
+ vendor:
+ description: >-
+ __Filterable__, __Read-only__ The upstream distribution
+ vendor. This is `null` for private images.
+ example: Debian
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/image.yaml
+ x-example:
+ x-ref: ../examples/get-image-200.json
+ x-linode-cli-subtables:
+ - regions
+ description: The updated image.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'images:read_only'
+ - images:read_write
+ summary: Update an image
+ tags:
+ - Images
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli images update private/12345 \
+ --label "My gold-master image" \
+ --description "The detailed description \
+ of my image."
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: images:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update
+ x-linode-grant: read_write
+ delete:
+ description: >-
+ Deletes a private image you have permission to `read_write`.
+
+
+ > 🚧
+
+ >
+
+ > - You can't undo this delete action.
+
+ >
+
+ > - When you delete an image, all [replicated
+ instances](https://techdocs.akamai.com/linode-api/reference/post-replicate-image)
+ of that image are also deleted.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-image
+ operationId: delete-image
responses:
'200':
- description: A single Image object.
content:
application/json:
schema:
- $ref: '#/components/schemas/Image'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-image-200.json
+ description: Delete successful.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- 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 images view linode/debian9
- parameters:
- - name: imageId
- in: path
- description: ID of the Image to look up.
- required: true
- schema:
- type: string
- 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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'images:read_write'
- requestBody:
- description: |
- The fields to update.
+ - images:read_write
+ summary: Delete an image
+ tags:
+ - Images
+ x-akamai:
+ tabs:
+ - syntax: linode-cli images delete 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: images:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - delete
+ - rm
+ x-linode-grant: read_write
+ parameters:
+ - description: The unique identifier assigned to the image after creation.
+ example: '{{imageId}}'
+ in: path
+ name: imageId
required: true
+ schema:
+ example: linode/debian11
+ type: string
+ x-akamai:
+ file-path: parameters/image-id-path.yaml
+ x-akamai:
+ file-path: paths/image.yaml
+ path-info: /{apiVersion}/images/{imageId}
+ x-linode-cli-command: images
+ /images/{imageId}/regions:
+ post:
+ description: >-
+ Target an existing image and replicate it to another compute region.
+
+
+ > 📘
+
+ >
+
+ > As part of our limited promotional period, image replicas are free of
+ charge until November 1, 2025. After this date, replicas will be subject
+ to our standard monthly rate of $0.10/GB. When replicas become billable,
+ your monthly charge will be calculated using the value returned in
+ `total_size`, divided by 100. [Learn
+ more](https://www.linode.com/blog/compute/image-service-improvements-akamai-cdn/).
+
+
+ - This is only available in a `region` that supports Object Storage,
+ which stores the replicated image. Run the [List
+ regions](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ operation to review a region's `capabilities`.
+
+
+ - To replicate an image, it needs to have a `status` of `available`. Run
+ the [List
+ images](https://techdocs.akamai.com/linode-api/reference/get-images)
+ operation to view an image's `status`.
+
+
+ - To also keep the target image in its original compute region, you need
+ to include that `region` in the request's data. If you leave it out, the
+ API removes the image from that region. Run the [Get an
+ image](https://techdocs.akamai.com/linode-api/reference/get-image)
+ operation to see the `regions` where an image currently exists.
+
+
+ - You can't include an empty array to delete all images. You need to
+ provide at least one compute `region` where the image is `available`.
+ Use the [Delete an
+ image](https://techdocs.akamai.com/linode-api/reference/delete-image)
+ operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-replicate-image
+ operationId: post-replicate-image
+ requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/Image'
+ additionalProperties: false
+ description: List of regions where the image should be replicated to.
+ properties:
+ regions:
+ description: >-
+ The unique identifier for each compute `region`. See
+ [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for full details on support for `regions`.
+ example:
+ - us-iad
+ - us-west
+ items:
+ type: string
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/image-replicate.yaml
+ x-example:
+ x-ref: ../examples/post-image-replicate.json
+ required: true
responses:
'200':
- description: The updated image.
content:
application/json:
schema:
- $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 PUT -d '{
- "label": "My gold-master image",
- "description": "The detailed description of my Image."
- }' \
- https://api.linode.com/v4/images/private/12345
- - lang: CLI
- source: |
- linode-cli images update private/12345 \
- --label "My gold-master image" \
- --description "The detailed description \
- of my Image."
- parameters:
- - name: imageId
- in: path
- description: ID of the Image to look up.
- required: true
- schema:
- type: string
- delete:
- x-linode-grant: read_write
- tags:
- - Images
- summary: Image Delete
- description: |
- Deletes a private Image you have permission to `read_write`.
+ additionalProperties: false
+ description: Image object.
+ properties:
+ capabilities:
+ description: >-
+ __Read-only__ A list of the possible capabilities of this
+ image.
- **Deleting an Image is a destructive action and cannot be undone.**
- operationId: deleteImage
- x-linode-cli-action:
- - delete
- - rm
- security:
- - personalAccessToken: []
- - oauth:
- - 'images:read_write'
- responses:
- '200':
- description: Delete successful
+ - `cloud-init`. The image supports the cloud-init
+ multi-distribution method with our [Metadata
+ service](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/#troubleshoot-metadata-and-cloud-init).
+ This only applies to public images.
+
+
+ - `distributed-sites`. Whether the image can be used in
+ distributed compute regions. Compared to a core compute
+ region, distributed compute regions offer limited
+ functionality, but they're globally distributed. Your
+ image can be geographically closer to you, potentially
+ letting you deploy it quicker. See [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for complete details.
+ example:
+ - cloud-init
+ - distributed-sites
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-linode-cli-display: 8
+ created:
+ description: __Read-only__ When this image was created.
+ example: '2021-08-14T22:44:02'
+ format: date-time
+ readOnly: true
+ type: string
+ created_by:
+ description: >-
+ __Read-only__ The name of the user who created this image,
+ or `linode` for public images.
+ example: linode
+ readOnly: true
+ type: string
+ deprecated:
+ description: >-
+ __Filterable__, __Read-only__ Whether this image is
+ deprecated. Only public images can be deprecated.
+ example: false
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: A detailed description of this image.
+ example: Example image description.
+ maxLength: 65000
+ minLength: 1
+ nullable: true
+ type: string
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 4
+ eol:
+ description: >-
+ __Read-only__ The date of the public image's planned
+ removal from service. This is `null` for private images.
+ example: '2026-07-01T04:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ expiry:
+ description: >-
+ __Read-only__ Only images created automatically from a
+ deleted compute instance (type=automatic) expire. This is
+ `null` for private images.
+ example: null
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for each image.
+ example: linode/debian11
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ is_public:
+ description: >-
+ __Filterable__, __Read-only__ Revealed as `true` if the
+ image is a public distribution image. Private,
+ account-specific images are listed as `false`.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ label:
+ description: __Filterable__ A short description of the image.
+ example: Debian 11
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ regions:
+ description: >-
+ __Read-only__ Details on the regions where this image is
+ stored. See [Regions and
+ images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images)
+ for full details on support for `regions`.
+ items:
+ additionalProperties: false
+ properties:
+ region:
+ description: >-
+ The unique identifier for the core compute region
+ where this image is stored.
+ example: us-iad
+ type: string
+ status:
+ description: >-
+ The status of the image in this `region`. Possible
+ values are `available`, `creating`, `pending`,
+ `pending deletion`, `pending replication`, or
+ `replicating`.
+ enum:
+ - available
+ - creating
+ - pending
+ - pending deletion
+ - pending replication
+ - replicating
+ example: available
+ type: string
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-format: json
+ size:
+ description: >-
+ __Filterable__, __Read-only__ The minimum size in MB this
+ image needs to deploy.
+ example: 2500
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ status:
+ description: >-
+ __Filterable__, __Read-only__ The current status of the
+ image. Possible values are `available`, `creating`, and
+ `pending_upload`.
+
+
+ > 📘
+
+ >
+
+ > The `+order_by` and `+order` operators are not available
+ when
+ [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting)
+ on this key.
+ enum:
+ - creating
+ - pending_upload
+ - available
+ example: available
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ Tags used for organizational purposes. A
+ tag can be from 3 to 100 characters long, and an image can
+ have a maximum of 500 total tags.
+ example:
+ - repair-image
+ - fix-1
+ items:
+ maxLength: 100
+ minLength: 3
+ type: string
+ maxItems: 500
+ minItems: 0
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ total_size:
+ description: >-
+ __Read-only__ The total size in bytes of all instances of
+ this image, in all `regions`.
+
+
+ > 📘
+
+ >
+
+ > This object is empty for existing images. It's intended
+ for use with future functionality.
+ example: 1234567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 9
+ type:
+ description: >-
+ __Filterable__, __Read-only__ How the image was created.
+ Create a `manual` image at any time. An `automatic` image
+ is created automatically from a deleted compute instance.
+ enum:
+ - manual
+ - automatic
+ example: manual
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this image was last updated.
+ example: '2021-08-14T22:44:02'
+ format: date-time
+ readOnly: true
+ type: string
+ vendor:
+ description: >-
+ __Filterable__, __Read-only__ The upstream distribution
+ vendor. This is `null` for private images.
+ example: Debian
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-color:
+ None: black
+ default_: white
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/image.yaml
+ x-example:
+ x-ref: ../examples/get-image-200.json
+ description: Replication details for the image.
+ default:
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/images/private/12345
- - lang: CLI
- source: |
- linode-cli images delete 12345
- parameters:
- - name: imageId
- in: path
- description: ID of the Image to look up.
- required: true
- schema:
- type: string
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - images:read_write
+ summary: Replicate an image
+ tags:
+ - Images
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli images replicate private/12345 \
+ --regions "us-mia" \
+ --regions "us-east"
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: images:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: replicate
+ x-linode-grant: read_write
+ parameters:
+ - description: The unique identifier assigned to the image after creation.
+ example: '{{imageId}}'
+ in: path
+ name: imageId
+ required: true
+ schema:
+ example: linode/debian11
+ type: string
+ x-akamai:
+ file-path: parameters/image-id-path.yaml
+ x-akamai:
+ file-path: paths/image-replicate.yaml
+ path-info: /{apiVersion}/images/{imageId}/regions
+ x-linode-cli-command: images
+components:
+ x-stackQL-resources:
+ images:
+ id: linode.images.images
+ name: images
+ title: Images
+ methods:
+ post_image:
+ operation:
+ $ref: '#/paths/~1images/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_images:
+ operation:
+ $ref: '#/paths/~1images/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_upload_image:
+ operation:
+ $ref: '#/paths/~1images~1upload/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_image:
+ operation:
+ $ref: '#/paths/~1images~1{imageId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_image:
+ operation:
+ $ref: '#/paths/~1images~1{imageId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_image:
+ operation:
+ $ref: '#/paths/~1images~1{imageId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_replicate_image:
+ operation:
+ $ref: '#/paths/~1images~1{imageId}~1regions/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/images/methods/get_image'
+ - $ref: '#/components/x-stackQL-resources/images/methods/get_images'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/images/methods/post_image'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/images/methods/delete_image'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/images/methods/put_image'
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/instances.yaml b/providers/src/linode/v00.00.00000/services/instances.yaml
deleted file mode 100644
index 39b77f2d..00000000
--- a/providers/src/linode/v00.00.00000/services/instances.yaml
+++ /dev/null
@@ -1,6252 +0,0 @@
-openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
-info:
- version: 4.147.0
- title: Linode API - instances
- description: linode
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- Linode:
- type: object
- properties:
- label:
- x-linode-filterable: true
- x-linode-cli-display: 2
- type: string
- description: |
- The Linode's label is for display purposes only. If no label is provided for a Linode,
- a default will be assigned.
-
- Linode labels have the following constraints:
-
- * Must begin and end with an alphanumeric character.
- * May only consist of alphanumeric characters, dashes (`-`), underscores (`_`) or periods (`.`).
- * Cannot have two dashes (`--`), underscores (`__`) or periods (`..`) in a row.
- example: linode123
- minLength: 3
- maxLength: 64
- pattern: '^[a-zA-Z]((?!--|__|..)[a-zA-Z0-9-_.])+$'
- region:
- type: string
- x-linode-filterable: true
- readOnly: true
- description: |
- This is the [Region](/docs/api/regions/#regions-list) where the Linode was deployed. A Linode's region can only be changed by initiating a [cross data center migration](/docs/api/linode-instances/#dc-migrationpending-host-migration-initiate).
- x-linode-cli-display: 3
- example: us-east
- image:
- x-linode-filterable: true
- readOnly: true
- nullable: true
- allOf:
- - $ref: '#/components/schemas/DiskRequest/properties/image'
- x-linode-cli-display: 5
- example: linode/debian10
- type:
- type: string
- readOnly: true
- description: |
- This is the [Linode Type](/docs/api/linode-types/#types-list) that this Linode was deployed with.
- To change a Linode's Type, use [POST /linode/instances/{linodeId}/resize](/docs/api/linode-instances/#linode-resize).
- x-linode-cli-display: 4
- example: g6-standard-1
- group:
- deprecated: true
- type: string
- x-linode-filterable: true
- description: |
- A deprecated property denoting a group label for this Linode.
- example: Linode-Group
- 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
- id:
- x-linode-filterable: true
- type: integer
- description: |
- This Linode's ID which must be provided for all operations impacting this Linode.
- example: 123
- readOnly: true
- x-linode-cli-display: 1
- status:
- type: string
- description: |
- A brief description of this Linode's current state. This field may change without direct action from you. For example, when a Linode goes into maintenance mode its status will display "stopped".
- example: running
- readOnly: true
- enum:
- - running
- - offline
- - booting
- - rebooting
- - shutting_down
- - provisioning
- - deleting
- - migrating
- - rebuilding
- - cloning
- - restoring
- - stopped
- x-linode-cli-display: 6
- x-linode-cli-color:
- running: green
- offline: red
- default_: yellow
- hypervisor:
- type: string
- description: |
- The virtualization software powering this Linode.
- example: kvm
- readOnly: true
- enum:
- - kvm
- created:
- type: string
- format: date-time
- description: When this Linode was created.
- example: '2018-01-01T00:01:01'
- readOnly: true
- updated:
- type: string
- format: date-time
- description: When this Linode was last updated.
- example: '2018-01-01T00:01:01'
- readOnly: true
- ipv4:
- x-linode-filterable: true
- type: array
- format: ipv4
- items:
- type: string
- example:
- - 203.0.113.1
- - 192.0.2.1
- readOnly: true
- description: |
- This Linode's IPv4 Addresses. Each Linode is assigned a single public IPv4 address
- upon creation, and may get a single private IPv4 address if needed. You may need to
- [open a support ticket](/docs/api/support/#support-ticket-open)
- to get additional IPv4 addresses.
-
- IPv4 addresses may be reassigned between your Linodes, or shared with other Linodes.
- See the [/networking](/docs/api/networking/) endpoints for details.
- x-linode-cli-display: 7
- ipv6:
- type: string
- format: ipv6/128
- nullable: true
- description: |
- This Linode's IPv6 SLAAC address. This address is specific to a Linode, and may not be shared. If the Linode has not been assigned an IPv6 address, the return value will be `null`.
- example: 'c001:d00d::1337/128'
- readOnly: true
- specs:
- type: object
- description: Information about the resources available to this Linode.
- readOnly: true
- properties:
- disk:
- type: integer
- description: |
- The amount of storage space, in MB, this Linode has access to. A typical Linode will divide this space between a primary disk with an `image` deployed to it, and a swap disk, usually 512 MB. This is the default configuration created when deploying a Linode with an `image` through [POST /linode/instances](/docs/api/linode-instances/#linode-create). While this configuration is suitable for 99% of use cases, if you need finer control over your Linode's disks, see the [/linode/instances/{linodeId}/disks](/docs/api/linode-instances/#disks-list) endpoints.
- example: 81920
- readOnly: true
- memory:
- type: integer
- description: |
- The amount of RAM, in MB, this Linode has access to.
-
- Typically, a Linode boots with all of its available RAM, but this can be configured in a Config profile. See the [/linode/instances/{linodeId}/configs](/docs/api/linode-instances/#configuration-profiles-list) endpoints and the LinodeConfig object for more information.
- example: 4096
- readOnly: true
- vcpus:
- type: integer
- description: |
- The number of vcpus this Linode has access to.
- example: 2
- readOnly: true
- gpus:
- type: integer
- description: |
- The number of gpus this Linode has access to.
- example: 0
- readOnly: true
- transfer:
- type: integer
- description: The amount of network transfer this Linode is allotted each month.
- example: 4000
- readOnly: true
- alerts:
- type: object
- properties:
- cpu:
- type: integer
- description: |
- The percentage of CPU usage required to trigger an alert.
- If the average CPU usage over two hours exceeds this value, we'll send you an alert.
- Your Linode's total CPU capacity is represented as 100%, multiplied by its number of
- cores.
-
- For example, a two core Linode's CPU capacity is represented as 200%. If you want
- to be alerted at 90% of a two core Linode's CPU capacity, set the alert value to `180`.
-
- The default value is 90% multiplied by the number of cores.
-
- If the value is set to `0` (zero), the alert is disabled.
- example: 180
- network_in:
- type: integer
- description: |
- The amount of incoming traffic, in Mbit/s, required to trigger an alert. If the average incoming traffic over two hours exceeds this value, we'll send you an alert. If this is set to `0` (zero), the alert is disabled.
- example: 10
- network_out:
- type: integer
- description: |
- The amount of outbound traffic, in Mbit/s, required to trigger an alert. If the average outbound traffic over two hours exceeds this value, we'll send you an alert. If this is set to `0` (zero), the alert is disabled.
- example: 10
- transfer_quota:
- type: integer
- description: |
- The percentage of network transfer that may be used before an alert is triggered. When this value is exceeded, we'll alert you. If this is set to `0` (zero), the alert is disabled.
- example: 80
- io:
- type: integer
- description: |
- The amount of disk IO operation per second required to trigger an alert. If the average disk IO over two hours exceeds this value, we'll send you an alert. If set to `0` (zero), this alert is disabled.
- example: 10000
- backups:
- type: object
- description: |
- Information about this Linode's backups status. For information about available backups, see [/linode/instances/{linodeId}/backups](/docs/api/linode-instances/#backups-list).
- properties:
- enabled:
- type: boolean
- description: |
- If this Linode has the Backup service enabled. To enable backups, see [POST /linode/instances/{linodeId}/backups/enable](/docs/api/linode-instances/#backups-enable).
- example: true
- readOnly: true
- available:
- type: boolean
- description: |
- Whether Backups for this Linode are available for restoration.
-
- Backups undergoing maintenance are not available for restoration.
- example: true
- readOnly: true
- schedule:
- type: object
- properties:
- day:
- type: string
- nullable: true
- description: |
- The day of the week that your Linode's weekly Backup is taken.
- If not set manually, a day will be chosen for you. Backups
- are taken every day, but backups taken on this day are
- preferred when selecting backups to retain for a longer period.
-
-
- If not set manually, then when backups are initially enabled, this
- may come back as `Scheduling` until the `day` is automatically selected.
- example: Saturday
- enum:
- - Scheduling
- - Sunday
- - Monday
- - Tuesday
- - Wednesday
- - Thursday
- - Friday
- - Saturday
- window:
- type: string
- nullable: true
- description: |
- The window in which your backups will be taken, in UTC. A
- backups window is a two-hour span of time in which the backup
- may occur.
-
-
- For example, `W10` indicates that your backups should be
- taken between 10:00 and 12:00. If you do not choose a backup
- window, one will be selected for you automatically.
-
-
- If not set manually, when backups are initially enabled this
- may come back as `Scheduling` until the `window` is automatically selected.
- example: W22
- enum:
- - Scheduling
- - W0
- - W2
- - W4
- - W6
- - W8
- - W10
- - W12
- - W14
- - W16
- - W18
- - W20
- - W22
- last_successful:
- type: string
- format: date-time
- description: The last successful backup date. 'null' if there was no previous backup.
- readOnly: true
- example: '2018-01-01T00:01:01'
- watchdog_enabled:
- type: boolean
- description: |
- The watchdog, named Lassie, is a Shutdown Watchdog that monitors your Linode and will reboot it if it powers off unexpectedly. It works by issuing a boot job when your Linode powers off without a shutdown job being responsible.
- To prevent a loop, Lassie will give up if there have been more than 5 boot jobs issued within 15 minutes.
- example: true
- host_uuid:
- type: string
- format: uuid
- description: 'The Linode''s host machine, as a UUID.'
- readOnly: true
- example: 3a3ddd59d9a78bb8de041391075df44de62bfec8
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- DiskRequest:
- type: object
- description: Disk object request.
- properties:
- size:
- x-linode-filterable: true
- type: integer
- description: |
- The size of the Disk in MB.
-
- Images require a minimum size. Access the Image View ([GET /images/{imageID}](/docs/api/images/#image-view)) endpoint to view its size.
- example: 48640
- label:
- $ref: '#/components/schemas/Disk/properties/label'
- filesystem:
- $ref: '#/components/schemas/Disk/properties/filesystem'
- image:
- type: string
- description: |
- An Image ID to deploy the Linode Disk from.
-
- Access the Images List ([GET /images](/docs/api/images/#images-list)) endpoint with authentication to view
- all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating
- a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Access the User's
- Grant Update ([PUT /account/users/{username}/grants](/docs/api/account/#users-grants-update)) endpoint to
- adjust permissions for an Account Image.
- example: linode/debian9
- authorized_keys:
- type: array
- items:
- type: string
- writeOnly: true
- example:
- - ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer
- description: |
- A list of public SSH keys that will be automatically appended
- to the root user's `~/.ssh/authorized_keys` file when deploying from an Image.
- authorized_users:
- type: array
- items:
- type: string
- writeOnly: true
- example:
- - myUser
- - secondaryUser
- description: |
- A list of usernames. If the usernames have associated SSH keys, the keys will be appended to the root users `~/.ssh/authorized_keys` file automatically when deploying from an Image.
- root_pass:
- type: string
- format: password
- writeOnly: true
- example: aComplexP@ssword
- minLength: 7
- maxLength: 128
- description: |
- This sets the root user's password on a newly-created Linode Disk when deploying from an Image.
-
- * **Required** when creating a Linode Disk from an Image, including when using a StackScript.
-
- * 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.
- stackscript_id:
- type: integer
- example: 10079
- description: |
- A StackScript ID that will cause the referenced StackScript to be run during
- deployment of this Linode. A compatible `image` is required to use a
- StackScript. To get a list of available StackScript and their permitted Images
- see [/stackscripts](/docs/api/stackscripts/#stackscripts-list).
- This field cannot be used when deploying from a Backup or a Private Image.
- stackscript_data:
- type: object
- example:
- gh_username: linode
- description: |
- This field is required only if the StackScript being deployed requires input data from the User for successful completion. See [User Defined Fields (UDFs)](/docs/guides/writing-scripts-for-use-with-linode-stackscripts-a-tutorial/#user-defined-fields-udfs) for more details.
-
- This field is required to be valid JSON.
-
- Total length cannot exceed 65,535 characters.
- maxLength: 65535
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- Disk:
- type: object
- properties:
- id:
- type: integer
- description: |
- This Disk's ID which must be provided for all operations impacting this Disk.
- example: 25674
- readOnly: true
- x-linode-cli-display: 1
- label:
- x-linode-filterable: true
- type: string
- description: |
- The Disk's label is for display purposes only.
- example: Debian 9 Disk
- minLength: 1
- maxLength: 48
- x-linode-cli-display: 2
- status:
- type: string
- description: |
- A brief description of this Disk's current state. This field may change without direct action from you, as a result of operations performed to the Disk or the Linode containing the Disk.
- example: ready
- readOnly: true
- enum:
- - ready
- - not ready
- - deleting
- x-linode-cli-display: 3
- x-linode-cli-color:
- ready: green
- not ready: red
- default_: yellow
- size:
- x-linode-filterable: true
- type: integer
- description: The size of the Disk in MB.
- example: 48640
- x-linode-cli-display: 4
- filesystem:
- type: string
- description: |
- The Disk filesystem can be one of:
-
- * raw - No filesystem, just a raw binary stream.
- * swap - Linux swap area.
- * ext3 - The ext3 journaling filesystem for Linux.
- * ext4 - The ext4 journaling filesystem for Linux.
- * initrd - initrd (uncompressed initrd, ext2, max 32 MB).
- example: ext4
- enum:
- - raw
- - swap
- - ext3
- - ext4
- - initrd
- x-linode-cli-display: 5
- created:
- type: string
- format: date-time
- description: When this Disk was created.
- example: '2018-01-01T00:01:01'
- readOnly: true
- updated:
- type: string
- format: date-time
- description: When this Disk was last updated.
- example: '2018-01-01T00:01:01'
- readOnly: true
- LinodeRequest:
- type: object
- description: Common properties for creating and rebuilding Linodes.
- properties:
- image:
- $ref: '#/components/schemas/DiskRequest/properties/image'
- root_pass:
- $ref: '#/components/schemas/DiskRequest/properties/root_pass'
- authorized_keys:
- $ref: '#/components/schemas/DiskRequest/properties/authorized_keys'
- authorized_users:
- $ref: '#/components/schemas/DiskRequest/properties/authorized_users'
- stackscript_id:
- $ref: '#/components/schemas/DiskRequest/properties/stackscript_id'
- stackscript_data:
- $ref: '#/components/schemas/DiskRequest/properties/stackscript_data'
- booted:
- type: boolean
- writeOnly: true
- description: |
- This field defaults to `true` if the Linode is created with an Image or from a Backup.
- If it is deployed from an Image or a Backup and you wish it to remain `offline` after deployment, set this to `false`.
- default: true
- LinodeConfigInterfaces:
- type: array
- items:
- $ref: '#/components/schemas/LinodeConfigInterface'
- required:
- - purpose
- description: |
- An array of Network Interfaces to add to this Linode's Configuration Profile.
-
- Up to three interface objects can be entered in this array. The position in the array determines the interface to which the settings apply:
-
- - First/0: eth0
- - Second/1: eth1
- - Third/2: eth2
-
- When updating a Linode's interfaces, *each interface must be redefined*. An empty interfaces array results in a default public interface configuration only.
-
- If no public interface is configured, public IP addresses are still assigned to the Linode but will not be usable without manual configuration.
-
- **Note:** Changes to Linode interface configurations can be enabled by rebooting 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 the [VLANs Overview](/docs/products/networking/vlans/#technical-specifications) guide to view additional specifications and limitations.
- LinodeConfigInterface:
- type: object
- description: |
- The Network Interface to apply to this Linode's configuration profile.
- properties:
- label:
- type: string
- minLength: 1
- maxLength: 64
- pattern: '/[a-z0-9-]+/'
- x-linode-filterable: true
- nullable: true
- description: |
- The name of this interface.
-
- Required for `vlan` purpose interfaces. Must be an empty string or `null` for `public` purpose interfaces.
-
- If the VLAN label is new, a VLAN is created. Up to 10 VLANs can be created in each data center region. To view your active VLANs, use the [VLANs List](/docs/api/networking/#vlans-list) endpoint.
-
- May only consist of ASCII letters, numbers, and dashes (`-`).
-
- Must be unique among the Linode's interfaces.
- example: example-interface
- ipam_address:
- type: string
- format: ip/netmask
- nullable: true
- description: |
- This Network Interface's private IP address in Classless Inter-Domain Routing (CIDR) notation.
-
- Only used for `vlan` purpose interfaces. Must be an empty string or `null` for `public` purpose interfaces.
-
- The Linode is configured to use this address for the associated interface upon reboot if Network Helper is enabled. If Network Helper is disabled, the address can be enabled with [manual static IP configuration](/docs/guides/manual-network-configuration/).
-
- Must be unique among the Linode's interfaces.
- example: 10.0.0.1/24
- purpose:
- type: string
- enum:
- - public
- - vlan
- description: |
- The type of interface.
-
- * `public`
- * Only one `public` interface per Linode can be defined.
- * The Linode's default public IPv4 address is assigned to the `public` interface.
- * A Linode must have a public interface in the first/eth0 position to be reachable via the public internet upon boot without additional system configuration. If no `public` interface is configured, the Linode is not directly reachable via the public internet. In this case, access can only be established via LISH or other Linodes connected to the same VLAN.
-
- * `vlan`
- * Configuring a `vlan` purpose interface attaches this Linode to the VLAN with the specified `label`.
- * The Linode is configured to use the specified `ipam_address`, if any.
- example: vlan
- 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
- available:
- type: boolean
- description: |
- Whether this Backup is available for restoration.
-
- Backups undergoing maintenance are not available for restoration.
- example: true
- readOnly: true
- created:
- type: string
- format: date-time
- readOnly: true
- description: The date the Backup was taken.
- example: '2018-01-15T00:01:01'
- x-linode-cli-display: 4
- updated:
- type: string
- format: date-time
- readOnly: true
- description: The date the Backup was most recently updated.
- example: '2018-01-15T00:01:01'
- finished:
- type: string
- format: date-time
- readOnly: true
- description: The date the Backup completed.
- example: '2018-01-15T00:01:01'
- label:
- type: string
- description: A label for Backups that are of type `snapshot`.
- example: Webserver-Backup-2018
- x-linode-cli-display: 5
- 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.
- LinodeConfig:
- type: object
- properties:
- id:
- type: integer
- description: The ID of this Config.
- example: 23456
- readOnly: true
- x-linode-cli-display: 1
- kernel:
- type: string
- description: A Kernel ID to boot a Linode with. Defaults to "linode/latest-64bit".
- example: linode/latest-64bit
- x-linode-cli-display: 3
- comments:
- type: string
- nullable: true
- description: Optional field for arbitrary User comments on this Config.
- example: This is my main Config
- memory_limit:
- type: integer
- description: |
- Defaults to the total RAM of the Linode.
- example: 2048
- run_level:
- type: string
- description: |
- Defines the state of your Linode after booting. Defaults to `default`.
- enum:
- - default
- - single
- - binbash
- example: default
- virt_mode:
- type: string
- description: |
- Controls the virtualization mode. Defaults to `paravirt`.
- * `paravirt` is suitable for most cases. Linodes running in paravirt mode
- share some qualities with the host, ultimately making it run faster since
- there is less transition between it and the host.
- * `fullvirt` affords more customization, but is slower because 100% of the VM
- is virtualized.
- enum:
- - paravirt
- - fullvirt
- example: paravirt
- interfaces:
- $ref: '#/components/schemas/LinodeConfigInterfaces'
- helpers:
- type: object
- description: Helpers enabled when booting to this Linode Config.
- properties:
- updatedb_disabled:
- type: boolean
- description: Disables updatedb cron job to avoid disk thrashing.
- example: true
- distro:
- type: boolean
- description: Helps maintain correct inittab/upstart console device.
- example: true
- modules_dep:
- type: boolean
- description: Creates a modules dependency file for the Kernel you run.
- example: true
- network:
- type: boolean
- description: Automatically configures static networking.
- example: true
- devtmpfs_automount:
- type: boolean
- description: |
- Populates the /dev directory early during boot without udev. Defaults to false.
- example: false
- label:
- x-linode-filterable: true
- type: string
- description: |
- The Config's label is for display purposes only.
- example: My Config
- minLength: 1
- maxLength: 48
- x-linode-cli-display: 2
- devices:
- $ref: '#/components/schemas/Devices'
- root_device:
- type: string
- pattern: 'a-z, A-Z, 0-9, /, _, -'
- description: |
- The root device to boot.
- * If no value or an invalid value is provided, root device will default to `/dev/sda`.
- * If the device specified at the root device location is not mounted, the Linode will not boot until a device is mounted.
- example: /dev/sda
- Devices:
- type: object
- description: |
- A dictionary of device disks to use as a device map in a Linode's configuration profile.
- * An empty device disk dictionary or a dictionary with empty values for device slots is allowed.
- * If no devices are specified, booting from this configuration will hold until a device exists that allows the boot process to start.
- properties:
- sda:
- $ref: '#/components/schemas/Device'
- sdb:
- $ref: '#/components/schemas/Device'
- sdc:
- $ref: '#/components/schemas/Device'
- sdd:
- $ref: '#/components/schemas/Device'
- sde:
- $ref: '#/components/schemas/Device'
- sdf:
- $ref: '#/components/schemas/Device'
- sdg:
- $ref: '#/components/schemas/Device'
- sdh:
- $ref: '#/components/schemas/Device'
- Device:
- type: object
- description: |
- Device can be either a Disk or Volume identified by `disk_id` or `volume_id`. Only one type per slot allowed. Can be null.
- Devices mapped from _sde_ through _sdh_ are unavailable in `fullvirt` virt_mode.
- properties:
- disk_id:
- type: integer
- description: 'The Disk ID, or `null` if a Volume is assigned to this slot.'
- example: 124458
- volume_id:
- type: integer
- description: 'The Volume ID, or `null` if a Disk is assigned to this slot.'
- example: null
- Firewall:
- type: object
- description: |
- A resource that controls incoming and outgoing network traffic to a Linode service. Only one Firewall can be attached to a Linode at any given time. [Create a Firewall Device](/docs/api/networking/#firewall-create) to assign a Firewall to a Linode service. Currently, Firewalls can only be assigned to Linode instances.
- properties:
- id:
- x-linode-filterable: true
- type: integer
- readOnly: true
- description: |
- The Firewall's unique ID.
- example: 123
- x-linode-cli-display: 1
- label:
- x-linode-filterable: true
- type: string
- description: |
- The Firewall's label, for display purposes only.
-
- Firewall labels have the following constraints:
-
- * Must begin and end with an alphanumeric character.
- * May only consist of alphanumeric characters, dashes (`-`), underscores (`_`) or periods (`.`).
- * Cannot have two dashes (`--`), underscores (`__`) or periods (`..`) in a row.
- * Must be between 3 and 32 characters.
- * Must be unique.
- example: firewall123
- minLength: 3
- maxLength: 32
- pattern: '^[a-zA-Z]((?!--|__|..)[a-zA-Z0-9-_.])+$'
- x-linode-cli-display: 2
- created:
- x-linode-filterable: true
- type: string
- format: date-time
- readOnly: true
- description: |
- When this Firewall was created.
- example: '2018-01-01T00:01:01'
- x-linode-cli-display: 4
- updated:
- x-linode-filterable: true
- type: string
- format: date-time
- readOnly: true
- description: |
- When this Firewall was last updated.
- example: '2018-01-02T00:01:01'
- x-linode-cli-display: 5
- status:
- type: string
- readOnly: true
- description: |
- The status of this Firewall.
-
- * When a Firewall is first created its status is `enabled`.
- * Use the [Update Firewall](/docs/api/networking/#firewall-update) endpoint to set a Firewall's status to `enabled` or `disabled`.
- * Use the [Delete Firewall](/docs/api/networking/#firewall-delete) endpoint to delete a Firewall.
- enum:
- - enabled
- - disabled
- - deleted
- example: enabled
- x-linode-cli-display: 3
- rules:
- type: object
- description: |
- The inbound and outbound access rules to apply to the Firewall.
-
- A Firewall may have up to 25 rules across its inbound and outbound rulesets.
- properties:
- inbound:
- type: array
- x-linode-cli-format: json
- description: |
- The inbound rules for the firewall, as a JSON array.
- items:
- $ref: '#/components/schemas/FirewallRuleConfig'
- outbound:
- type: array
- x-linode-cli-format: json
- description: |
- The outbound rules for the firewall, as a JSON array.
- items:
- $ref: '#/components/schemas/FirewallRuleConfig'
- inbound_policy:
- type: string
- enum:
- - ACCEPT
- - DROP
- description: |
- The default behavior for inbound traffic. This setting can be overridden by [updating](/docs/api/networking/#firewall-rules-update) the `inbound.action` property of the Firewall Rule.
- example: DROP
- outbound_policy:
- type: string
- enum:
- - ACCEPT
- - DROP
- description: |
- The default behavior for outbound traffic. This setting can be overridden by [updating](/docs/api/networking/#firewall-rules-update) the `outbound.action` property of the Firewall Rule.
- example: DROP
- 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
- FirewallRuleConfig:
- type: object
- description: |
- One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports.
- properties:
- protocol:
- type: string
- enum:
- - TCP
- - UDP
- - ICMP
- - IPENCAP
- description: |
- The type of network traffic to allow.
- example: TCP
- ports:
- type: string
- 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.
- - 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` 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
- description: |
- Allowed IPv4 or IPv6 addresses. A Rule can have up to 255 addresses or networks listed across its IPv4 and IPv6 arrays. A network and a single IP are treated as equivalent when accounting for this limit.
- properties:
- ipv4:
- description: A list of IPv4 addresses or networks. Must be in IP/mask format.
- type: array
- items:
- type: string
- example:
- - 192.0.2.0/24
- ipv6:
- description: A list of IPv6 addresses or networks. Must be in IP/mask format.
- type: array
- items:
- type: string
- example:
- - '2001:DB8::/32'
- action:
- type: string
- enum:
- - ACCEPT
- - DROP
- description: |
- Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule.
- example: ACCEPT
- label:
- type: string
- description: |
- Used to identify this rule. For display purposes only.
- example: firewallrule123
- minLength: 3
- maxLength: 32
- description:
- type: string
- description: |
- Used to describe this rule. For display purposes only.
- example: An example firewall rule description.
- minLength: 1
- maxLength: 100
- IPAddress:
- type: object
- description: |
- An IP address that exists in Linode's system, either IPv4 or IPv6.
- properties:
- address:
- type: string
- format: ip
- description: |
- The IP address.
- example: 97.107.143.141
- readOnly: true
- x-linode-cli-display: 1
- gateway:
- type: string
- nullable: true
- format: ip
- description: |
- The default gateway for this address.
- example: 97.107.143.1
- readOnly: true
- subnet_mask:
- type: string
- format: ip
- description: |
- The mask that separates host bits from network bits for this address.
- example: 255.255.255.0
- readOnly: true
- prefix:
- type: integer
- description: |
- The number of bits set in the subnet mask.
- example: 24
- readOnly: true
- type:
- type: string
- enum:
- - ipv4
- - ipv6
- - ipv6/pool
- - ipv6/range
- description: |
- The type of address this is.
- example: ipv4
- readOnly: true
- x-linode-cli-display: 2
- public:
- type: boolean
- description: |
- Whether this is a public or private IP address.
- example: true
- readOnly: true
- x-linode-cli-display: 3
- rdns:
- type: string
- description: |
- The reverse DNS assigned to this address. For public IPv4 addresses, this will be set to a default value provided by Linode if not explicitly set.
- x-linode-cli-display: 4
- example: test.example.org
- nullable: true
- linode_id:
- type: integer
- description: |
- The ID of the Linode this address currently belongs to. For IPv4 addresses, this is by default the Linode that this address was assigned to on creation, and these addresses my be moved using the [/networking/ipv4/assign](/docs/api/networking/#ips-to-linodes-assign) endpoint. For SLAAC and link-local addresses, this value may not be changed.
- example: 123
- readOnly: true
- x-linode-cli-display: 6
- region:
- type: string
- description: |
- The Region this IP address resides in.
- example: us-east
- readOnly: true
- x-linode-filterable: true
- x-linode-cli-display: 5
- IPAddressPrivate:
- type: object
- description: |
- A private IPv4 address that exists in Linode's system.
- properties:
- address:
- type: string
- format: ip
- description: |
- The private IPv4 address.
- example: 192.168.133.234
- readOnly: true
- x-linode-cli-display: 1
- gateway:
- type: string
- format: ip
- description: |
- The default gateway for this address.
- example: null
- readOnly: true
- subnet_mask:
- type: string
- format: ip
- description: |
- The mask that separates host bits from network bits for this address.
- example: 255.255.128.0
- readOnly: true
- prefix:
- type: integer
- description: |
- The number of bits set in the subnet mask.
- example: 17
- readOnly: true
- type:
- type: string
- description: |
- The type of address this is.
- example: ipv4
- readOnly: true
- x-linode-cli-display: 2
- public:
- type: boolean
- description: |
- Whether this is a public or private IP address.
- example: false
- readOnly: true
- x-linode-cli-display: 3
- rdns:
- type: string
- description: |
- The reverse DNS assigned to this address.
- example: null
- x-linode-cli-display: 4
- linode_id:
- type: integer
- description: |
- The ID of the Linode this address currently belongs to.
- example: 123
- readOnly: true
- x-linode-cli-display: 6
- region:
- type: string
- description: |
- The Region this address resides in.
- example: us-east
- readOnly: true
- x-linode-filterable: true
- x-linode-cli-display: 5
- IPAddressV6LinkLocal:
- type: object
- description: |
- A link-local IPv6 address that exists in Linode's system,.
- properties:
- address:
- type: string
- format: ip
- description: |
- The IPv6 link-local address.
- example: 'fe80::f03c:91ff:fe24:3a2f'
- readOnly: true
- x-linode-cli-display: 1
- gateway:
- type: string
- description: |
- The default gateway for this address.
- example: 'fe80::1'
- readOnly: true
- subnet_mask:
- type: string
- format: ip
- description: |
- The subnet mask.
- example: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'
- readOnly: true
- prefix:
- type: integer
- description: |
- The network prefix.
- example: 64
- readOnly: true
- type:
- type: string
- description: |
- The type of address this is.
- example: ipv6
- readOnly: true
- x-linode-cli-display: 2
- public:
- type: boolean
- description: |
- Whether this is a public or private IP address.
- example: false
- readOnly: true
- x-linode-cli-display: 3
- rdns:
- type: string
- description: |
- The reverse DNS assigned to this address.
- example: null
- x-linode-cli-display: 4
- linode_id:
- type: integer
- description: |
- The ID of the Linode this address currently belongs to.
- example: 123
- readOnly: true
- x-linode-cli-display: 6
- region:
- type: string
- description: |
- The Region this address resides in.
- example: us-east
- readOnly: true
- x-linode-filterable: true
- x-linode-cli-display: 5
- IPAddressV6Slaac:
- type: object
- description: |
- A SLAAC IPv6 address that exists in Linode's system.
- properties:
- address:
- type: string
- format: ip
- description: |
- The address.
- example: '2600:3c03::f03c:91ff:fe24:3a2f'
- readOnly: true
- x-linode-cli-display: 1
- gateway:
- type: string
- description: |
- The default gateway for this address.
- example: 'fe80::1'
- readOnly: true
- subnet_mask:
- type: string
- format: ip
- description: |
- The subnet mask.
- example: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'
- readOnly: true
- prefix:
- type: integer
- description: |
- The network prefix.
- example: 64
- readOnly: true
- type:
- type: string
- description: |
- The type of address this is.
- example: ipv6
- readOnly: true
- x-linode-cli-display: 2
- public:
- type: boolean
- description: |
- Whether this is a public or private IP address.
- example: true
- readOnly: true
- x-linode-cli-display: 3
- rdns:
- type: string
- description: |
- The reverse DNS assigned to this address.
- example: null
- x-linode-cli-display: 4
- linode_id:
- type: integer
- description: |
- The ID of the Linode this address currently belongs to.
- example: 123
- readOnly: true
- x-linode-cli-display: 6
- region:
- type: string
- description: |
- The Region this address resides in.
- example: us-east
- readOnly: true
- x-linode-filterable: true
- x-linode-cli-display: 5
- IPv6Pool:
- type: object
- description: |
- An object representing an IPv6 pool.
- properties:
- range:
- type: string
- description: |
- The IPv6 range of addresses in this pool.
- example: '2600:3c01::2:5000:0'
- readOnly: true
- x-linode-cli-display: 1
- prefix:
- type: integer
- description: |
- The prefix length of the address, denoting how many addresses can be assigned from this pool calculated as 2 128-prefix .
- example: 124
- x-linode-cli-display: 2
- region:
- type: string
- description: |
- The region for this pool of IPv6 addresses.
- example: us-east
- readOnly: true
- x-linode-cli-display: 3
- x-linode-filterable: true
- route_target:
- type: string
- description: |
- The last address in this block of IPv6 addresses.
- example: '2600:3c01::2:5000:f'
- nullable: true
- Kernel:
- type: object
- description: Linux kernel object
- properties:
- id:
- type: string
- description: The unique ID of this Kernel.
- example: linode/latest-64bit
- readOnly: true
- x-linode-cli-display: 1
- label:
- x-linode-filterable: true
- type: string
- description: The friendly name of this Kernel.
- example: Latest 64 bit (4.15.7-x86_64-linode102)
- readOnly: true
- x-linode-cli-display: 2
- version:
- x-linode-filterable: true
- type: string
- description: Linux Kernel version.
- example: 4.15.7
- readOnly: true
- x-linode-cli-display: 3
- kvm:
- x-linode-filterable: true
- type: boolean
- description: If this Kernel is suitable for KVM Linodes.
- example: true
- readOnly: true
- xen:
- x-linode-filterable: true
- type: boolean
- description: If this Kernel is suitable for Xen Linodes.
- example: false
- readOnly: true
- architecture:
- x-linode-filterable: true
- type: string
- description: The architecture of this Kernel.
- enum:
- - x86_64
- - i386
- example: x86_64
- readOnly: true
- x-linode-cli-display: 4
- pvops:
- x-linode-filterable: true
- type: boolean
- description: If this Kernel is suitable for paravirtualized operations.
- example: false
- readOnly: true
- deprecated:
- x-linode-filterable: true
- type: boolean
- description: 'If this Kernel is marked as deprecated, this field has a value of true; otherwise, this field is false.'
- example: false
- readOnly: true
- built:
- type: string
- format: date-time
- description: The date on which this Kernel was built.
- example: '2018-01-01T00:01:01'
- readOnly: true
- NodeBalancer:
- type: object
- description: |
- Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer Configs, and each config is given one or more NodeBalancer Node that accepts traffic. The traffic should be routed to the NodeBalancer's ip address, the NodeBalancer will handle routing individual requests to backends.
- properties:
- id:
- type: integer
- description: |
- This NodeBalancer's unique ID.
- example: 12345
- readOnly: true
- x-linode-cli-display: 1
- label:
- x-linode-filterable: true
- type: string
- minLength: 3
- maxLength: 32
- pattern: '[a-zA-Z0-9-_]{3,32}'
- description: |
- This NodeBalancer's label. These must be unique on your Account.
- example: balancer12345
- x-linode-cli-display: 2
- region:
- x-linode-filterable: true
- type: string
- description: |
- The Region where this NodeBalancer is located. NodeBalancers only support backends in the same Region.
- example: us-east
- readOnly: true
- x-linode-cli-display: 3
- hostname:
- type: string
- description: |
- This NodeBalancer's hostname, beginning with its IP address and ending with _.ip.linodeusercontent.com_.
- example: 192.0.2.1.ip.linodeusercontent.com
- readOnly: true
- x-linode-cli-display: 4
- ipv4:
- x-linode-filterable: true
- type: string
- format: ip
- description: |
- This NodeBalancer's public IPv4 address.
- example: 203.0.113.1
- readOnly: true
- x-linode-cli-display: 5
- ipv6:
- type: string
- nullable: true
- format: ip
- description: |
- This NodeBalancer's public IPv6 address.
- example: null
- readOnly: true
- x-linode-cli-display: 6
- created:
- type: string
- format: date-time
- description: |
- When this NodeBalancer was created.
- example: 2018-01-01T00:01:01.000Z
- readOnly: true
- updated:
- type: string
- format: date-time
- description: |
- When this NodeBalancer was last updated.
- example: 2018-03-01T00:01:01.000Z
- readOnly: true
- client_conn_throttle:
- type: integer
- minimum: 0
- maximum: 20
- description: |
- Throttle connections per second. Set to 0 (zero) to disable throttling.
- example: 0
- x-linode-cli-display: 6
- transfer:
- type: object
- readOnly: true
- description: |
- Information about the amount of transfer this NodeBalancer has had so far this month.
- properties:
- total:
- type: number
- nullable: true
- description: |
- The total transfer, in MB, used by this NodeBalancer this month.
- example: 32.46078109741211
- readOnly: true
- out:
- type: number
- nullable: true
- description: |
- The total inbound transfer, in MB, used for this NodeBalancer this month.
- example: 3.5487728118896484
- readOnly: true
- in:
- type: number
- nullable: true
- description: |
- The total outbound transfer, in MB, used for this NodeBalancer this month.
- example: 28.91200828552246
- readOnly: true
- 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
- RescueDevices:
- type: object
- properties:
- sda:
- $ref: '#/components/schemas/Device'
- sdb:
- $ref: '#/components/schemas/Device'
- sdc:
- $ref: '#/components/schemas/Device'
- sdd:
- $ref: '#/components/schemas/Device'
- sde:
- $ref: '#/components/schemas/Device'
- sdf:
- $ref: '#/components/schemas/Device'
- sdg:
- $ref: '#/components/schemas/Device'
- LinodeStats:
- type: object
- description: |
- CPU, IO, IPv4, and IPv6 statistics. Graph data, if available, is in "[timestamp, reading]" array format. Timestamp is a UNIX timestamp in EST.
- readOnly: true
- properties:
- cpu:
- type: array
- description: |
- Percentage of CPU used.
- items:
- type: array
- items:
- type: number
- example:
- - 1521483600000
- - 0.42
- io:
- type: object
- description: Input/Output statistics.
- properties:
- io:
- type: array
- description: Block/s written.
- items:
- type: array
- items:
- type: number
- example:
- - 1521484800000
- - 0.19
- swap:
- type: array
- description: Block/s written.
- items:
- type: array
- items:
- type: number
- example:
- - 1521484800000
- - 0
- netv4:
- type: object
- description: IPv4 statistics.
- properties:
- in:
- type: array
- description: 'Input stats for IPv4, measured in bits/s (bits/second).'
- items:
- type: array
- items:
- type: number
- example:
- - 1521484800000
- - 2004.36
- out:
- type: array
- description: 'Output stats for IPv4, measured in bits/s (bits/second).'
- items:
- type: array
- items:
- type: number
- example:
- - 1521484800000
- - 3928.91
- private_in:
- type: array
- description: 'Private IPv4 input statistics, measured in bits/s (bits/second).'
- items:
- type: array
- items:
- type: number
- example:
- - 1521484800000
- - 0
- private_out:
- type: array
- description: 'Private IPv4 output statistics, measured in bits/s (bits/second).'
- items:
- type: array
- items:
- type: number
- example:
- - 1521484800000
- - 5.6
- netv6:
- type: object
- description: IPv6 statistics.
- properties:
- in:
- type: array
- description: 'Input stats for IPv6, measured in bits/s (bits/second).'
- items:
- type: array
- items:
- type: number
- example:
- - 1521484800000
- - 0
- out:
- type: array
- description: 'Output stats for IPv6, measured in bits/s (bits/second).'
- items:
- type: array
- items:
- type: number
- example:
- - 1521484800000
- - 0
- private_in:
- type: array
- description: 'Private IPv6 input statistics, measured in bits/s (bits/second).'
- items:
- type: array
- items:
- type: number
- example:
- - 1521484800000
- - 195.18
- private_out:
- type: array
- description: 'Private IPv6 output statistics, measured in bits/s (bits/second).'
- items:
- type: array
- items:
- type: number
- example:
- - 1521484800000
- - 5.6
- title:
- type: string
- description: The title for this data set.
- example: linode.com - my-linode (linode123456) - day (5 min avg)
- Volume:
- type: object
- description: |
- A Block Storage Volume associated with your Account.
- properties:
- id:
- type: integer
- description: The unique ID of this Volume.
- example: 12345
- readOnly: true
- x-linode-cli-display: 1
- label:
- x-linode-filterable: true
- type: string
- description: |
- The Volume's label is for display purposes only.
- example: my-volume
- minLength: 1
- maxLength: 32
- pattern: '^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$'
- x-linode-cli-display: 2
- filesystem_path:
- type: string
- description: |
- The full filesystem path for the Volume based on the Volume's label. Path is /dev/disk/by-id/scsi-0Linode_Volume_ + Volume label.
- example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
- readOnly: true
- status:
- type: string
- description: |
- The current status of the volume. Can be one of:
-
- * `creating` - the Volume is being created and is not yet available
- for use.
- * `active` - the Volume is online and available for use.
- * `resizing` - the Volume is in the process of upgrading
- its current capacity.
- enum:
- - creating
- - active
- - resizing
- example: active
- readOnly: true
- x-linode-cli-display: 3
- x-linode-cli-color:
- active: green
- contact_support: red
- default_: yellow
- size:
- type: integer
- description: |
- The Volume's size, in GiB.
- maximum: 10240
- x-linode-cli-display: 4
- example: 30
- region:
- $ref: '#/components/schemas/Region/properties/id'
- x-linode-cli-display: 5
- linode_id:
- type: integer
- nullable: true
- description: |
- If a Volume is attached to a specific Linode, the ID of that Linode will be displayed here.
- example: 12346
- x-linode-cli-display: 6
- linode_label:
- type: string
- nullable: true
- description: |
- If a Volume is attached to a specific Linode, the label of that Linode will be displayed here.
- example: linode123
- x-linode-cli-display: 7
- readOnly: true
- created:
- type: string
- format: date-time
- description: When this Volume was created.
- example: '2018-01-01T00:01:01'
- readOnly: true
- updated:
- type: string
- format: date-time
- description: When this Volume was last updated.
- example: '2018-01-01T00:01:01'
- readOnly: true
- 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
- hardware_type:
- type: string
- enum:
- - hdd
- - nvme
- description: The storage type of this Volume.
- example: nvme
- readOnly: true
- Region:
- type: object
- description: An area where Linode services are available.
- properties:
- id:
- readOnly: true
- type: string
- description: The unique ID of this Region.
- example: us-east
- x-linode-cli-display: 1
- label:
- type: string
- description: 'Detailed location information for this Region, including city, state or region, and country.'
- example: 'Newark, NJ, USA'
- readOnly: true
- x-linode-cli-display: 2
- country:
- type: string
- description: The country where this Region resides.
- example: us
- readOnly: true
- x-linode-cli-display: 3
- capabilities:
- type: array
- items:
- type: string
- description: |
- A list of capabilities of this region.
- example:
- - Linodes
- - NodeBalancers
- - Block Storage
- - Object Storage
- readOnly: true
- x-linode-cli-display: 4
- status:
- type: string
- description: |
- This region's current operational status.
- example: ok
- enum:
- - ok
- - outage
- readOnly: true
- x-linode-cli-display: 5
- resolvers:
- type: object
- readOnly: true
- x-linode-cli-display: 6
- properties:
- ipv4:
- type: string
- description: |
- The IPv4 addresses for this region's DNS resolvers, separated by commas.
- example: '192.0.2.0,192.0.2.1'
- readOnly: true
- ipv6:
- type: string
- description: |
- The IPv6 addresses for this region's DNS resolvers, separated by commas.
- example: '2001:0db8::,2001:0db8::1'
- readOnly: true
- StackScript:
- type: object
- description: |
- A StackScript enables you to quickly deploy a fully-configured application in an automated manner.
- properties:
- id:
- type: integer
- description: The unique ID of this StackScript.
- example: 10079
- readOnly: true
- x-linode-cli-display: 1
- username:
- type: string
- description: |
- The User who created the StackScript.
- example: myuser
- readOnly: true
- x-linode-cli-display: 2
- user_gravatar_id:
- type: string
- description: |
- The Gravatar ID for the User who created the StackScript.
- example: a445b305abda30ebc766bc7fda037c37
- readOnly: true
- label:
- x-linode-filterable: true
- type: string
- description: |
- The StackScript's label is for display purposes only.
- example: a-stackscript
- minLength: 3
- maxLength: 128
- x-linode-cli-display: 3
- description:
- x-linode-filterable: true
- type: string
- description: |
- A description for the StackScript.
- example: |
- This StackScript installs and configures MySQL
- images:
- type: array
- description: |
- An array of Image IDs. These are the Images that can be deployed with this StackScript.
-
- `any/all` indicates that all available Images, including private Images, are accepted.
- items:
- type: string
- example:
- - linode/debian9
- - linode/debian8
- x-linode-cli-display: 4
- deployments_total:
- x-linode-filterable: true
- type: integer
- description: |
- The total number of times this StackScript has been deployed.
- example: 12
- readOnly: true
- deployments_active:
- type: integer
- description: |
- Count of currently active, deployed Linodes created from this StackScript.
- example: 1
- readOnly: true
- is_public:
- x-linode-filterable: true
- type: boolean
- description: |
- This determines whether other users can use your StackScript. **Once a StackScript is made public, it cannot be made private.**
- example: true
- x-linode-cli-display: 5
- created:
- type: string
- format: date-time
- description: |
- The date this StackScript was created.
- readOnly: true
- example: '2018-01-01T00:01:01'
- x-linode-cli-display: 6
- updated:
- type: string
- format: date-time
- description: |
- The date this StackScript was last updated.
- readOnly: true
- example: '2018-01-01T00:01:01'
- x-linode-cli-display: 7
- rev_note:
- x-linode-filterable: true
- type: string
- description: |
- This field allows you to add notes for the set of revisions made to this StackScript.
- example: Set up MySQL
- script:
- type: string
- description: |
- The script to execute when provisioning a new Linode with this StackScript.
- example: |
- "#!/bin/bash"
- x-linode-cli-format: file
- user_defined_fields:
- type: array
- description: |
- This is a list of fields defined with a special syntax inside this StackScript that allow for supplying customized parameters during deployment. See [Declare User-Defined Fields (UDFs)](/docs/products/tools/stackscripts/guides/write-a-custom-script/#declare-user-defined-fields-udfs) for more information.
- items:
- $ref: '#/components/schemas/UserDefinedField'
- readOnly: true
- example:
- label: Enter the DB password
- name: DB_PASSWORD
- example: hunter2
- mine:
- type: boolean
- x-linode-filterable: true
- description: |
- Returns `true` if this StackScript is owned by the account of the user making the request, and the user
- making the request is unrestricted or has access to this StackScript.
- readOnly: true
- example: true
- UserDefinedField:
- type: object
- required:
- - label
- - name
- - example
- description: |
- A custom field defined by the User with a special syntax within a StackScript. Derived from the contents of the script.
- properties:
- label:
- type: string
- description: |
- A human-readable label for the field that will serve as the input prompt for entering the value during deployment.
- example: Enter the password
- readOnly: true
- name:
- type: string
- description: |
- The name of the field.
- example: DB_PASSWORD
- readOnly: true
- example:
- type: string
- description: |
- An example value for the field.
- example: hunter2
- readOnly: true
- oneOf:
- type: string
- description: |
- A list of acceptable single values for the field.
- example: 'avalue,anothervalue,thirdvalue'
- readOnly: true
- manyOf:
- type: string
- description: |
- A list of acceptable values for the field in any quantity, combination or order.
- example: 'avalue,anothervalue,thirdvalue'
- readOnly: true
- default:
- type: string
- description: |
- The default value. If not specified, this value will be used.
- readOnly: true
- LinodeType:
- type: object
- 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.
- properties:
- id:
- readOnly: true
- type: string
- description: The ID representing the Linode Type.
- example: g6-standard-2
- x-linode-cli-display: 1
- label:
- x-linode-filterable: true
- type: string
- readOnly: true
- description: |
- The Linode Type's label is for display purposes only.
- example: Linode 4GB
- x-linode-cli-display: 2
- disk:
- x-linode-filterable: true
- type: integer
- readOnly: true
- description: |
- The Disk size, in MB, of the Linode Type.
- example: 81920
- x-linode-cli-display: 4
- class:
- x-linode-filterable: true
- type: string
- readOnly: true
- description: |
- The class of the Linode Type. We currently offer five classes of Linodes:
-
- * nanode - Nanode instances are good for low-duty workloads,
- where performance isn't critical. **Note:** As of June 16th, 2020, Nanodes became
- 1 GB Linodes in the Cloud Manager, however, the API, the CLI, and billing will
- continue to refer to these instances as Nanodes.
- * standard - Standard Shared instances are good for medium-duty workloads and
- are a good mix of performance, resources, and price. **Note:** As of June 16th, 2020,
- Standard Linodes in the Cloud Manager became Shared Linodes, however, the API, the CLI, and
- billing will continue to refer to these instances as Standard Linodes.
- * dedicated - Dedicated CPU instances are good for full-duty workloads
- where consistent performance is important.
- * gpu - Linodes with dedicated NVIDIA Quadro ® RTX 6000 GPUs accelerate highly
- specialized applications such as machine learning, AI, and video transcoding.
- * highmem - High Memory instances favor RAM over other resources, and can be
- good for memory hungry use cases like caching and in-memory databases.
- All High Memory plans contain dedicated CPU cores.
- enum:
- - nanode
- - standard
- - dedicated
- - gpu
- - highmem
- example: standard
- x-linode-cli-display: 3
- price:
- type: object
- readOnly: true
- description: |
- Cost in US dollars, broken down into hourly and monthly charges.
- properties:
- hourly:
- type: number
- description: Cost (in US dollars) per hour.
- example: 0.03
- x-linode-cli-display: 9
- monthly:
- type: number
- description: Cost (in US dollars) per month.
- example: 20
- x-linode-cli-display: 10
- addons:
- type: object
- readOnly: true
- description: |
- A list of optional add-on services for Linodes and their associated costs.
- properties:
- backups:
- type: object
- readOnly: true
- description: |
- Information about the optional Backup service offered for Linodes.
- properties:
- price:
- type: object
- description: Cost of enabling Backups for this Linode Type.
- properties:
- hourly:
- type: number
- description: |
- The cost (in US dollars) per hour to add Backups service.
- example: 0.008
- monthly:
- type: number
- description: |
- The cost (in US dollars) per month to add Backups service.
- example: 5
- network_out:
- x-linode-filterable: true
- type: integer
- readOnly: true
- description: |
- The Mbits outbound bandwidth allocation.
- example: 1000
- x-linode-cli-display: 7
- memory:
- x-linode-filterable: true
- type: integer
- readOnly: true
- description: |
- Amount of RAM included in this Linode Type.
- example: 4096
- x-linode-cli-display: 5
- successor:
- type: string
- readOnly: true
- nullable: true
- description: |
- The Linode Type that a [mutate](/docs/api/linode-instances/#linode-upgrade) will upgrade to for a Linode of this type. If "null", a Linode of this type may not mutate.
- example: null
- transfer:
- x-linode-filterable: true
- type: integer
- readOnly: true
- description: |
- The monthly outbound transfer amount, in MB.
- example: 4000
- x-linode-cli-display: 8
- vcpus:
- x-linode-filterable: true
- type: integer
- readOnly: true
- description: |
- The number of VCPU cores this Linode Type offers.
- example: 2
- x-linode-cli-display: 6
- gpus:
- x-linode-filterable: true
- type: integer
- readOnly: true
- description: |
- The number of GPUs this Linode Type offers.
- example: 0
- x-linode-cli-display: 11
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- linodes:
- id: linode.instances.linodes
- name: linodes
- title: Linodes
- methods:
- getLinodeInstances:
- operation:
- $ref: '#/paths/~1linode~1instances/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLinodeInstances:
- operation:
- $ref: '#/paths/~1linode~1instances/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createLinodeInstance:
- operation:
- $ref: '#/paths/~1linode~1instances/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getLinodeInstance:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLinodeInstance:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateLinodeInstance:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteLinodeInstance:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- bootLinodeInstance:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1boot/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- cloneLinodeInstance:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1clone/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- migrateLinodeInstance:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1migrate/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- mutateLinodeInstance:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1mutate/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- resetLinodePassword:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1password/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- rebootLinodeInstance:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1reboot/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- rebuildLinodeInstance:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1rebuild/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- rescueLinodeInstance:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1rescue/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- resizeLinodeInstance:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1resize/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- shutdownLinodeInstance:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1shutdown/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/linodes/methods/getLinodeInstances'
- - $ref: '#/components/x-stackQL-resources/linodes/methods/getLinodeInstance'
- insert:
- - $ref: '#/components/x-stackQL-resources/linodes/methods/createLinodeInstance'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/linodes/methods/deleteLinodeInstance'
- backups:
- id: linode.instances.backups
- name: backups
- title: Backups
- methods:
- getBackups:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1backups/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getBackups:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1backups/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createSnapshot:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1backups/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- cancelBackups:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1backups~1cancel/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- enableBackups:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1backups~1enable/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getBackup:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1backups~1{backupId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getBackup:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1backups~1{backupId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- restoreBackup:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1backups~1{backupId}~1restore/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/backups/methods/getBackups'
- - $ref: '#/components/x-stackQL-resources/backups/methods/getBackup'
- insert:
- - $ref: '#/components/x-stackQL-resources/backups/methods/createSnapshot'
- update: []
- delete: []
- configs:
- id: linode.instances.configs
- name: configs
- title: Configs
- methods:
- getLinodeConfigs:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLinodeConfigs:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- addLinodeConfig:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getLinodeConfig:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs~1{configId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLinodeConfig:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs~1{configId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateLinodeConfig:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs~1{configId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteLinodeConfig:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs~1{configId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/configs/methods/getLinodeConfigs'
- - $ref: '#/components/x-stackQL-resources/configs/methods/getLinodeConfig'
- insert:
- - $ref: '#/components/x-stackQL-resources/configs/methods/addLinodeConfig'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/configs/methods/deleteLinodeConfig'
- disks:
- id: linode.instances.disks
- name: disks
- title: Disks
- methods:
- getLinodeDisks:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLinodeDisks:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- addLinodeDisk:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getLinodeDisk:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks~1{diskId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLinodeDisk:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks~1{diskId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateDisk:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks~1{diskId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteDisk:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks~1{diskId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- cloneLinodeDisk:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks~1{diskId}~1clone/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- resetDiskPassword:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks~1{diskId}~1password/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- resizeDisk:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks~1{diskId}~1resize/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/disks/methods/getLinodeDisks'
- - $ref: '#/components/x-stackQL-resources/disks/methods/getLinodeDisk'
- insert:
- - $ref: '#/components/x-stackQL-resources/disks/methods/addLinodeDisk'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/disks/methods/deleteDisk'
- firewalls:
- id: linode.instances.firewalls
- name: firewalls
- title: Firewalls
- methods:
- getLinodeFirewalls:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1firewalls/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLinodeFirewalls:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1firewalls/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/firewalls/methods/getLinodeFirewalls'
- insert: []
- update: []
- delete: []
- ips:
- id: linode.instances.ips
- name: ips
- title: Ips
- methods:
- getLinodeIPs:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1ips/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getLinodeIPs:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1ips/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- addLinodeIP:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1ips/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getLinodeIP:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1ips~1{address}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLinodeIP:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1ips~1{address}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateLinodeIP:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1ips~1{address}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- removeLinodeIP:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1ips~1{address}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/ips/methods/getLinodeIPs'
- - $ref: '#/components/x-stackQL-resources/ips/methods/getLinodeIP'
- insert:
- - $ref: '#/components/x-stackQL-resources/ips/methods/addLinodeIP'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/ips/methods/removeLinodeIP'
- kernels:
- id: linode.instances.kernels
- name: kernels
- title: Kernels
- methods:
- getKernels:
- operation:
- $ref: '#/paths/~1linode~1kernels/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getKernels:
- operation:
- $ref: '#/paths/~1linode~1kernels/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getKernel:
- operation:
- $ref: '#/paths/~1linode~1kernels~1{kernelId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getKernel:
- operation:
- $ref: '#/paths/~1linode~1kernels~1{kernelId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/kernels/methods/getKernels'
- - $ref: '#/components/x-stackQL-resources/kernels/methods/getKernel'
- insert: []
- update: []
- delete: []
- nodebalancers:
- id: linode.instances.nodebalancers
- name: nodebalancers
- title: Nodebalancers
- methods:
- getLinodeNodeBalancers:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1nodebalancers/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLinodeNodeBalancers:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1nodebalancers/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/nodebalancers/methods/getLinodeNodeBalancers'
- insert: []
- update: []
- delete: []
- transfer:
- id: linode.instances.transfer
- name: transfer
- title: Transfer
- methods:
- getLinodeTransfer:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1transfer/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getLinodeTransfer:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1transfer/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getLinodeTransferByYearMonth:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1transfer~1{year}~1{month}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLinodeTransferByYearMonth:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1transfer~1{year}~1{month}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/transfer/methods/getLinodeTransfer'
- - $ref: '#/components/x-stackQL-resources/transfer/methods/getLinodeTransferByYearMonth'
- insert: []
- update: []
- delete: []
- stats:
- id: linode.instances.stats
- name: stats
- title: Stats
- methods:
- getLinodeStats:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1stats/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getLinodeStats:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1stats/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getLinodeStatsByYearMonth:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1stats~1{year}~1{month}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLinodeStatsByYearMonth:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1stats~1{year}~1{month}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/stats/methods/getLinodeStats'
- - $ref: '#/components/x-stackQL-resources/stats/methods/getLinodeStatsByYearMonth'
- insert: []
- update: []
- delete: []
- volumes:
- id: linode.instances.volumes
- name: volumes
- title: Volumes
- methods:
- getLinodeVolumes:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1volumes/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLinodeVolumes:
- operation:
- $ref: '#/paths/~1linode~1instances~1{linodeId}~1volumes/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/volumes/methods/getLinodeVolumes'
- insert: []
- update: []
- delete: []
- stackscripts:
- id: linode.instances.stackscripts
- name: stackscripts
- title: Stackscripts
- methods:
- getStackScripts:
- operation:
- $ref: '#/paths/~1linode~1stackscripts/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getStackScripts:
- operation:
- $ref: '#/paths/~1linode~1stackscripts/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- addStackScript:
- operation:
- $ref: '#/paths/~1linode~1stackscripts/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getStackScript:
- operation:
- $ref: '#/paths/~1linode~1stackscripts~1{stackscriptId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getStackScript:
- operation:
- $ref: '#/paths/~1linode~1stackscripts~1{stackscriptId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateStackScript:
- operation:
- $ref: '#/paths/~1linode~1stackscripts~1{stackscriptId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteStackScript:
- operation:
- $ref: '#/paths/~1linode~1stackscripts~1{stackscriptId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/stackscripts/methods/getStackScripts'
- - $ref: '#/components/x-stackQL-resources/stackscripts/methods/getStackScript'
- insert:
- - $ref: '#/components/x-stackQL-resources/stackscripts/methods/addStackScript'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/stackscripts/methods/deleteStackScript'
- types:
- id: linode.instances.types
- name: types
- title: Types
- methods:
- getLinodeTypes:
- operation:
- $ref: '#/paths/~1linode~1types/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLinodeTypes:
- operation:
- $ref: '#/paths/~1linode~1types/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getLinodeType:
- operation:
- $ref: '#/paths/~1linode~1types~1{typeId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLinodeType:
- operation:
- $ref: '#/paths/~1linode~1types~1{typeId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/types/methods/getLinodeTypes'
- - $ref: '#/components/x-stackQL-resources/types/methods/getLinodeType'
- insert: []
- update: []
- delete: []
-paths:
- /linode/instances:
- 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
- operationId: getLinodeInstances
- x-linode-cli-action:
- - list
- - ls
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_only'
- responses:
- '200':
- description: Returns an array of all Linodes on your Account.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/Linode'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances
- - lang: CLI
- source: |
- linode-cli linodes list
- post:
- x-linode-charge: true
- x-linode-grant: add_linodes
- summary: 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/guides/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/products/networking/vlans/get-started/).
-
- * 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
- operationId: createLinodeInstance
- x-linode-cli-action: create
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_write'
- requestBody:
- description: The requested initial state of a new Linode.
- required: true
- x-linode-cli-allowed-defaults:
- - authorized_users
- - 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 new Linode is being created.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Linode'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "backup_id": 1234,
- "backups_enabled": true,
- "swap_size": 512,
- "image": "linode/debian9",
- "root_pass": "aComplexP@ssword",
- "stackscript_id": 10079,
- "stackscript_data": {
- "gh_username": "linode"
- },
- "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}':
- get:
- x-linode-grant: read_only
- tags:
- - Linode Instances
- 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: Returns a single Linode object.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Linode'
- links:
- boot:
- $ref: '#/components/links/bootLinode'
- reboot:
- $ref: '#/components/links/rebootLinode'
- shutdown:
- $ref: '#/components/links/shutdownLinode'
- update:
- $ref: '#/components/links/updateLinode'
- delete:
- $ref: '#/components/links/deleteLinode'
- rebuild:
- $ref: '#/components/links/rebuildLinode'
- mutate:
- $ref: '#/components/links/mutateLinode'
- resize:
- $ref: '#/components/links/resizeLinode'
- rescue:
- $ref: '#/components/links/rescueLinode'
- clone:
- $ref: '#/components/links/cloneLinode'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances/123
- - lang: CLI
- source: |
- linode-cli linodes view 123
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up
- required: true
- schema:
- type: integer
- put:
- x-linode-grant: read_write
- tags:
- - Linode Instances
- summary: Linode Update
- description: |
- 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_write'
- requestBody:
- description: |
- Any field that is not marked as `readOnly` may be updated. Fields that are marked `readOnly` will be ignored. If any updated field fails to pass validation, the Linode will not be updated.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Linode'
- responses:
- '200':
- description: The updated Linode.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Linode'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "label": "linode123",
- "group": "Linode-Group",
- "alerts": {
- "cpu": 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
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up
- required: true
- schema:
- type: integer
- delete:
- x-linode-grant: read_write
- tags:
- - Linode Instances
- 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
- - rm
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_write'
- responses:
- '200':
- description: Delete successful
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/linode/instances/123
- - lang: CLI
- source: |
- linode-cli linodes delete 123
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/backups':
- 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_only'
- responses:
- '200':
- 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:
- 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'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances/123/backups
- - lang: CLI
- source: |
- linode-cli linodes backups-list 123
- parameters:
- - name: linodeId
- in: path
- description: The ID of the Linode the backups belong to.
- required: true
- schema:
- type: integer
- post:
- 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:
- - Linode Instances
- operationId: createSnapshot
- x-linode-cli-action: snapshot
- 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
- responses:
- '200':
- description: Snapshot request successful.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Backup'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "label": "MyNewSnapshot"
- }' \
- https://api.linode.com/v4/linode/instances/123/backups
- - lang: CLI
- source: |
- linode-cli linodes snapshot 123
- parameters:
- - name: linodeId
- in: path
- description: The ID of the Linode the backups belong to.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/backups/cancel':
- 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.
- tags:
- - Linode Instances
- operationId: cancelBackups
- x-linode-cli-action: backups-cancel
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_write'
- responses:
- '200':
- description: Backup service was cancelled for the specified Linode.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/linode/instances/123/backups/cancel
- - lang: CLI
- source: |
- linode-cli linodes backups-cancel 123
- parameters:
- - name: linodeId
- in: path
- description: The ID of the Linode to cancel backup service for.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/backups/enable':
- 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_write'
- responses:
- '200':
- description: Backup service was enabled.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/linode/instances/123/backups/enable
- - lang: CLI
- source: |
- linode-cli linodes backups-enable 123
- parameters:
- - name: linodeId
- in: path
- description: The ID of the Linode to enable backup service for.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/backups/{backupId}':
- 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_only'
- responses:
- '200':
- description: A single Backup.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Backup'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances/123/backups/123456
- - lang: CLI
- source: |
- linode-cli linodes backup-view 123 123456
- 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
- '/linode/instances/{linodeId}/backups/{backupId}/restore':
- post:
- x-linode-grant: read_write
- summary: Backup Restore
- description: |
- Restores a Linode's Backup to the specified Linode.
- tags:
- - Linode Instances
- operationId: restoreBackup
- x-linode-cli-action: backup-restore
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_write'
- requestBody:
- description: Parameters to provide when restoring the Backup.
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - linode_id
- properties:
- linode_id:
- type: integer
- description: |
- The ID of the Linode to restore a Backup to.
- example: 234
- overwrite:
- type: boolean
- description: |
- If True, deletes all Disks and Configs on the target Linode
- before restoring.
-
- 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: Restore from Backup was initiated.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "linode_id": 234,
- "overwrite": true
- }' \
- https://api.linode.com/v4/linode/instances/123/backups/123456/restore
- - lang: CLI
- source: |
- linode-cli linodes backup-restore 123 123456 \
- --linode_id 234 \
- --overwrite true
- 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
- '/linode/instances/{linodeId}/boot':
- 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 Instances
- operationId: bootLinodeInstance
- x-linode-cli-action: boot
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_write'
- requestBody:
- description: Optional configuration to boot into (see above).
- required: false
- content:
- application/json:
- schema:
- type: object
- properties:
- config_id:
- type: integer
- description: |
- The Linode Config ID to boot into.
- example: null
- responses:
- '200':
- description: Boot started.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/linode/instances/123/boot
- - lang: CLI
- source: |
- linode-cli linodes boot 123
- parameters:
- - name: linodeId
- in: path
- description: The ID of the Linode to boot.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/clone':
- post:
- x-linode-charge: true
- 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:
- - 'linodes:read_write'
- requestBody:
- 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
- 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.
- * 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
- 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.
- * **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
- private_ip:
- type: boolean
- description: |
- If true, the created Linode will have private networking enabled and assigned a private IPv4 address.
- * Can only be provided when cloning to a new Linode.
- example: true
- responses:
- '200':
- description: Clone started.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Linode'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "region": "us-east",
- "type": "g6-standard-2",
- "linode_id": 124,
- "label": "cloned-linode",
- "group": "Linode-Group",
- "backups_enabled": true,
- "disks": [25674],
- "configs": [23456],
- "private_ip": true
- }' \
- https://api.linode.com/v4/linode/instances/123/clone
- - lang: CLI
- source: |
- linode-cli linodes clone 123 \
- --linode_id 124 \
- --region us-east \
- --type g6-standard-2 \
- --label cloned-linode \
- --backups_enabled true \
- --disks 25674 \
- --configs 23456 \
- --private_ip true
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to clone.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/configs':
- get:
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up Configuration profiles for.
- required: true
- schema:
- type: integer
- 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:
- - 'linodes:read_only'
- responses:
- '200':
- description: |
- Returns an array of Configuration profiles associated with this Linode.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/LinodeConfig'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances/123/configs
- - lang: CLI
- source: |
- linode-cli linodes configs-list 123
- post:
- tags:
- - Linode Instances
- summary: Configuration Profile Create
- description: |
- Adds a new Configuration profile to a Linode.
- operationId: addLinodeConfig
- x-linode-cli-action: config-create
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_write'
- requestBody:
- description: |
- The parameters to set when creating the Configuration profile.
- This determines which kernel, devices, how much memory, etc. a Linode boots with.
- required: true
- content:
- application/json:
- schema:
- required:
- - label
- - devices
- allOf:
- - $ref: '#/components/schemas/LinodeConfig'
- responses:
- '200':
- description: |
- A Configuration profile was created.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/LinodeConfig'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "kernel": "linode/latest-64bit",
- "comments": "This is my main Config",
- "memory_limit": 2048,
- "run_level": "default",
- "virt_mode": "paravirt",
- "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 linodes config-create 7590910 \
- --label "My Config" \
- --devices.sda.disk_id 123456 \
- --devices.sdb.disk_id 123457
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up Configuration profiles for.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/configs/{configId}':
- get:
- 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:
- - 'linodes:read_only'
- responses:
- '200':
- description: A Configuration profile object.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/LinodeConfig'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances/123/configs/23456
- - lang: CLI
- source: |
- linode-cli linodes config-view 123 23456
- 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
- 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:
- - '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
- responses:
- '200':
- description: Configuration profile successfully updated.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/LinodeConfig'
- default:
- $ref: '#/components/responses/ErrorResponse'
- 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
- 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:
- - 'linodes:read_write'
- responses:
- '200':
- description: |
- Configuration profile successfully deleted.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/linode/instances/123/configs/23456
- - lang: CLI
- source: |
- linode-cli linodes config-delete 123 23456
- 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
- '/linode/instances/{linodeId}/disks':
- get:
- x-linode-grant: read_only
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up.
- required: true
- schema:
- type: integer
- 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:
- - 'linodes:read_only'
- responses:
- '200':
- description: Returns a paginated list of disks associated with this Linode.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/Disk'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances/123/disks
- - lang: CLI
- source: |
- linode-cli linodes disks-list 123
- post:
- tags:
- - Linode Instances
- summary: Disk Create
- 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.
-
- * 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 parameters to set when creating the Disk.
- required: true
- content:
- application/json:
- schema:
- required:
- - size
- allOf:
- - $ref: '#/components/schemas/DiskRequest'
- responses:
- '200':
- description: Disk created.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Disk'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "label": "Debian 9 Disk",
- "image": "linode/debian9",
- "size": 1300,
- "authorized_keys": [
- "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
- ],
- "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 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"}'
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/disks/{diskId}':
- 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'
- responses:
- '200':
- description: Returns a single Disk object.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Disk'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances/123/disks/25674
- - lang: CLI
- source: |
- linode-cli linodes disk-view 123 25674
- 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
- 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.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Disk'
- responses:
- '200':
- description: The updated Disk.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Disk'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "label": "Debian 9 Disk"
- }' \
- https://api.linode.com/v4/linode/instances/123/disks/25674
- - lang: CLI
- source: |
- linode-cli linodes disk-update 123 25674 \
- --label "Debian 9 Disk"
- 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
- 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:
- - 'linodes:read_write'
- responses:
- '200':
- description: Delete successful
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/linode/instances/123/disks/25674
- - lang: CLI
- source: |
- linode-cli linodes disk-delete 123 24674
- 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
- '/linode/instances/{linodeId}/disks/{diskId}/clone':
- 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:
- - 'linodes:read_write'
- responses:
- '200':
- description: Disk clone initiated.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Disk'
- default:
- $ref: '#/components/responses/ErrorResponse'
- 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
- '/linode/instances/{linodeId}/disks/{diskId}/password':
- post:
- 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:
- - '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
- responses:
- '200':
- description: Returns a single Disk object.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "password": "another@complex^Password123"
- }' \
- https://api.linode.com/v4/linode/instances/123/disks/25674/password
- - lang: CLI
- source: |
- linode-cli linodes disk-reset-password \
- 123 25674 \
- --password aComplex@Password
- 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
- '/linode/instances/{linodeId}/disks/{diskId}/resize':
- 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:
- - '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
- 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
- '/linode/instances/{linodeId}/firewalls':
- get:
- x-linode-grant: read_only
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up.
- required: true
- schema:
- type: integer
- tags:
- - Linode Instances
- summary: Firewalls List
- description: |
- 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 a paginated list of Firewalls associated with this Linode.
- 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':
- get:
- 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:
- - 'linodes:read_only'
- responses:
- '200':
- description: Requested Linode's networking configuration.
- content:
- application/json:
- schema:
- properties:
- ipv4:
- type: object
- description: |
- Information about this Linode's IPv4 addresses.
- readOnly: true
- properties:
- public:
- type: array
- items:
- $ref: '#/components/schemas/IPAddress'
- description: |
- A list of public IP Address objects belonging to this Linode.
- readOnly: true
- private:
- type: array
- items:
- $ref: '#/components/schemas/IPAddressPrivate'
- description: |
- A list of private IP Address objects belonging to this Linode.
- readOnly: true
- shared:
- type: array
- readOnly: true
- items:
- $ref: '#/components/schemas/IPAddress'
- 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'
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- https://api.linode.com/v4/linode/instances/123/ips
- - lang: CLI
- source: |
- linode-cli linodes 123 ips-list
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up.
- required: true
- schema:
- type: integer
- 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:
- - 'linodes:read_write'
- requestBody:
- description: Information about the address you are creating.
- required: true
- content:
- application/json:
- schema:
- required:
- - type
- - public
- properties:
- type:
- type: string
- enum:
- - ipv4
- description: |
- The type of address you are allocating. Only IPv4 addresses may be allocated through this endpoint.
- example: ipv4
- public:
- type: boolean
- description: |
- Whether to create a public or private IPv4 address.
- example: true
- responses:
- '200':
- description: IP address was successfully allocated.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/IPAddress'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "type": "ipv4",
- "public": true
- }' \
- https://api.linode.com/v4/linode/instances/123/ips
- - lang: CLI
- source: |
- linode-cli linodes ip-add 123 \
- --type ipv4 \
- --public true
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/ips/{address}':
- get:
- 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:
- - 'linodes:read_only'
- responses:
- '200':
- description: A single IP address.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/IPAddress'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- https://api.linode.com/v4/linode/instances/123/ips/97.107.143.141
- - lang: CLI
- source: |
- linode-cli linodes ip-view 123 97.107.143.141
- 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
- put:
- x-linode-grant: read_write
- tags:
- - Linode Instances
- summary: IP Address Update
- description: |
- Updates a the reverse DNS (RDNS) for a particular IP Address associated with this Linode.
-
- Setting the RDNS to `null` for a public IPv4 address, resets it to the default "ip.linodeusercontent.com" RDNS value.
- operationId: updateLinodeIP
- x-linode-cli-action: ip-update
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_write'
- requestBody:
- description: The information to update for the IP address.
- content:
- application/json:
- schema:
- required:
- - rdns
- type: object
- properties:
- rdns:
- type: string
- description: |
- The reverse DNS assigned to this address. For public IPv4 addresses, this will be set to a default value provided by Linode if not explicitly set.
- nullable: true
- example: test.example.org
- responses:
- '200':
- description: The updated IP address record.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/IPAddress'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "rdns": "test.example.org"
- }' \
- https://api.linode.com/v4/linode/instances/123/ips/203.0.113.1
- - lang: CLI
- source: |
- linode-cli linodes ip-update 123 \
- 203.0.113.1 \
- --rdns test.example.org
- 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
- delete:
- x-linode-grant: read_write
- tags:
- - Linode Instances
- summary: IPv4 Address Delete
- description: |
- 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:
- - 'linodes:read_write'
- responses:
- '200':
- description: IP address successfully removed.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/linode/instances/123/ips/97.107.143.141
- - lang: CLI
- source: |
- linode-cli linodes ip-delete 97.107.143.141
- 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
- /linode/kernels:
- get:
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- tags:
- - Linode Instances
- summary: Kernels List
- description: |
- Lists available Kernels.
- operationId: getKernels
- x-linode-cli-action:
- - list
- - ls
- responses:
- '200':
- description: Returns an array of Kernels.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/Kernel'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl https://api.linode.com/v4/linode/kernels
- - lang: CLI
- source: |
- linode-cli kernels list
- '/linode/kernels/{kernelId}':
- get:
- tags:
- - Linode Instances
- summary: Kernel View
- description: |
- Returns information about a single Kernel.
- operationId: getKernel
- x-linode-cli-action: view
- responses:
- '200':
- description: A single Kernel object.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Kernel'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl https://api.linode.com/v4/linode/kernels/linode/latest-64bit
- - lang: CLI
- source: |
- linode-cli kernels view latest-64bit
- parameters:
- - name: kernelId
- in: path
- description: ID of the Kernel to look up.
- required: true
- schema:
- type: string
- '/linode/instances/{linodeId}/migrate':
- 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
- 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"
- }' \
- https://api.linode.com/v4/linode/instances/123/migrate
- - lang: CLI
- source: |
- linode-cli linodes migrate 123 --region us-central
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to migrate.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/mutate':
- post:
- 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
- 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
- responses:
- '200':
- description: Mutate started.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/linode/instances/123/mutate
- - lang: CLI
- source: |
- linode-cli linodes upgrade 123
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to mutate.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/nodebalancers':
- get:
- x-linode-grant: read_only
- tags:
- - Linode Instances
- summary: Linode NodeBalancers View
- description: |
- Returns a list of NodeBalancers that are assigned to this Linode and readable by the requesting User.
-
- 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:
- - 'linodes:read_only'
- responses:
- '200':
- description: Returns a paginated list of NodeBalancers.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/NodeBalancer'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances/123/nodebalancers
- - lang: CLI
- source: |
- linode-cli linodes nodebalancers 123
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/password':
- 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.
- 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.
- content:
- application/json:
- schema:
- 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: Password Reset.
- 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 '{
- "root_pass": "a$eCure4assw0rd!43v51"
- }' \
- https://api.linode.com/v4/linode/instances/123/password
- - lang: CLI
- source: |
- linode-cli linodes linode-reset-password 123 a$eCure4assw0rd!43v51
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode for which to reset its root password.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/reboot':
- 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.
- tags:
- - Linode Instances
- operationId: rebootLinodeInstance
- x-linode-cli-action: reboot
- security:
- - personalAccessToken: []
- - oauth:
- - '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: Reboot started.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/linode/instances/123/reboot
- - lang: CLI
- source: |
- linode-cli linodes reboot 123
- parameters:
- - name: linodeId
- in: path
- description: ID of the linode to reboot.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/rebuild':
- post:
- x-linode-grant: read_write
- summary: Linode Rebuild
- description: |
- Rebuilds a Linode you have the `read_write` permission to modify.
- A rebuild will first shut down the Linode, delete all disks and configs on the Linode, and then deploy a new `image` to the Linode with the given attributes. Additionally:
-
- * Requires an `image` be supplied.
- * Requires a `root_pass` be supplied to use for the root User's Account.
- * It is recommended to supply SSH keys for the root User using the
- `authorized_keys` field.
- tags:
- - Linode Instances
- operationId: rebuildLinodeInstance
- x-linode-cli-action: rebuild
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_write'
- requestBody:
- description: The requested state your Linode will be rebuilt into.
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - image
- - root_pass
- allOf:
- - $ref: '#/components/schemas/LinodeRequest'
- responses:
- '200':
- description: Rebuild started.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Linode'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "image": "linode/debian9",
- "root_pass": "aComplexP@ssword",
- "authorized_keys": [
- "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
- ],
- "authorized_users": [
- "myUsername",
- "secondaryUsername"
- ],
- "booted": true,
- "stackscript_id": 10079,
- "stackscript_data": {
- "gh_username": "linode"
- }
- }' \
- https://api.linode.com/v4/linode/instances/123/rebuild
- - lang: CLI
- source: |
- linode-cli linodes rebuild 123 \
- --image "linode/debian9" \
- --root_pass aComplex@Password \
- --authorized_keys "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer" \
- --authorized_users "myUsername" \
- --authorized_users "secondaryUsername" \
- --booted true \
- --stackscript_id 10079 \
- --stackscript_data '{"gh_username": "linode"}'
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to rebuild.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/rescue':
- post:
- 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
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to rescue.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/resize':
- post:
- x-linode-grant: read_write
- summary: Linode Resize
- 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_write'
- requestBody:
- 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:
- 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: Resize started.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "type": "g6-standard-2"
- }' \
- https://api.linode.com/v4/linode/instances/123/resize
- - lang: CLI
- source: |
- linode-cli linodes resize 123 \
- --type g6-standard-2
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to resize.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/shutdown':
- post:
- 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_write'
- responses:
- '200':
- description: Shutdown started.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/linode/instances/123/shutdown
- - lang: CLI
- source: |
- linode-cli linodes shutdown 123
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to shutdown.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/transfer':
- get:
- x-linode-grant: read_only
- 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_only'
- responses:
- '200':
- description: A collection of the specified Linode's network transfer statistics.
- content:
- application/json:
- schema:
- 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
- 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/transfer
- - lang: CLI
- source: |
- linode-cli linodes transfer-view 123
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/transfer/{year}/{month}':
- get:
- x-linode-grant: read_only
- 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_only'
- responses:
- '200':
- description: |
- A collection of the specified Linode's network transfer statistics for the requested month.
- 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
- 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/transfer/2018/01
- 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
- '/linode/instances/{linodeId}/stats':
- get:
- 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_only'
- responses:
- '200':
- description: The Linode's stats for the past 24 hours.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/LinodeStats'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances/123/stats
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up.
- required: true
- schema:
- type: integer
- '/linode/instances/{linodeId}/stats/{year}/{month}':
- get:
- tags:
- - Linode Instances
- summary: Statistics View (year/month)
- description: |
- Returns statistics for a specific month. The year/month values must be either a date in the past, or the current month. If the current month, statistics will be retrieved for the past 30 days.
- operationId: getLinodeStatsByYearMonth
- x-linode-cli-skip: true
- x-linode-cli-action: stats-month
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_only'
- responses:
- '200':
- description: The Linode's statistics for the requested period.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/LinodeStats'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances/123/stats/2018/01
- 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
- '/linode/instances/{linodeId}/volumes':
- get:
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up.
- required: true
- schema:
- type: integer
- tags:
- - Linode Instances
- summary: Linode's Volumes List
- description: |
- View Block Storage Volumes attached to this Linode.
- operationId: getLinodeVolumes
- x-linode-cli-action: volumes
- security:
- - personalAccessToken: []
- - oauth:
- - 'linodes:read_only'
- responses:
- '200':
- description: |
- Returns an array of Block Storage Volumes attached to this Linode.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/Volume'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances/123/volumes
- - lang: CLI
- source: |
- linode-cli linode volumes 123
- /linode/stackscripts:
- get:
- x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- tags:
- - StackScripts
- summary: StackScripts List
- description: |
- If the request is not authenticated, only public StackScripts are returned.
-
- For more information on StackScripts, please read our [StackScripts documentation](/docs/products/tools/stackscripts/).
- operationId: getStackScripts
- x-linode-cli-action:
- - list
- - ls
- security:
- - personalAccessToken: []
- - oauth:
- - 'stackscripts:read_only'
- responses:
- '200':
- description: |
- A list of StackScripts available to the User, including private StackScripts owned by the User if the request is authenticated.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/StackScript'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl https://api.linode.com/v4/linode/stackscripts
- - lang: CLI
- source: |
- linode-cli stackscripts list
- post:
- x-linode-grant: add_stackscripts
- tags:
- - StackScripts
- summary: StackScript Create
- description: |
- Creates a StackScript in your Account.
- operationId: addStackScript
- x-linode-cli-action: create
- security:
- - personalAccessToken: []
- - oauth:
- - 'stackscripts:read_write'
- requestBody:
- description: The properties to set for the new StackScript.
- required: true
- content:
- application/json:
- schema:
- required:
- - script
- - label
- - images
- allOf:
- - $ref: '#/components/schemas/StackScript'
- responses:
- '200':
- description: StackScript successfully created.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/StackScript'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "label": "a-stackscript",
- "description": "This StackScript installs and configures MySQL",
- "images": [
- "linode/debian9",
- "linode/debian8"
- ],
- "is_public": true,
- "rev_note": "Set up MySQL",
- "script": "#!/bin/bash"
- }' \
- https://api.linode.com/v4/linode/stackscripts
- - lang: CLI
- source: |
- linode-cli stackscripts create \
- --label a-stackscript \
- --description "This StackScript install and configures MySQL" \
- --images "linode/debian9" \
- --images "linode/debian8" \
- --is_public true \
- --rev_note "Set up MySQL" \
- --script '#!/bin/bash'
- '/linode/stackscripts/{stackscriptId}':
- get:
- x-linode-grant: read_only
- tags:
- - StackScripts
- summary: StackScript View
- description: |
- Returns all of the information about a specified StackScript, including the contents of the script.
- operationId: getStackScript
- x-linode-cli-action: view
- security:
- - personalAccessToken: []
- - oauth:
- - 'stackscripts:read_only'
- responses:
- '200':
- description: A single StackScript.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/StackScript'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl https://api.linode.com/v4/linode/stackscripts/10079
- - lang: CLI
- source: |
- linode-cli stackscripts view 10079
- parameters:
- - name: stackscriptId
- in: path
- description: The ID of the StackScript to look up.
- required: true
- schema:
- type: string
- put:
- x-linode-grant: read_write
- tags:
- - StackScripts
- summary: StackScript Update
- description: |
- Updates a StackScript.
-
- **Once a StackScript is made public, it cannot be made private.**
- operationId: updateStackScript
- x-linode-cli-action: update
- security:
- - personalAccessToken: []
- - oauth:
- - 'stackscripts:read_write'
- requestBody:
- description: The fields to update.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/StackScript'
- responses:
- '200':
- description: StackScript was successfully modified.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/StackScript'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "label": "a-stackscript",
- "description": "This StackScript installs and configures MySQL",
- "images": [
- "linode/debian9",
- "linode/debian8"
- ],
- "is_public": true,
- "rev_note": "Set up MySQL",
- "script": "#!/bin/bash"
- }' \
- https://api.linode.com/v4/linode/stackscripts/10079
- - lang: CLI
- source: |
- linode-cli stackscripts update 10079 \
- --label a-stackscript \
- --description "This StackScript installs \
- and configures MySQL" \
- --images "linode/debian9" \
- --images "linode/debian8" \
- --is_public true \
- --rev_note "Set up MySQL" \
- --script '#!/bin/bash'
- parameters:
- - name: stackscriptId
- in: path
- description: The ID of the StackScript to look up.
- required: true
- schema:
- type: string
- delete:
- x-linode-grant: read_write
- tags:
- - StackScripts
- summary: StackScript Delete
- description: |
- Deletes a private StackScript you have permission to `read_write`. You cannot delete a public StackScript.
- operationId: deleteStackScript
- x-linode-cli-action:
- - delete
- - rm
- security:
- - personalAccessToken: []
- - oauth:
- - 'stackscripts:read_write'
- responses:
- '200':
- description: StackScript was deleted.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/linode/stackscripts/10079
- - lang: CLI
- source: |
- linode-cli stackscripts delete 10079
- parameters:
- - name: stackscriptId
- in: path
- description: The ID of the StackScript to look up.
- required: true
- schema:
- type: string
- /linode/types:
- get:
- tags:
- - Linode Types
- summary: Types List
- 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
- responses:
- '200':
- description: A collection of Linode Types.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/LinodeType'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl https://api.linode.com/v4/linode/types
- - lang: CLI
- source: |
- linode-cli linodes types
- '/linode/types/{typeId}':
- get:
- 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
- parameters:
- - name: typeId
- in: path
- description: The ID of the Linode Type to look up.
- required: true
- schema:
- type: string
diff --git a/providers/src/linode/v00.00.00000/services/linode.yaml b/providers/src/linode/v00.00.00000/services/linode.yaml
new file mode 100644
index 00000000..981846b3
--- /dev/null
+++ b/providers/src/linode/v00.00.00000/services/linode.yaml
@@ -0,0 +1,28908 @@
+openapi: 3.0.1
+info:
+ title: linode API
+ description: linode linode API
+ version: 4.208.1
+paths:
+ /linode/instances:
+ post:
+ 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.\n\nLinodes can be created\
+ \ using one of the available Types. Run [List Linode types](https://techdocs.akamai.com/linode-api/reference/get-linode-types)\
+ \ to get more information about each Type's specs and cost.\n\nLinodes can\
+ \ be created in any one of our available Regions, which are accessible from\
+ \ the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions)\
+ \ operation.\n\nIn 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 our guide on [Running a Mail\
+ \ Server](https://www.linode.com/docs/guides/running-a-mail-server/).\n\n\
+ __Important__. You must be an unrestricted User in order to add or modify\
+ \ tags on Linodes.\n\nLinodes can be created in a number of ways:\n\n- Using\
+ \ a Linode Public Image distribution or a Private Image you created based\
+ \ on another Linode.\n\n - Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images)\
+ \ operation with authentication to view all available Images.\n\n - The Linode\
+ \ will be `running` after it completes `provisioning`.\n - A default config\
+ \ with two Disks, one being a 512 swap disk, is created.\n - `swap_size`\
+ \ can be used to customize the swap disk size.\n - Requires a `root_pass`\
+ \ be supplied to use for the root User's Account.\n - It is recommended to\
+ \ supply SSH keys for the root User using the `authorized_keys` field.\n \
+ \ - You may also supply a list of usernames via the `authorized_users` field.\n\
+ \ - These users must have an SSH Key associated with your Profile first.\
+ \ See the [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key))\
+ \ operation for more information.\n\n- Using cloud-init with [Metadata](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/).\n\
+ \ - Automate system configuration and software installation by providing\
+ \ a base-64 encoded [cloud-config](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata-cloud-config/)\
+ \ file.\n - Requires a compatible Image. You can determine compatible Images\
+ \ by checking for `cloud-init` under `capabilities` when running [List images](https://techdocs.akamai.com/linode-api/reference/get-images).\n\
+ \ - Requires a compatible Region. You can determine compatible Regions by\
+ \ checking for `Metadata` under `capabilities` when running [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions).\n\
+ \n- Using a StackScript.\n\n - Run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts)\
+ \ for a list of available StackScripts.\n - The Linode will be `running`\
+ \ after it completes `provisioning`.\n - Requires a compatible Image to be\
+ \ supplied.\n - Run [Get a StackScript](https://techdocs.akamai.com/linode-api/reference/get-stack-script)\
+ \ for compatible Images.\n - Requires a `root_pass` be supplied to use for\
+ \ the root User's Account.\n - It is recommended to supply SSH keys for the\
+ \ root User using the `authorized_keys` field.\n - You may also supply a\
+ \ list of usernames via the `authorized_users` field.\n - These users must\
+ \ have an SSH Key associated with your Profile first. See [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key)\
+ \ for more information.\n\n- Using one of your other Linode's backups.\n \
+ \ - You must create a Linode large enough to accommodate the Backup's size.\n\
+ \ - The Disks and Config will match that of the Linode that was backed up.\n\
+ \ - The `root_pass` will match that of the Linode that was backed up.\n\n\
+ - Attached to a private VLAN.\n - Review the `interfaces` property of the\
+ \ [Request Body Schema](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)\
+ \ for details.\n - For more information, see our guide on [Getting Started\
+ \ with VLANs](https://www.linode.com/docs/products/networking/vlans/get-started/).\n\
+ \n- Create an empty Linode.\n - The Linode will remain `offline` and must\
+ \ be manually started.\n - Run [Boot a Linode](https://techdocs.akamai.com/linode-api/reference/post-boot-linode-instance).\n\
+ \ - Disks and Configs must be created manually.\n - This is only recommended\
+ \ for advanced use cases.\n\nDepending on your [account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings),\
+ \ you can choose between legacy configuration interfaces or Linode interfaces\
+ \ when creating a Linode. Only one type of interface is allowed per Linode.\
+ \ The `interface_generation` field lets you select one interface type for\
+ \ new Linodes when both legacy and Linode interfaces options are available\
+ \ on your account. If a Linode is configured with a Linode interface, legacy\
+ \ configuration interfaces can no longer be used on that Linode.\n\n[Learn\
+ \ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-linode-instance
+ operationId: post-linode-instance
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: Common properties for creating and rebuilding Linodes.
+ properties:
+ authorized_keys:
+ description: __Write-only__ A list of public SSH keys that will
+ be automatically appended to the root user's `~/.ssh/authorized_keys`
+ file when deploying from an Image.
+ example:
+ - ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer
+ items:
+ type: string
+ type: array
+ writeOnly: true
+ authorized_users:
+ description: __Write-only__ A list of usernames. If the usernames
+ have associated SSH keys, the keys will be appended to the root
+ users `~/.ssh/authorized_keys` file automatically when deploying
+ from an Image.
+ example:
+ - myUser
+ - secondaryUser
+ items:
+ type: string
+ type: array
+ writeOnly: true
+ booted:
+ default: true
+ description: __Write-only__ This field defaults to `true` if the
+ Linode is created with an Image or from a Backup. If it is deployed
+ from an Image or a Backup and you wish it to remain `offline`
+ after deployment, set this to `false`.
+ type: boolean
+ writeOnly: true
+ disk_encryption:
+ description: 'Local disk encryption ensures that your data stored
+ on Linodes is secured. Disk encryption protects against unauthorized
+ data access by keeping the data encrypted if the disk is ever
+ removed from the data center, decommissioned, or disposed of.
+ The platform manages the encryption and decryption for you.
+
+
+ By default, encryption is `enabled` on all Linodes. If you opted
+ out of encryption or if the Linode was created prior to local
+ disk encryption support, you can encrypt your data using [Rebuild](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance).'
+ enum:
+ - enabled
+ - disabled
+ type: string
+ x-linode-cli-display: 8
+ image:
+ description: 'An Image ID to deploy the Linode Disk from.
+
+
+ Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images)
+ operation with authentication to view all available Images.
+ Official Linode Images start with `linode/`, while your Account''s
+ Images start with `private/`. Creating a disk from a Private
+ Image requires `read_only` or `read_write` permissions for that
+ Image. Run the [Update a user''s grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants)
+ operation to adjust permissions for an Account Image.'
+ example: linode/debian9
+ type: string
+ metadata:
+ additionalProperties: false
+ description: __Write-only__ An object containing user-defined
+ data relevant to the creation of Linodes.
+ properties:
+ user_data:
+ description: 'Base64-encoded [cloud-config](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata-cloud-config/)
+ data.
+
+
+ Cannot be modified after provisioning. To update, use either
+ the [Clone a Linode](https://techdocs.akamai.com/linode-api/reference/post-clone-linode-instance)
+ or [Rebuild a Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance)
+ operations.
+
+
+ Must not be included when cloning to an existing Linode.
+
+
+ Unencoded data must not exceed 65535 bytes, or about 16kb
+ encoded.'
+ example: I2Nsb3VkLWNvbmZpZwpwYWNrYWdlX3VwZGF0ZTogdHJ1ZQpwYWNrYWdlX3VwZ3JhZGU6IHRydWU=
+ format: byte
+ type: string
+ type: object
+ writeOnly: true
+ root_pass:
+ description: '__Write-only__ This sets the root user''s password
+ on a newly created Linode Disk when deploying from an Image.
+
+
+ - __Required__ when creating a Linode Disk from an Image, including
+ when using a StackScript.
+
+
+ - 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: aComplexP@ssword
+ format: password
+ maxLength: 128
+ minLength: 7
+ type: string
+ writeOnly: true
+ stackscript_data:
+ description: 'This field is required only if the StackScript being
+ deployed requires input data from the User for successful completion.
+ See [User Defined Fields (UDFs)](https://www.linode.com/docs/products/tools/stackscripts/guides/write-a-custom-script/#declare-user-defined-fields-udfs)
+ for more details.
+
+
+ This field is required to be valid JSON.
+
+
+ Total length cannot exceed 65,535 characters.'
+ example:
+ gh_username: linode
+ maxLength: 65535
+ type: object
+ stackscript_id:
+ description: A StackScript ID that will cause the referenced StackScript
+ to be run during deployment of this Linode. A compatible `image`
+ is required to use a StackScript. To get a list of available
+ StackScript and their permitted Images, run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts).
+ This field cannot be used when deploying from a Backup or a
+ Private Image.
+ example: 10079
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/linode-request.yaml
+ - properties:
+ backup_id:
+ 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. Run [List
+ backups](https://techdocs.akamai.com/linode-api/reference/get-backups)
+ for a Linode''s available backups.
+
+
+ This field and the `image` field are mutually exclusive.'
+ example: 1234
+ type: integer
+ backups_enabled:
+ 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 [Get account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings)
+ for more information.
+
+
+ Backup pricing is included in the response from [List types](https://techdocs.akamai.com/linode-api/reference/get-linode-types)'
+ type: boolean
+ firewall_id:
+ description: The `id` of the Firewall to attach this Linode to
+ upon creation. This `firewall_id` field is for Linodes using
+ VLAN and legacy configuration interfaces only.
+ type: integer
+ group:
+ deprecated: true
+ description: __Deprecated__, __Filterable__ The group label for
+ this Linode.
+ example: Linode-Group
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ status: DEPRECATED
+ x-linode-filterable: true
+ interface_generation:
+ description: '__Beta__ Specifies the interface type for the Linode.
+ The value can be either `legacy_config` or `linode`. The default
+ value is determined by the `interfaces_for_new_linodes` setting
+ in the [account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings).
+ If the `interface_generation` option is set to `linode`, legacy
+ configuration interfaces can no longer be used on the Linode.
+
+ - If `interfaces_for_new_linodes` is set to `linode_only`, set
+ `interface_generation` to `linode` or omit it for Linode interfaces.
+
+ - If `interfaces_for_new_linodes` is set to `legacy_config_only`,
+ set `interface_generation` to `legacy_config` or omit it for
+ legacy configuration interfaces.
+
+ - If `interfaces_for_new_linodes` is set to `linode_default_but_legacy_config_allowed`,
+ set `interface_generation` to `linode` or omit it for Linode
+ interfaces, and to `legacy_config` if the Linode uses legacy
+ configuration interfaces.
+
+ - If `interfaces_for_new_linodes` is set to `legacy_config_default_but_linode_allowed`,
+ set `interface_generation` to `legacy_config` or omit it for
+ legacy configuration interfaces, and to `linode` if the Linode
+ uses Linode interfaces.'
+ enum:
+ - legacy_config
+ - linode
+ nullable: true
+ type: string
+ x-akamai:
+ status: BETA
+ interfaces:
+ default: []
+ description: Interfaces for the Linode. This can be a Linode interface
+ or legacy configuration interface.
+ items:
+ oneOf:
+ - description: 'Defines Linode interfaces. You can configure
+ interfaces for one of the following types: `vpc`, `public`,
+ or `vlan`. Any other type must either be omitted or set
+ to `null`.'
+ oneOf:
+ - additionalProperties: false
+ description: Defines a Linode public interface. Any other
+ type must either be omitted or set to `null`.
+ properties:
+ default_route:
+ additionalProperties: false
+ description: Indicates if the interface serves as the
+ default route when multiple interfaces are eligible
+ for this role. A public interface can have both an
+ IPv4 `default_route` and an IPv6 `default_route`,
+ provided it has at least one IP address of the corresponding
+ type.
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: If set to `true`, the interface is
+ used for the IPv4 `default_route`. Only one interface
+ per Linode can be set as the IPv4 default route.
+ example: true
+ nullable: true
+ type: boolean
+ ipv6:
+ additionalProperties: false
+ description: If set to `true`, the interface is
+ used for the IPv6 `default_route`. Only one interface
+ per Linode can have the IPv6 default route.
+ example: true
+ nullable: true
+ type: boolean
+ type: object
+ firewall_id:
+ additionalProperties: false
+ description: The enabled firewall to secure a VPC or
+ public interface. Not allowed for VLAN interfaces.
+ If a `firewall_id` is not provided for a VPC or a
+ public interface, then its [default interface firewall](https://techdocs.akamai.com/linode-api/reference/get-linode-interface-firewalls)
+ is used. If a default firewall is not available, and
+ `null` is not specified, the request fails. Setting
+ the `firewall_id` as `null` indicates that no firewall
+ device will be attached to the interface.
+ example:
+ - 123
+ - null
+ nullable: true
+ type: integer
+ public:
+ additionalProperties: false
+ description: Public interface settings. A Linode can
+ have only one public interface. A public interface
+ can have both IPv4 and IPv6 configurations.
+ nullable: true
+ properties:
+ ipv4:
+ description: IPv4 address settings for this public
+ interface. If omitted, a public IPv4 address is
+ automatically allocated.
+ properties:
+ addresses:
+ description: List of IPv4 addresses to assign
+ to this interface. Setting any to `auto` allocates
+ a public IPv4 address. To create a public
+ interface that uses IPv6 and no IPv4, set
+ the IPv4 address as an empty list `[]`.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ anyOf:
+ - example: 192.0.2.141
+ format: ip
+ minLength: 1
+ title: User assigned IPv4
+ type: string
+ - enum:
+ - auto
+ title: Automatically assigned IPv4
+ type: string
+ - example: []
+ title: No IPv4 [empty list]
+ type: string
+ default: auto
+ description: "The interface's public IPv4\
+ \ address. You can specify which public\
+ \ IPv4 address to configure for the\
+ \ interface. Setting this to `auto`\
+ \ automatically allocates a public address.\
+ \ To create a public interface that\
+ \ uses IPv6 and no IPv4, set the IPv4\
+ \ address as an empty list `[]`. If\
+ \ the address is a reserved or automatically\
+ \ assigned, it needs to be reserved\
+ \ or already assigned to a single Linode,\
+ \ and it can\u2019t be assigned to any\
+ \ other interface."
+ type: string
+ primary:
+ default: false
+ description: 'The IPv4 primary address
+ configures the source address for routes
+ within the Linode on the corresponding
+ network interface.
+
+ - Don''t set this to `false` if there''s
+ only one address in the `addresses`
+ array.
+
+ - If more than one address is provided,
+ primary can be set to `true` for one
+ address.
+
+ - If only one address is present in
+ the `addresses` array, this address
+ is automatically set as the primary
+ address.'
+ example: true
+ type: boolean
+ type: object
+ type: array
+ type: object
+ ipv6:
+ description: IPv6 address settings for the public
+ interface.
+ properties:
+ ranges:
+ additionalProperties: false
+ description: IPv6 address ranges to assign to
+ this interface. If omitted, no ranges are
+ assigned.
+ items:
+ properties:
+ range:
+ default: null
+ description: 'Your assigned IPv6 range
+ in CIDR notation (`2001:0db8::1/64`)
+ or prefix (`/64`).
+
+ - The prefix of `/64` or `/56` block
+ of IPv6 addresses.
+
+ - If provided in CIDR notation, the
+ prefix must be within the assigned ranges
+ for the Linode.'
+ example:
+ - 2001:0a0a::1/64
+ - /64
+ type: string
+ required:
+ - range
+ type: object
+ type: array
+ type: object
+ type: object
+ title: Public interface
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-linode-interface-public.yaml
+ - additionalProperties: false
+ description: Defines a Linode VLAN interface. Any other
+ type must either be omitted or set to `null`.
+ properties:
+ vlan:
+ additionalProperties: false
+ description: VLAN interface settings. A Linode can have
+ up to three VLAN interfaces, with a unique `vlan_label`
+ for each.
+ nullable: true
+ properties:
+ ipam_address:
+ description: This VLAN interface's private IPv4
+ address in classless inter-domain routing (CIDR)
+ notation.
+ example: 10.0.0.1/24
+ format: ip/netmask
+ type: string
+ x-linode-cli-display: 4
+ vlan_label:
+ description: The VLAN's unique label. VLAN interfaces
+ on the same Linode must have a unique `vlan_label`.
+ example: my-vlan
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ title: VLAN interface
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-linode-interface-vlan.yaml
+ - additionalProperties: false
+ description: Defines a Linode VPC interface. Any other type
+ must either be omitted or set to `null`.
+ properties:
+ default_route:
+ additionalProperties: false
+ description: Indicates if the interface is used as the
+ default route when multiple interfaces are eligible
+ for this role. A VPC interface can have an IPv4 `default_route`.
+ properties:
+ ipv4:
+ description: If set to `true`, the interface is
+ used for the IPv4 `default_route`. Only one interface
+ per Linode can be set as the IPv4 default route.
+ example: true
+ nullable: true
+ type: boolean
+ type: object
+ firewall_id:
+ additionalProperties: false
+ description: The enabled firewall to secure a VPC or
+ public interface. Not allowed for VLAN interfaces.
+ If a `firewall_id` is not provided for a VPC or a
+ public interface, then its default interface firewall
+ is used. If a default firewall is not available, and
+ `null` is not specified, the request fails. Setting
+ the `firewall_id` as `null` indicates that no firewall
+ device will be attached to the interface.
+ example:
+ - 123
+ - null
+ nullable: true
+ type: integer
+ vpc:
+ additionalProperties: false
+ description: VPC interface settings. A Linode can have
+ one VPC interface. The maximum number of interfaces
+ allowed on a Linode is three.
+ nullable: true
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: Interfaces can be configured with IPv4
+ addresses or ranges.
+ properties:
+ addresses:
+ description: IPv4 address settings for this
+ VPC interface.
+ items:
+ properties:
+ address:
+ anyOf:
+ - example: 10.0.0.1
+ format: ip
+ minLength: 1
+ title: User assigned IPv4 from the VPC
+ subnet
+ type: string
+ - enum:
+ - auto
+ title: Automatically assigned IPv4
+ type: string
+ default: auto
+ description: Specifies which IPv4 address
+ to use in the VPC subnet. You can specify
+ which VPC Ipv4 address in the subnet
+ to configure for the interface. You
+ can't use an IPv4 address taken from
+ another Linode or interface, or the
+ first two or last two addresses in the
+ VPC subnet. When `address` is set to
+ `auto`, an IP address from the subnet
+ is automatically assigned.
+ type: string
+ nat_1_1_address:
+ anyOf:
+ - example: 203.0.113.2
+ format: ip
+ minLength: 1
+ title: User assigned public IPv4
+ type: string
+ - enum:
+ - auto
+ title: Automatically assigned public
+ IPv4
+ type: string
+ default: null
+ description: 'The 1:1 NAT IPv4 address
+ used to associate a public IPv4 address
+ with the interface''s VPC subnet IPv4
+ address.
+
+ - You can set this to a specific public
+ IPv4 address that''s available on the
+ Linode.
+
+ - If set to `auto`, a public IPv4 address
+ is automatically selected.
+
+ - If a public IPv4 address or `auto`
+ is specified, primary must be set to
+ `true`.
+
+ - The address can''t be used on another
+ Linode.
+
+ - If the address is a reserved or an
+ automatically assigned IP, the IP must
+ be reserved or already assigned to a
+ single Linode, and not assigned to an
+ interface.
+
+ - If this property is omitted or set
+ to `null`, no 1:1 NAT configuration
+ will be applied to the VPC interface.'
+ nullable: true
+ type: string
+ primary:
+ default: false
+ description: 'The IPv4 primary address
+ is used to configure the source address
+ for routes within the Linode on the
+ corresponding network interface.
+
+ Should not be set to `false` if there
+ is only one address present in the `addresses`
+ array.
+
+ If more than one address is provided,
+ primary must be set to `true` for one
+ address.
+
+ If only one address is present in the
+ `addresses` array, this address is automatically
+ set as the primary address.'
+ example: true
+ nullable: true
+ type: boolean
+ type: object
+ type: array
+ ranges:
+ description: VPC IPv4 ranges.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ default: null
+ description: 'CIDR notation of a range
+ (`1.2.3.4/24`) or prefix only (`/24`).
+
+ - When only the prefix is provided,
+ then an available range of that size
+ within the VPC''s subnet is automatically
+ selected.
+
+ - If specified as CIDR notation, it
+ must belong to the VPC subnet. All addresses
+ in the range must not be taken by any
+ other Linode or interfaces in the VPC
+ subnet and must not include any of the
+ first two or last two addresses of the
+ VPC subnet.'
+ example:
+ - 192.168.100.100/28
+ - 192.168.100.110/28
+ - /28
+ - 10.11.12.0/24
+ - auto
+ nullable: true
+ type: string
+ required:
+ - address
+ type: object
+ type: array
+ type: object
+ subnet_id:
+ description: "The VPC subnet identifier for this\
+ \ interface. Your subnet\u2019s VPC must be in\
+ \ the same data center (region) as the Linode."
+ example: 321
+ type: integer
+ required:
+ - subnet_id
+ type: object
+ title: VPC interface
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-linode-interface-vpc.yaml
+ title: Linode interface
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-linode-interface.yaml
+ - allOf:
+ - required:
+ - purpose
+ - additionalProperties: false
+ description: The network interface to apply to this Linode's
+ configuration profile.
+ properties:
+ active:
+ description: __Read-only__ Returns `true` if the interface
+ is in use, meaning that the Linode has been booted
+ using the configuration profile to which the interface
+ belongs.
+ example: true
+ readOnly: true
+ type: boolean
+ id:
+ description: __Read-only__ The unique ID representing
+ this interface.
+ example: 101
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip_ranges:
+ description: "IPv4 CIDR VPC subnet ranges that are routed\
+ \ to this interface.\n\nWhen included in a request:\n\
+ \n- A range can't include any addresses that are assigned\
+ \ to an active Linode or another VPC subnet.\n\n-\
+ \ When updating, you need to include any existing\
+ \ ranges to maintain them. If a range is left out,\
+ \ it will be removed.\n\n- Submit this as an empty\
+ \ array removes all existing values.\n\n- Omit this\
+ \ object to leave existing values as is.\n\n<>\n\
+ \n> \U0001F4D8\n>\n> This is only supported for interfaces\
+ \ with a `purpose` of `vpc`."
+ example:
+ - 10.0.0.64/26
+ - fd04:495a:691c:971c::1:0/112
+ items:
+ format: ip
+ type: string
+ nullable: true
+ type: array
+ ipam_address:
+ description: 'This interface''s private IP address in
+ classless inter-domain routing (CIDR) notation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - To avoid conflicting addresses, make sure this value
+ is unique for each `vlan` interface.
+
+
+ - This should be unique among devices attached to
+ the VLAN to avoid conflict.
+
+
+ - If Network Helper is enabled, the Linode''s interface
+ will be automatically configured to use this address
+ after the Linode is rebooted. If Network Helper is
+ disabled, enable the address using [manual static
+ IP configuration](https://www.linode.com/docs/guides/manual-network-configuration/).
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ ipv4:
+ additionalProperties: false
+ description: IPv4 addresses configured for this interface.
+ This only applies to interfaces with a `purpose` of
+ `vpc`. Returned as `null` if no `vpc` interface is
+ assigned.
+ properties:
+ nat_1_1:
+ anyOf:
+ - format: ip
+ minLength: 1
+ title: An available public IPv4 address
+ type: string
+ - enum:
+ - any
+ title: The assigned public IPv4 address
+ type: string
+ description: "The 1:1 NAT IPv4 address, used to\
+ \ associate a public IPv4 address with the interface's\
+ \ VPC subnet IPv4 address.\n\n- Only supported\
+ \ for interfaces with a `purpose` of `vpc`.\n\n\
+ - Returned as `null` if no 1:1 NAT is set for\
+ \ a `vpc` type interface.\n\n- Returned as an\
+ \ empty string (`\"\"`) for non-`vpc` type interfaces.\n\
+ \nWhen included in a request:\n\n- You can set\
+ \ this to a specific, public IPv4 address that's\
+ \ available on the Linode. You can also use the\
+ \ `any` keyword to enable the Linode's assigned\
+ \ public IPv4 address.\n\n- A specified address\
+ \ can't be shared with another Linode.\n\n- Omit\
+ \ this object or include it and set it to `null`\
+ \ or an empty string (`\"\"`) to block creation\
+ \ of a 1:1 NAT.\n\n<>\n\n> \U0001F4D8\n>\n\
+ > You can't set this to a specific IPv4 address\
+ \ when creating a new Linode. During the creation\
+ \ process, the network automatically establishes\
+ \ a public IPv4 address for the Linode. Since\
+ \ this address doesn't exist yet, you can't include\
+ \ a custom IPv4 address to change it. After your\
+ \ Linode is created, you can [update your configuration\
+ \ profile interface](https://www.linode.com/docs/api/linode-instances/#configuration-profile-interface-update)\
+ \ to change the `nat_1_1` address."
+ example: 203.0.113.2
+ nullable: true
+ type: string
+ vpc:
+ description: 'The VPC subnet IPv4 address for this
+ interface.
+
+
+ - This only applies to interfaces with a `purpose`
+ of `vpc`.
+
+
+ - Returned as an empty string (`""`) for non-`vpc`
+ type interfaces.
+
+
+ When included in a request:
+
+
+ - The `vpc` can''t be assigned to an existing
+ Linode as an address or in a range.
+
+
+ - The target address can''t be the first two or
+ last two addresses in the subnet IPv4 range.
+
+
+ - If omitted, a valid address within the Subnet
+ IPv4 range is automatically assigned.'
+ example: 10.0.0.2
+ format: ip
+ nullable: true
+ type: string
+ type: object
+ label:
+ description: '__Filterable__ The name of this interface.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Required.
+
+
+ - This needs to be unique among a Linode''s interfaces.
+ A Linode can''t be attached to the same VLAN multiple
+ times.
+
+
+ - This can only contain ASCII letters, numbers, and
+ dashes (`-`). You can''t use two consecutive dashes
+ (`--`).
+
+
+ - If the VLAN label is new, a VLAN is created. Up
+ to 10 VLANs can be created in each data center `region`.
+ To view your active VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans)
+ operation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: example-interface
+ maxLength: 64
+ minLength: 1
+ nullable: true
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ primary:
+ description: "The default route to the Linode. Each\
+ \ Linode can have one interface set as its `primary`.\
+ \ If you haven't specifically set a `primary`, the\
+ \ first non-`vlan` type interface is automatically\
+ \ treated as the primary.\n\n> \U0001F4D8\n>\n> This\
+ \ needs to be set to `false` for any interface that\
+ \ uses `vlan` as its `purpose`."
+ example: true
+ type: boolean
+ purpose:
+ description: 'The type of interface. This can be `public`,
+ `vlan`, or `vpc`.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - You can only define one `public` interface per Linode.
+
+
+ - The Linode''s default public IPv4 address is assigned
+ to the `public` interface.
+
+
+ - A Linode needs a `public` interface in the first
+ or `eth0` position to be reachable via the public
+ internet, after it boots. If no `public` interface
+ is configured, you can only access the Linode through
+ [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/),
+ or through another Linode that''s connected to the
+ same VLAN or VPC.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Configuring this `purpose` of interface attaches
+ a Linode to the VLAN with the specified `label`.
+
+
+ - If an `ipam_address` is configured, the Linode uses
+ this address.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - Configuring this `purpose` of interface attaches
+ a Linode to an existing VPC subnet with the specified
+ `subnet_id`.
+
+
+ - When the interface is activated, the Linode is configured
+ to use an IP address from the range in the assigned
+ VPC subnet. See `ipv4.vpc` for more information.'
+ enum:
+ - public
+ - vlan
+ - vpc
+ example: vlan
+ type: string
+ x-linode-cli-display: 3
+ subnet_id:
+ description: 'The `id` of the VPC subnet for this interface.
+ Use this value in a request to assign a Linode to
+ a VPC subnet.
+
+
+ - Required for `vpc` type interfaces.
+
+
+ - Returned as `null` for non-`vpc` type interfaces.
+
+
+ - Once you''ve assigned a VPC subnet to an interface,
+ you can''t update it.
+
+
+ - You need to reboot a Linode using the interface''s
+ configuration profile to assign the Linode to a VPC
+ subnet.'
+ example: 101
+ nullable: true
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured
+ for this interface. Returned as `null` for non-`vpc`
+ type interfaces.
+ example: 111
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - purpose
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config-interface.yaml
+ title: Legacy configuration interface
+ x-akamai:
+ file-path: schemas/added-post-linode-config-interface.yaml
+ type: object
+ type: array
+ label:
+ description: '__Filterable__ Provides a name for the Linode. If
+ not provided, the API generates one for it.
+
+
+ Linode labels have the following constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens (`-`),
+ underscores (`_`) or periods (`.`).
+
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods
+ (`..`) in a row.'
+ example: linode123
+ maxLength: 64
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ network_helper:
+ description: Enables the Network Helper feature. The default value
+ is determined by the `network_helper` setting in the [account
+ settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings).
+ This `network_helper` field is for Linodes using Linode interfaces
+ only.
+ nullable: true
+ type: boolean
+ placement_group:
+ additionalProperties: false
+ description: 'Include this to assign this Linode to an existing
+ [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/).
+ These constraints apply:
+
+
+ - The target placement group needs to be in the same `region`
+ set for this Linode.
+
+ - The placement group needs to have capacity. Run the [Get a
+ region](https://techdocs.akamai.com/linode-api/reference/get-region)
+ operation and note either the `maximum_linodes_per_pg` (strict)
+ or `maximum_linodes_per_flexible_pg` (flexible), based on your
+ selected `placement_group_policy`. These represent the Linode
+ limit per placement group, for each `placement_group_policy`
+ type. You can then run the [Get a placement group](https://techdocs.akamai.com/linode-api/reference/get-placement-group)
+ operation to review the Linodes in that group.'
+ properties:
+ id:
+ description: The placement group's ID. You need to provide
+ it for all operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: 1
+ type: object
+ private_ip:
+ description: If `true`, the created Linode will have private networking
+ enabled and assigned a private IPv4 address.
+ example: true
+ type: boolean
+ region:
+ description: The [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the Linode will be located.
+ example: us-east
+ type: string
+ swap_size:
+ default: 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.
+ example: 512
+ type: integer
+ tags:
+ description: __Filterable__ Tags to help you organize your content.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type:
+ description: The [Linode type](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ of the Linode you are creating.
+ example: g6-standard-2
+ type: string
+ type: object
+ required:
+ - type
+ - region
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-linode-instance.yaml
+ x-example:
+ x-ref: ../examples/post-linode-instance.json
+ description: The requested initial state of a new Linode.
+ required: true
+ x-linode-cli-allowed-defaults:
+ - authorized_users
+ - region
+ - image
+ - type
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ alerts:
+ additionalProperties: false
+ properties:
+ cpu:
+ description: 'The percentage of CPU usage required to trigger
+ an alert. If the average CPU usage over two hours exceeds
+ this value, we''ll send you an alert. Your Linode''s total
+ CPU capacity is represented as 100%, multiplied by its number
+ of cores.
+
+
+ For example, a two core Linode''s CPU capacity is represented
+ as 200%. If you want to be alerted at 90% of a two core
+ Linode''s CPU capacity, set the alert value to `180`.
+
+
+ The default value is 90% multiplied by the number of cores.
+
+
+ If the value is set to `0` (zero), the alert is disabled.'
+ example: 180
+ type: integer
+ io:
+ description: The amount of disk IO operation per second required
+ to trigger an alert. If the average disk IO over two hours
+ exceeds this value, we'll send you an alert. If set to `0`
+ (zero), this alert is disabled.
+ example: 10000
+ type: integer
+ network_in:
+ description: The amount of incoming traffic, in Mbit/s, required
+ to trigger an alert. If the average incoming traffic over
+ two hours exceeds this value, we'll send you an alert. If
+ this is set to `0` (zero), the alert is disabled.
+ example: 10
+ type: integer
+ network_out:
+ description: The amount of outbound traffic, in Mbit/s, required
+ to trigger an alert. If the average outbound traffic over
+ two hours exceeds this value, we'll send you an alert. If
+ this is set to `0` (zero), the alert is disabled.
+ example: 10
+ type: integer
+ transfer_quota:
+ description: The percentage of network transfer that may be
+ used before an alert is triggered. When this value is exceeded,
+ we'll alert you. If this is set to `0` (zero), the alert
+ is disabled.
+ example: 80
+ type: integer
+ type: object
+ backups:
+ additionalProperties: false
+ description: Information about this Linode's backups status. For
+ information about available backups, run [List backups](https://techdocs.akamai.com/linode-api/reference/get-backups).
+ properties:
+ available:
+ description: '__Read-only__ Whether Backups for this Linode
+ are available for restoration.
+
+
+ Backups undergoing maintenance are not available for restoration.'
+ example: true
+ readOnly: true
+ type: boolean
+ enabled:
+ description: __Read-only__ If this Linode has the Backup service
+ enabled. To enable backups, run [Enable backups](https://techdocs.akamai.com/linode-api/reference/post-enable-backups).
+ example: true
+ readOnly: true
+ type: boolean
+ last_successful:
+ description: __Read-only__ The last successful backup time.
+ Displayed as `null` if there was no previous backup.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ schedule:
+ additionalProperties: false
+ properties:
+ day:
+ description: 'The day of the week that your Linode''s
+ weekly backup is taken. If not set manually, a day will
+ be chosen for you. Backups are taken every day, but
+ backups taken on this day are preferred when selecting
+ backups to retain for a longer period.
+
+
+ If not set manually, then when backups are initially
+ enabled, this may come back as `Scheduling` until the
+ `day` is automatically selected.'
+ enum:
+ - Scheduling
+ - Sunday
+ - Monday
+ - Tuesday
+ - Wednesday
+ - Thursday
+ - Friday
+ - Saturday
+ example: Saturday
+ nullable: true
+ type: string
+ window:
+ description: 'When your backups will be taken, in UTC.
+ A backups window is a two-hour span of time in which
+ the backup may occur.
+
+
+ For example, `W10` indicates that your backups should
+ be taken between 10:00 and 12:00. If you don''t choose
+ a backup window, the API automatically assigns one.
+
+
+ If not set manually, when backups are initially enabled
+ this may come back as `Scheduling` until the `window`
+ is automatically selected.'
+ enum:
+ - Scheduling
+ - W0
+ - W2
+ - W4
+ - W6
+ - W8
+ - W10
+ - W12
+ - W14
+ - W16
+ - W18
+ - W20
+ - W22
+ example: W22
+ nullable: true
+ type: string
+ type: object
+ type: object
+ capabilities:
+ description: __Limited availability__, __Read-only__ A list of
+ capabilities this compute instance supports.
+ example:
+ - Block Storage Encryption
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ status: LA
+ created:
+ description: __Read-only__ When this Linode was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ disk_encryption:
+ default: enabled
+ description: __Read-only__ Indicates the local disk encryption
+ setting for this Linode. If the Linode is part of an LKE cluster,
+ the value is `null`.
+ example: disabled
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ group:
+ deprecated: true
+ description: __Deprecated__, __Filterable__ The group label for
+ this Linode.
+ example: Linode-Group
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ status: DEPRECATED
+ x-linode-filterable: true
+ has_user_data:
+ description: __Read-only__ Whether this compute instance was provisioned
+ with `user_data` provided via the Metadata service. See the
+ [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+ description for more information on Metadata.
+ example: true
+ readOnly: true
+ type: boolean
+ host_uuid:
+ description: __Read-only__ The Linode's host machine, as a UUID.
+ example: 3a3ddd59d9a78bb8de041391075df44de62bfec8
+ format: uuid
+ readOnly: true
+ type: string
+ hypervisor:
+ description: __Read-only__ The virtualization software powering
+ this Linode.
+ enum:
+ - kvm
+ example: kvm
+ readOnly: true
+ type: string
+ id:
+ description: __Filterable__, __Read-only__ This Linode's ID which
+ must be provided for all operations impacting this Linode.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ image:
+ allOf:
+ - description: 'An Image ID to deploy the Linode Disk from.
+
+
+ Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images)
+ operation with authentication to view all available Images.
+ Official Linode Images start with `linode/`, while your Account''s
+ Images start with `private/`. Creating a disk from a Private
+ Image requires `read_only` or `read_write` permissions for
+ that Image. Run the [Update a user''s grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants)
+ operation to adjust permissions for an Account Image.'
+ example: linode/debian9
+ type: string
+ example: linode/debian10
+ nullable: true
+ readOnly: true
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ interface_generation:
+ description: __Filterable__, __Read-only__ Indicates if the Linode
+ is configured to use Linode interfaces (`linode`) or legacy
+ configuration profile interfaces (`legacy_config`).
+ enum:
+ - legacy_config
+ - linode
+ example: linode
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 9
+ x-linode-filterable: true
+ ipv4:
+ description: '__Filterable__, __Read-only__ This Linode''s IPv4
+ Addresses. Each Linode is assigned a single public IPv4 address
+ upon creation, and may get a single private IPv4 address if
+ needed. You may need to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ to get additional IPv4 addresses.
+
+
+ IPv4 addresses may be reassigned between your Linodes, or shared
+ with other Linodes. See the [networking](https://techdocs.akamai.com/linode-api/reference/post-firewalls)
+ operations for details.'
+ example:
+ - 203.0.113.1
+ - 192.0.2.1
+ format: ipv4
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ ipv6:
+ description: __Read-only__ This Linode's IPv6 SLAAC address. This
+ address is specific to a Linode, and may not be shared. If the
+ Linode has not been assigned an IPv6 address, the return value
+ will be `null`.
+ example: c001:d00d::1337/128
+ format: ipv6/128
+ nullable: true
+ readOnly: true
+ type: string
+ label:
+ description: '__Filterable__ Provides a name for the Linode. If
+ not provided, the API generates one for it.
+
+
+ Linode labels have the following constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens (`-`),
+ underscores (`_`) or periods (`.`).
+
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods
+ (`..`) in a row.'
+ example: linode123
+ maxLength: 64
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster_id:
+ description: __Read-only__ The ID of the Kubernetes cluster if
+ the Linode is part of cluster.
+ example: 1
+ nullable: true
+ readOnly: true
+ type: integer
+ placement_group:
+ additionalProperties: false
+ description: __Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/)
+ that this Linode belongs to. Empty if the Linode isn't in a
+ placement group.
+ nullable: true
+ properties:
+ id:
+ description: The placement group's ID. You need to provide
+ it for all operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: null
+ label:
+ description: '__Filterable__ The unique name set for the placement
+ group. A label has these constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens
+ (`-`), underscores (`_`) or periods (`.`).'
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ placement_group_policy:
+ description: "How requests to add future compute instances\
+ \ to your placement group are handled, and whether it remains\
+ \ compliant:\n\n- `strict`. Don't assign a new compute instance\
+ \ if it breaks the grouped-together or spread-apart model\
+ \ set by the `placement_group_type`. Use this to ensure\
+ \ the placement group stays compliant (`is_compliant: true`).\n\
+ - `flexible`. Assign a new compute instance, even if it\
+ \ breaks the grouped-together or spread-apart model set\
+ \ by the `placement_group_type`. This makes the group non-compliant\
+ \ (`is_compliant: false`). You need to wait for Akamai to\
+ \ move the offending compute instance to make it compliant\
+ \ again, once the necessary capacity is available in the\
+ \ region. Offers flexibility to add future compute instances\
+ \ if compliance isn't an immediate concern.\n\n<>\n\n\
+ > \U0001F4D8\n>\n> In rare cases, non-compliance can occur\
+ \ with a `strict` placement group if Akamai needs to failover\
+ \ or migrate your compute instances for maintenance. Fixing\
+ \ non-compliance for a `strict` placement group is prioritized\
+ \ over a `flexible` group."
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ x-linode-cli-display: null
+ placement_group_type:
+ description: "__Filterable__, __Read-only__ How compute instances\
+ \ are distributed in your placement group. A `placement_group_type`\
+ \ using anti-affinity (`anti-affinity:local`) places compute\
+ \ instances in separate hosts, but still in the same region.\
+ \ This best supports the spread-apart model for high availability.\
+ \ A `placement_group_type` using affinity places compute\
+ \ instances physically close together, possibly on the same\
+ \ host. This supports the grouped-together model for low-latency.\n\
+ \n> \U0001F4D8\n>\n> Currently, only `anti_affinity:local`\
+ \ is available for `placement_group_type`."
+ enum:
+ - anti_affinity:local
+ example: anti-affinity:local
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: null
+ x-linode-filterable: true
+ readOnly: true
+ type: object
+ region:
+ description: __Filterable__, __Read-only__ The [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the Linode deployed. A Linode's region can only be changed
+ by initiating a [cross data center migration](https://techdocs.akamai.com/linode-api/reference/post-migrate-linode-instance).
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ specs:
+ additionalProperties: false
+ description: __Read-only__ Information about the resources available
+ to this Linode.
+ properties:
+ disk:
+ description: __Read-only__ The amount of storage space, in
+ MB, this Linode has access to. A typical Linode divides
+ this space between a primary disk with an `image` deployed
+ to it, and a swap disk, usually 512 MB. This is the default
+ configuration created when deploying a Linode with an `image`
+ through [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance).
+ While this configuration is suitable for 99% of use cases,
+ if you need finer control over your Linode's disks, see
+ the [List disks](https://techdocs.akamai.com/linode-api/reference/get-linode-disks)
+ operations.
+ example: 81920
+ readOnly: true
+ type: integer
+ gpus:
+ description: __Read-only__ The number of GPUs this Linode
+ has access to.
+ example: 0
+ readOnly: true
+ type: integer
+ memory:
+ description: '__Read-only__ The amount of RAM, in MB, this
+ Linode has access to.
+
+
+ Typically, a Linode boots with all of its available RAM,
+ but this can be configured in a config profile. See the
+ [List config profiles](https://techdocs.akamai.com/linode-api/reference/get-linode-configs)
+ operation for more information.'
+ example: 4096
+ readOnly: true
+ type: integer
+ transfer:
+ description: __Read-only__ The amount of network transfer
+ this Linode is allotted each month.
+ example: 4000
+ readOnly: true
+ type: integer
+ vcpus:
+ description: __Read-only__ The number of VCPUs this Linode
+ has access to.
+ example: 2
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ status:
+ description: '__Read-only__ A brief description of this Linode''s
+ current state. This field may change without direct action from
+ you. For example, when a compute instance goes into maintenance
+ mode, its status is `stopped`. Status is generally self-explanatory,
+ based on its name.
+
+
+ - `busy` indicates you''ve assigned the compute instance to
+ a [placement group](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups),
+ but the compute instance is currently booting. Once the boot
+ completes, the API completes the assignment and updates the
+ compute instance''s `status` accordingly.
+
+ - `provisioning` indicates that the API is applying operating
+ system or Marketplace applications on the compute instance.
+
+ - `billing_suspension` indicates that payment is past due on
+ the compute instance, so we''ve suspended its use.'
+ enum:
+ - running
+ - offline
+ - booting
+ - busy
+ - rebooting
+ - shutting_down
+ - provisioning
+ - deleting
+ - migrating
+ - rebuilding
+ - cloning
+ - restoring
+ - stopped
+ - billing_suspension
+ example: running
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ billing_suspension: red
+ default_: yellow
+ offline: red
+ running: green
+ x-linode-cli-display: 6
+ tags:
+ description: __Filterable__ Tags to help you organize your content.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type:
+ description: __Read-only__ This is the [Linode type](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ that this Linode was deployed with. To change a Linode's type,
+ use [Resize a Linode](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance).
+ example: g6-standard-1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this Linode was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ watchdog_enabled:
+ description: The watchdog, named Lassie, is a Shutdown Watchdog
+ that monitors your Linode and reboots it if it powers off unexpectedly.
+ It works by issuing a boot job when your Linode powers off without
+ a shutdown job being responsible. To prevent a loop, Lassie
+ gives up if there have been more than 5 boot jobs issued within
+ 15 minutes.
+ example: true
+ type: boolean
+ title: Linode
+ type: object
+ x-akamai:
+ file-path: schemas/linode.yaml
+ x-example:
+ x-ref: ../examples/post-linode-instance-200.json
+ description: A new Linode is being created.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Create a Linode
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes create \\\n --label linode123 \\\n --root_pass\
+ \ aComplex@Password \\\n --booted true \\\n --stackscript_id 10079 \\\
+ \n --stackscript_data '{\"gh_username\": \"linode\"}' \\\n --region\
+ \ us-east \\\n --disk_encryption enabled\\\n --placement_group.id 528\
+ \ \\\n --type g6-standard-2 \\\n --authorized_keys \"ssh-rsa AAAA_valid_public_ssh_key_123456785==\
+ \ user@their-computer\" \\\n --authorized_users \"myUser\" \\\n --authorized_users\
+ \ \"secondaryUser\" \\\n --metadata.user_data \"I2Nsb3VkLWNvbmZpZw==\"\
+ \ \\\n --firewall_id 9000"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-charge: true
+ x-linode-cli-action: create
+ x-linode-grant: add_linodes
+ get:
+ description: 'Returns a paginated list of Linodes you have permission to view.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-instances
+ operationId: get-linode-instances
+ parameters:
+ - description: Specifies a JSON object to filter down the results. See [Filtering
+ and sorting](filtering-and-sorting) for details.
+ example: '{{X-Filter}}'
+ in: header
+ name: X-Filter
+ required: false
+ schema:
+ description: Specifies the `X-Filter` header JSON object's filtering and
+ sort criteria.
+ oneOf:
+ - description: Specify the name of the data field and the accompanying value.
+ title: Simple filter
+ type: object
+ x-akamai:
+ file-path: schemas/x-filter-criteria.yaml
+ - additionalProperties: false
+ properties:
+ +and:
+ description: All conditions need to be true.
+ items:
+ description: Specify the name of the data field and the accompanying
+ value.
+ title: Simple filter
+ type: object
+ x-akamai:
+ file-path: schemas/x-filter-criteria.yaml
+ type: array
+ +contains:
+ description: The provided string needs to be in the value.
+ type: string
+ +gt:
+ description: The value needs to be greater than the provided number.
+ type: number
+ +gte:
+ description: The value needs to be greater than or equal to the provided
+ number.
+ type: number
+ +lt:
+ description: The value needs to be less than the provided number.
+ type: number
+ +lte:
+ description: The value needs to be less than or equal to the provided
+ number.
+ type: number
+ +neq:
+ description: The provided string is left out of the results.
+ type: string
+ +or:
+ description: At least one condition needs to be true.
+ items:
+ description: Specify the name of the data field and the accompanying
+ value.
+ title: Simple filter
+ type: object
+ x-akamai:
+ file-path: schemas/x-filter-criteria.yaml
+ type: array
+ +order:
+ default: asc
+ description: Sort in ascending (`asc`) or descending (`desc`) order.
+ This defaults to `asc`. Requires `+order_by`.
+ enum:
+ - asc
+ - desc
+ type: string
+ +order_by:
+ description: Order results based on the provided attribute. The attribute
+ needs to be filterable.
+ type: string
+ title: Filter and sort criteria
+ type: object
+ x-akamai:
+ file-path: schemas/x-filter.yaml
+ x-akamai:
+ file-path: parameters/x-filter-header.yaml
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ properties:
+ alerts:
+ additionalProperties: false
+ properties:
+ cpu:
+ description: 'The percentage of CPU usage required to
+ trigger an alert. If the average CPU usage over two
+ hours exceeds this value, we''ll send you an alert.
+ Your Linode''s total CPU capacity is represented as
+ 100%, multiplied by its number of cores.
+
+
+ For example, a two core Linode''s CPU capacity is
+ represented as 200%. If you want to be alerted at
+ 90% of a two core Linode''s CPU capacity, set the
+ alert value to `180`.
+
+
+ The default value is 90% multiplied by the number
+ of cores.
+
+
+ If the value is set to `0` (zero), the alert is disabled.'
+ example: 180
+ type: integer
+ io:
+ description: The amount of disk IO operation per second
+ required to trigger an alert. If the average disk
+ IO over two hours exceeds this value, we'll send you
+ an alert. If set to `0` (zero), this alert is disabled.
+ example: 10000
+ type: integer
+ network_in:
+ description: The amount of incoming traffic, in Mbit/s,
+ required to trigger an alert. If the average incoming
+ traffic over two hours exceeds this value, we'll send
+ you an alert. If this is set to `0` (zero), the alert
+ is disabled.
+ example: 10
+ type: integer
+ network_out:
+ description: The amount of outbound traffic, in Mbit/s,
+ required to trigger an alert. If the average outbound
+ traffic over two hours exceeds this value, we'll send
+ you an alert. If this is set to `0` (zero), the alert
+ is disabled.
+ example: 10
+ type: integer
+ transfer_quota:
+ description: The percentage of network transfer that
+ may be used before an alert is triggered. When this
+ value is exceeded, we'll alert you. If this is set
+ to `0` (zero), the alert is disabled.
+ example: 80
+ type: integer
+ type: object
+ backups:
+ additionalProperties: false
+ description: Information about this Linode's backups status.
+ For information about available backups, run [List backups](https://techdocs.akamai.com/linode-api/reference/get-backups).
+ properties:
+ available:
+ description: '__Read-only__ Whether Backups for this
+ Linode are available for restoration.
+
+
+ Backups undergoing maintenance are not available for
+ restoration.'
+ example: true
+ readOnly: true
+ type: boolean
+ enabled:
+ description: __Read-only__ If this Linode has the Backup
+ service enabled. To enable backups, run [Enable backups](https://techdocs.akamai.com/linode-api/reference/post-enable-backups).
+ example: true
+ readOnly: true
+ type: boolean
+ last_successful:
+ description: __Read-only__ The last successful backup
+ time. Displayed as `null` if there was no previous
+ backup.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ schedule:
+ additionalProperties: false
+ properties:
+ day:
+ description: 'The day of the week that your Linode''s
+ weekly backup is taken. If not set manually, a
+ day will be chosen for you. Backups are taken
+ every day, but backups taken on this day are preferred
+ when selecting backups to retain for a longer
+ period.
+
+
+ If not set manually, then when backups are initially
+ enabled, this may come back as `Scheduling` until
+ the `day` is automatically selected.'
+ enum:
+ - Scheduling
+ - Sunday
+ - Monday
+ - Tuesday
+ - Wednesday
+ - Thursday
+ - Friday
+ - Saturday
+ example: Saturday
+ nullable: true
+ type: string
+ window:
+ description: 'When your backups will be taken, in
+ UTC. A backups window is a two-hour span of time
+ in which the backup may occur.
+
+
+ For example, `W10` indicates that your backups
+ should be taken between 10:00 and 12:00. If you
+ don''t choose a backup window, the API automatically
+ assigns one.
+
+
+ If not set manually, when backups are initially
+ enabled this may come back as `Scheduling` until
+ the `window` is automatically selected.'
+ enum:
+ - Scheduling
+ - W0
+ - W2
+ - W4
+ - W6
+ - W8
+ - W10
+ - W12
+ - W14
+ - W16
+ - W18
+ - W20
+ - W22
+ example: W22
+ nullable: true
+ type: string
+ type: object
+ type: object
+ capabilities:
+ description: __Limited availability__, __Read-only__ A list
+ of capabilities this compute instance supports.
+ example:
+ - Block Storage Encryption
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ status: LA
+ created:
+ description: __Read-only__ When this Linode was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ disk_encryption:
+ default: enabled
+ description: __Read-only__ Indicates the local disk encryption
+ setting for this Linode. If the Linode is part of an LKE
+ cluster, the value is `null`.
+ enum:
+ - enabled
+ - disabled
+ example: disabled
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ group:
+ deprecated: true
+ description: __Deprecated__, __Filterable__ The group label
+ for this Linode.
+ example: Linode-Group
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ status: DEPRECATED
+ x-linode-filterable: true
+ has_user_data:
+ description: __Read-only__ Whether this compute instance
+ was provisioned with `user_data` provided via the Metadata
+ service. See the [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+ description for more information on Metadata.
+ example: true
+ readOnly: true
+ type: boolean
+ host_uuid:
+ description: __Read-only__ The Linode's host machine, as
+ a UUID.
+ example: 1a2bcd34e5f67gh8ij901234567kl89mn01opqr2
+ format: uuid
+ readOnly: true
+ type: string
+ hypervisor:
+ description: __Read-only__ The virtualization software powering
+ this Linode.
+ enum:
+ - kvm
+ example: kvm
+ readOnly: true
+ type: string
+ id:
+ description: __Filterable__, __Read-only__ This Linode's
+ ID which must be provided for all operations impacting
+ this Linode.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ image:
+ allOf:
+ - description: 'An Image ID to deploy the Linode Disk from.
+
+
+ Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images)
+ operation with authentication to view all available
+ Images. Official Linode Images start with `linode/`,
+ while your Account''s Images start with `private/`.
+ Creating a disk from a Private Image requires `read_only`
+ or `read_write` permissions for that Image. Run the
+ [Update a user''s grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants)
+ operation to adjust permissions for an Account Image.'
+ example: linode/debian9
+ type: string
+ example: linode/debian10
+ nullable: true
+ readOnly: true
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ interface_generation:
+ description: __Beta__ Indicates if the Linode is configured
+ to use Linode interfaces (`linode`) or legacy configuration
+ profile interfaces (`legacy_config`).
+ enum:
+ - legacy_config
+ - linode
+ example: linode
+ type: string
+ x-akamai:
+ status: BETA
+ ipv4:
+ description: '__Filterable__, __Read-only__ This Linode''s
+ IPv4 Addresses. Each Linode is assigned a single public
+ IPv4 address upon creation, and may get a single private
+ IPv4 address if needed. You may need to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ to get additional IPv4 addresses.
+
+
+ IPv4 addresses may be reassigned between your Linodes,
+ or shared with other Linodes. See the [networking](https://techdocs.akamai.com/linode-api/reference/post-firewalls)
+ operations for details.'
+ example:
+ - 203.0.113.1
+ - 192.0.2.1
+ format: ipv4
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ ipv6:
+ description: __Read-only__ This Linode's IPv6 SLAAC address.
+ This address is specific to a Linode, and may not be shared.
+ If the Linode has not been assigned an IPv6 address, the
+ return value will be `null`.
+ example: c001:d00d::1337/128
+ format: ipv6/128
+ nullable: true
+ readOnly: true
+ type: string
+ label:
+ description: '__Filterable__ Provides a name for the Linode.
+ If not provided, the API generates one for it.
+
+
+ Linode labels have the following constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens
+ (`-`), underscores (`_`) or periods (`.`).
+
+ - Cannot have two hyphens (`--`), underscores (`__`) or
+ periods (`..`) in a row.'
+ example: linode123
+ maxLength: 64
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster_id:
+ description: __Read-only__ The ID of the Kubernetes cluster
+ if the Linode is part of cluster.
+ example: 1
+ nullable: true
+ readOnly: true
+ type: integer
+ placement_group:
+ additionalProperties: false
+ description: __Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/)
+ that this Linode belongs to. Empty if the Linode isn't
+ in a placement group.
+ nullable: true
+ properties:
+ id:
+ description: The placement group's ID. You need to provide
+ it for all operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: null
+ label:
+ description: '__Filterable__ The unique name set for
+ the placement group. A label has these constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters,
+ hyphens (`-`), underscores (`_`) or periods (`.`).'
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ migrating_to:
+ description: __Read-only__ The unique identifier for
+ the [placement group](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups)
+ to which this Linode is being migrated. Displayed
+ as `null` if the Linode is not being migrated to a
+ new placement group.
+ example: 2468
+ nullable: true
+ readOnly: true
+ type: integer
+ placement_group_policy:
+ description: "How requests to add future compute instances\
+ \ to your placement group are handled, and whether\
+ \ it remains compliant:\n\n- `strict`. Don't assign\
+ \ a new compute instance if it breaks the grouped-together\
+ \ or spread-apart model set by the `placement_group_type`.\
+ \ Use this to ensure the placement group stays compliant\
+ \ (`is_compliant: true`).\n- `flexible`. Assign a\
+ \ new compute instance, even if it breaks the grouped-together\
+ \ or spread-apart model set by the `placement_group_type`.\
+ \ This makes the group non-compliant (`is_compliant:\
+ \ false`). You need to wait for Akamai to move the\
+ \ offending compute instance to make it compliant\
+ \ again, once the necessary capacity is available\
+ \ in the region. Offers flexibility to add future\
+ \ compute instances if compliance isn't an immediate\
+ \ concern.\n\n<>\n\n> \U0001F4D8\n>\n> In rare\
+ \ cases, non-compliance can occur with a `strict`\
+ \ placement group if Akamai needs to failover or migrate\
+ \ your compute instances for maintenance. Fixing non-compliance\
+ \ for a `strict` placement group is prioritized over\
+ \ a `flexible` group."
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ x-linode-cli-display: null
+ placement_group_type:
+ description: "__Filterable__, __Read-only__ How compute\
+ \ instances are distributed in your placement group.\
+ \ A `placement_group_type` using anti-affinity (`anti-affinity:local`)\
+ \ places compute instances in separate hosts, but\
+ \ still in the same region. This best supports the\
+ \ spread-apart model for high availability. A `placement_group_type`\
+ \ using affinity places compute instances physically\
+ \ close together, possibly on the same host. This\
+ \ supports the grouped-together model for low-latency.\n\
+ \n> \U0001F4D8\n>\n> Currently, only `anti_affinity:local`\
+ \ is available for `placement_group_type`."
+ enum:
+ - anti_affinity:local
+ example: anti-affinity:local
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: null
+ x-linode-filterable: true
+ readOnly: true
+ type: object
+ region:
+ description: __Filterable__, __Read-only__ The [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the Linode deployed. A Linode's region can only
+ be changed by initiating a [cross data center migration](https://techdocs.akamai.com/linode-api/reference/post-migrate-linode-instance).
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ specs:
+ additionalProperties: false
+ description: __Read-only__ Information about the resources
+ available to this Linode.
+ properties:
+ disk:
+ description: __Read-only__ The amount of storage space,
+ in MB, this Linode has access to. A typical Linode
+ divides this space between a primary disk with an
+ `image` deployed to it, and a swap disk, usually 512
+ MB. This is the default configuration created when
+ deploying a Linode with an `image` through [Create
+ a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance).
+ While this configuration is suitable for 99% of use
+ cases, if you need finer control over your Linode's
+ disks, see the [List disks](https://techdocs.akamai.com/linode-api/reference/get-linode-disks)
+ operations.
+ example: 81920
+ readOnly: true
+ type: integer
+ gpus:
+ description: __Read-only__ The number of GPUs this Linode
+ has access to.
+ example: 0
+ readOnly: true
+ type: integer
+ memory:
+ description: '__Read-only__ The amount of RAM, in MB,
+ this Linode has access to.
+
+
+ Typically, a Linode boots with all of its available
+ RAM, but this can be configured in a config profile.
+ See the [List config profiles](https://techdocs.akamai.com/linode-api/reference/get-linode-configs)
+ operation for more information.'
+ example: 4096
+ readOnly: true
+ type: integer
+ transfer:
+ description: __Read-only__ The amount of network transfer
+ this Linode is allotted each month.
+ example: 4000
+ readOnly: true
+ type: integer
+ vcpus:
+ description: __Read-only__ The number of VCPUs this
+ Linode has access to.
+ example: 2
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ status:
+ description: '__Read-only__ A brief description of the compute
+ instance''s current state. This value can change without
+ direct action from you. For example, when a compute instance
+ goes into maintenance mode, its status is `stopped`. Status
+ is generally self-explanatory, based on its name.
+
+
+ - `busy` indicates you''ve assigned the compute instance
+ to a [placement group](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups),
+ but the compute instance is currently booting. Once the
+ boot completes, the API completes the assignment and updates
+ the compute instance''s `status` accordingly.
+
+ - `provisioning` indicates that the API is applying operating
+ system or Marketplace applications on the compute instance.
+
+ - `billing_suspension` indicates that payment is past
+ due on the compute instance, so we''ve suspended its use.'
+ enum:
+ - running
+ - offline
+ - booting
+ - busy
+ - rebooting
+ - shutting_down
+ - provisioning
+ - deleting
+ - migrating
+ - rebuilding
+ - cloning
+ - restoring
+ - stopped
+ - billing_suspension
+ example: running
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ billing_suspension: red
+ default_: yellow
+ offline: red
+ running: green
+ x-linode-cli-display: 6
+ tags:
+ description: __Filterable__ Tags to help you organize your
+ content.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type:
+ description: __Read-only__ This is the [Linode type](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ that this Linode was deployed with. To change a Linode's
+ type, use [Resize a Linode](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance).
+ example: g6-standard-1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this Linode was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ watchdog_enabled:
+ description: The watchdog, named Lassie, is a Shutdown Watchdog
+ that monitors your Linode and reboots it if it powers
+ off unexpectedly. It works by issuing a boot job when
+ your Linode powers off without a shutdown job being responsible.
+ To prevent a loop, Lassie gives up if there have been
+ more than 5 boot jobs issued within 15 minutes.
+ example: true
+ type: boolean
+ title: Linode
+ type: object
+ x-akamai:
+ file-path: schemas/linode-migrate.yaml
+ type: array
+ page:
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-linode-instances-200.yaml
+ x-example:
+ x-ref: ../examples/get-linode-instances-200.json
+ description: Returns an array of all Linodes on your Account.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: List Linodes
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes list
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/linode-instances.yaml
+ path-info: /{apiVersion}/linode/instances
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}:
+ get:
+ description: 'Get a specific Linode by ID.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-instance
+ operationId: get-linode-instance
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ alerts:
+ additionalProperties: false
+ properties:
+ cpu:
+ description: 'The percentage of CPU usage required to trigger
+ an alert. If the average CPU usage over two hours exceeds
+ this value, we''ll send you an alert. Your Linode''s total
+ CPU capacity is represented as 100%, multiplied by its number
+ of cores.
+
+
+ For example, a two core Linode''s CPU capacity is represented
+ as 200%. If you want to be alerted at 90% of a two core
+ Linode''s CPU capacity, set the alert value to `180`.
+
+
+ The default value is 90% multiplied by the number of cores.
+
+
+ If the value is set to `0` (zero), the alert is disabled.'
+ example: 180
+ type: integer
+ io:
+ description: The amount of disk IO operation per second required
+ to trigger an alert. If the average disk IO over two hours
+ exceeds this value, we'll send you an alert. If set to `0`
+ (zero), this alert is disabled.
+ example: 10000
+ type: integer
+ network_in:
+ description: The amount of incoming traffic, in Mbit/s, required
+ to trigger an alert. If the average incoming traffic over
+ two hours exceeds this value, we'll send you an alert. If
+ this is set to `0` (zero), the alert is disabled.
+ example: 10
+ type: integer
+ network_out:
+ description: The amount of outbound traffic, in Mbit/s, required
+ to trigger an alert. If the average outbound traffic over
+ two hours exceeds this value, we'll send you an alert. If
+ this is set to `0` (zero), the alert is disabled.
+ example: 10
+ type: integer
+ transfer_quota:
+ description: The percentage of network transfer that may be
+ used before an alert is triggered. When this value is exceeded,
+ we'll alert you. If this is set to `0` (zero), the alert
+ is disabled.
+ example: 80
+ type: integer
+ type: object
+ backups:
+ additionalProperties: false
+ description: Information about this Linode's backups status. For
+ information about available backups, run [List backups](https://techdocs.akamai.com/linode-api/reference/get-backups).
+ properties:
+ available:
+ description: '__Read-only__ Whether Backups for this Linode
+ are available for restoration.
+
+
+ Backups undergoing maintenance are not available for restoration.'
+ example: true
+ readOnly: true
+ type: boolean
+ enabled:
+ description: __Read-only__ If this Linode has the Backup service
+ enabled. To enable backups, run [Enable backups](https://techdocs.akamai.com/linode-api/reference/post-enable-backups).
+ example: true
+ readOnly: true
+ type: boolean
+ last_successful:
+ description: __Read-only__ The last successful backup time.
+ Displayed as `null` if there was no previous backup.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ schedule:
+ additionalProperties: false
+ properties:
+ day:
+ description: 'The day of the week that your Linode''s
+ weekly backup is taken. If not set manually, a day will
+ be chosen for you. Backups are taken every day, but
+ backups taken on this day are preferred when selecting
+ backups to retain for a longer period.
+
+
+ If not set manually, then when backups are initially
+ enabled, this may come back as `Scheduling` until the
+ `day` is automatically selected.'
+ enum:
+ - Scheduling
+ - Sunday
+ - Monday
+ - Tuesday
+ - Wednesday
+ - Thursday
+ - Friday
+ - Saturday
+ example: Saturday
+ nullable: true
+ type: string
+ window:
+ description: 'When your backups will be taken, in UTC.
+ A backups window is a two-hour span of time in which
+ the backup may occur.
+
+
+ For example, `W10` indicates that your backups should
+ be taken between 10:00 and 12:00. If you don''t choose
+ a backup window, the API automatically assigns one.
+
+
+ If not set manually, when backups are initially enabled
+ this may come back as `Scheduling` until the `window`
+ is automatically selected.'
+ enum:
+ - Scheduling
+ - W0
+ - W2
+ - W4
+ - W6
+ - W8
+ - W10
+ - W12
+ - W14
+ - W16
+ - W18
+ - W20
+ - W22
+ example: W22
+ nullable: true
+ type: string
+ type: object
+ type: object
+ capabilities:
+ description: __Limited availability__, __Read-only__ A list of
+ capabilities this compute instance supports.
+ example:
+ - Block Storage Encryption
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ status: LA
+ created:
+ description: __Read-only__ When this Linode was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ disk_encryption:
+ default: enabled
+ description: __Read-only__ Indicates the local disk encryption
+ setting for this Linode. If the Linode is part of an LKE cluster,
+ the value is `null`.
+ enum:
+ - enabled
+ - disabled
+ example: disabled
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ group:
+ deprecated: true
+ description: __Deprecated__, __Filterable__ The group label for
+ this Linode.
+ example: Linode-Group
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ status: DEPRECATED
+ x-linode-filterable: true
+ has_user_data:
+ description: __Read-only__ Whether this compute instance was provisioned
+ with `user_data` provided via the Metadata service. See the
+ [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+ description for more information on Metadata.
+ example: true
+ readOnly: true
+ type: boolean
+ host_uuid:
+ description: __Read-only__ The Linode's host machine, as a UUID.
+ example: 1a2bcd34e5f67gh8ij901234567kl89mn01opqr2
+ format: uuid
+ readOnly: true
+ type: string
+ hypervisor:
+ description: __Read-only__ The virtualization software powering
+ this Linode.
+ enum:
+ - kvm
+ example: kvm
+ readOnly: true
+ type: string
+ id:
+ description: __Filterable__, __Read-only__ This Linode's ID which
+ must be provided for all operations impacting this Linode.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ image:
+ allOf:
+ - description: 'An Image ID to deploy the Linode Disk from.
+
+
+ Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images)
+ operation with authentication to view all available Images.
+ Official Linode Images start with `linode/`, while your Account''s
+ Images start with `private/`. Creating a disk from a Private
+ Image requires `read_only` or `read_write` permissions for
+ that Image. Run the [Update a user''s grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants)
+ operation to adjust permissions for an Account Image.'
+ example: linode/debian9
+ type: string
+ example: linode/debian10
+ nullable: true
+ readOnly: true
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ interface_generation:
+ description: __Beta__ Indicates if the Linode is configured to
+ use Linode interfaces (`linode`) or legacy configuration profile
+ interfaces (`legacy_config`).
+ enum:
+ - legacy_config
+ - linode
+ example: linode
+ type: string
+ x-akamai:
+ status: BETA
+ ipv4:
+ description: '__Filterable__, __Read-only__ This Linode''s IPv4
+ Addresses. Each Linode is assigned a single public IPv4 address
+ upon creation, and may get a single private IPv4 address if
+ needed. You may need to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ to get additional IPv4 addresses.
+
+
+ IPv4 addresses may be reassigned between your Linodes, or shared
+ with other Linodes. See the [networking](https://techdocs.akamai.com/linode-api/reference/post-firewalls)
+ operations for details.'
+ example:
+ - 203.0.113.1
+ - 192.0.2.1
+ format: ipv4
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ ipv6:
+ description: __Read-only__ This Linode's IPv6 SLAAC address. This
+ address is specific to a Linode, and may not be shared. If the
+ Linode has not been assigned an IPv6 address, the return value
+ will be `null`.
+ example: c001:d00d::1337/128
+ format: ipv6/128
+ nullable: true
+ readOnly: true
+ type: string
+ label:
+ description: '__Filterable__ Provides a name for the Linode. If
+ not provided, the API generates one for it.
+
+
+ Linode labels have the following constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens (`-`),
+ underscores (`_`) or periods (`.`).
+
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods
+ (`..`) in a row.'
+ example: linode123
+ maxLength: 64
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster_id:
+ description: __Read-only__ The ID of the Kubernetes cluster if
+ the Linode is part of cluster.
+ example: 1
+ nullable: true
+ readOnly: true
+ type: integer
+ placement_group:
+ additionalProperties: false
+ description: __Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/)
+ that this Linode belongs to. Empty if the Linode isn't in a
+ placement group.
+ nullable: true
+ properties:
+ id:
+ description: The placement group's ID. You need to provide
+ it for all operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: null
+ label:
+ description: '__Filterable__ The unique name set for the placement
+ group. A label has these constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens
+ (`-`), underscores (`_`) or periods (`.`).'
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ migrating_to:
+ description: __Read-only__ The unique identifier for the [placement
+ group](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups)
+ to which this Linode is being migrated. Displayed as `null`
+ if the Linode is not being migrated to a new placement group.
+ example: 2468
+ nullable: true
+ readOnly: true
+ type: integer
+ placement_group_policy:
+ description: "How requests to add future compute instances\
+ \ to your placement group are handled, and whether it remains\
+ \ compliant:\n\n- `strict`. Don't assign a new compute instance\
+ \ if it breaks the grouped-together or spread-apart model\
+ \ set by the `placement_group_type`. Use this to ensure\
+ \ the placement group stays compliant (`is_compliant: true`).\n\
+ - `flexible`. Assign a new compute instance, even if it\
+ \ breaks the grouped-together or spread-apart model set\
+ \ by the `placement_group_type`. This makes the group non-compliant\
+ \ (`is_compliant: false`). You need to wait for Akamai to\
+ \ move the offending compute instance to make it compliant\
+ \ again, once the necessary capacity is available in the\
+ \ region. Offers flexibility to add future compute instances\
+ \ if compliance isn't an immediate concern.\n\n<>\n\n\
+ > \U0001F4D8\n>\n> In rare cases, non-compliance can occur\
+ \ with a `strict` placement group if Akamai needs to failover\
+ \ or migrate your compute instances for maintenance. Fixing\
+ \ non-compliance for a `strict` placement group is prioritized\
+ \ over a `flexible` group."
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ x-linode-cli-display: null
+ placement_group_type:
+ description: "__Filterable__, __Read-only__ How compute instances\
+ \ are distributed in your placement group. A `placement_group_type`\
+ \ using anti-affinity (`anti-affinity:local`) places compute\
+ \ instances in separate hosts, but still in the same region.\
+ \ This best supports the spread-apart model for high availability.\
+ \ A `placement_group_type` using affinity places compute\
+ \ instances physically close together, possibly on the same\
+ \ host. This supports the grouped-together model for low-latency.\n\
+ \n> \U0001F4D8\n>\n> Currently, only `anti_affinity:local`\
+ \ is available for `placement_group_type`."
+ enum:
+ - anti_affinity:local
+ example: anti-affinity:local
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: null
+ x-linode-filterable: true
+ readOnly: true
+ type: object
+ region:
+ description: __Filterable__, __Read-only__ The [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the Linode deployed. A Linode's region can only be changed
+ by initiating a [cross data center migration](https://techdocs.akamai.com/linode-api/reference/post-migrate-linode-instance).
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ specs:
+ additionalProperties: false
+ description: __Read-only__ Information about the resources available
+ to this Linode.
+ properties:
+ disk:
+ description: __Read-only__ The amount of storage space, in
+ MB, this Linode has access to. A typical Linode divides
+ this space between a primary disk with an `image` deployed
+ to it, and a swap disk, usually 512 MB. This is the default
+ configuration created when deploying a Linode with an `image`
+ through [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance).
+ While this configuration is suitable for 99% of use cases,
+ if you need finer control over your Linode's disks, see
+ the [List disks](https://techdocs.akamai.com/linode-api/reference/get-linode-disks)
+ operations.
+ example: 81920
+ readOnly: true
+ type: integer
+ gpus:
+ description: __Read-only__ The number of GPUs this Linode
+ has access to.
+ example: 0
+ readOnly: true
+ type: integer
+ memory:
+ description: '__Read-only__ The amount of RAM, in MB, this
+ Linode has access to.
+
+
+ Typically, a Linode boots with all of its available RAM,
+ but this can be configured in a config profile. See the
+ [List config profiles](https://techdocs.akamai.com/linode-api/reference/get-linode-configs)
+ operation for more information.'
+ example: 4096
+ readOnly: true
+ type: integer
+ transfer:
+ description: __Read-only__ The amount of network transfer
+ this Linode is allotted each month.
+ example: 4000
+ readOnly: true
+ type: integer
+ vcpus:
+ description: __Read-only__ The number of VCPUs this Linode
+ has access to.
+ example: 2
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ status:
+ description: '__Read-only__ A brief description of the compute
+ instance''s current state. This value can change without direct
+ action from you. For example, when a compute instance goes into
+ maintenance mode, its status is `stopped`. Status is generally
+ self-explanatory, based on its name.
+
+
+ - `busy` indicates you''ve assigned the compute instance to
+ a [placement group](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups),
+ but the compute instance is currently booting. Once the boot
+ completes, the API completes the assignment and updates the
+ compute instance''s `status` accordingly.
+
+ - `provisioning` indicates that the API is applying operating
+ system or Marketplace applications on the compute instance.
+
+ - `billing_suspension` indicates that payment is past due on
+ the compute instance, so we''ve suspended its use.'
+ enum:
+ - running
+ - offline
+ - booting
+ - busy
+ - rebooting
+ - shutting_down
+ - provisioning
+ - deleting
+ - migrating
+ - rebuilding
+ - cloning
+ - restoring
+ - stopped
+ - billing_suspension
+ example: running
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ billing_suspension: red
+ default_: yellow
+ offline: red
+ running: green
+ x-linode-cli-display: 6
+ tags:
+ description: __Filterable__ Tags to help you organize your content.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type:
+ description: __Read-only__ This is the [Linode type](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ that this Linode was deployed with. To change a Linode's type,
+ use [Resize a Linode](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance).
+ example: g6-standard-1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this Linode was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ watchdog_enabled:
+ description: The watchdog, named Lassie, is a Shutdown Watchdog
+ that monitors your Linode and reboots it if it powers off unexpectedly.
+ It works by issuing a boot job when your Linode powers off without
+ a shutdown job being responsible. To prevent a loop, Lassie
+ gives up if there have been more than 5 boot jobs issued within
+ 15 minutes.
+ example: true
+ type: boolean
+ title: Linode
+ type: object
+ x-akamai:
+ file-path: schemas/linode-migrate.yaml
+ x-example:
+ x-ref: ../examples/get-linode-instance-200.json
+ description: Returns a single Linode object.
+ links:
+ delete:
+ operationId: delete-linode-instance
+ parameters:
+ linodeId: $request.body#/id
+ boot:
+ operationId: post-boot-linode-instance
+ parameters:
+ linodeId: $request.body#/id
+ clone:
+ operationId: post-clone-linode-instance
+ parameters:
+ linodeId: $request.body#/id
+ mutate:
+ operationId: post-mutate-linode-instance
+ parameters:
+ linodeId: $request.body#/id
+ reboot:
+ operationId: post-reboot-linode-instance
+ parameters:
+ linodeId: $request.body#/id
+ rebuild:
+ operationId: post-rebuild-linode-instance
+ parameters:
+ linodeId: $request.body#/id
+ rescue:
+ operationId: post-rescue-linode-instance
+ parameters:
+ linodeId: $request.body#/id
+ resize:
+ operationId: post-resize-linode-instance
+ parameters:
+ linodeId: $request.body#/id
+ shutdown:
+ operationId: post-shutdown-linode-instance
+ parameters:
+ linodeId: $request.body#/id
+ update:
+ operationId: put-linode-instance
+ parameters:
+ linodeId: $request.body#/id
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: Get a Linode
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes view 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ x-linode-grant: read_only
+ put:
+ description: "Updates a Linode that you have permission to `read_write`. Only\
+ \ unrestricted users can add or modify tags on Linodes.\n<>\n\n> \U0001F6A7\
+ \n>\n> All tags for the instance are overwritten if `tags` are included in\
+ \ the request.\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-linode-instance
+ operationId: put-linode-instance
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ alerts:
+ additionalProperties: false
+ properties:
+ cpu:
+ description: 'The percentage of CPU usage required to trigger
+ an alert. If the average CPU usage over two hours exceeds
+ this value, we''ll send you an alert. Your Linode''s total
+ CPU capacity is represented as 100%, multiplied by its number
+ of cores.
+
+
+ For example, a two core Linode''s CPU capacity is represented
+ as 200%. If you want to be alerted at 90% of a two core Linode''s
+ CPU capacity, set the alert value to `180`.
+
+
+ The default value is 90% multiplied by the number of cores.
+
+
+ If the value is set to `0` (zero), the alert is disabled.'
+ example: 180
+ type: integer
+ io:
+ description: The amount of disk IO operation per second required
+ to trigger an alert. If the average disk IO over two hours
+ exceeds this value, we'll send you an alert. If set to `0`
+ (zero), this alert is disabled.
+ example: 10000
+ type: integer
+ network_in:
+ description: The amount of incoming traffic, in Mbit/s, required
+ to trigger an alert. If the average incoming traffic over
+ two hours exceeds this value, we'll send you an alert. If
+ this is set to `0` (zero), the alert is disabled.
+ example: 10
+ type: integer
+ network_out:
+ description: The amount of outbound traffic, in Mbit/s, required
+ to trigger an alert. If the average outbound traffic over
+ two hours exceeds this value, we'll send you an alert. If
+ this is set to `0` (zero), the alert is disabled.
+ example: 10
+ type: integer
+ transfer_quota:
+ description: The percentage of network transfer that may be
+ used before an alert is triggered. When this value is exceeded,
+ we'll alert you. If this is set to `0` (zero), the alert is
+ disabled.
+ example: 80
+ type: integer
+ type: object
+ backups:
+ additionalProperties: false
+ description: Information about this Linode's backups status. For
+ information about available backups, run [List backups](https://techdocs.akamai.com/linode-api/reference/get-backups).
+ properties:
+ available:
+ description: '__Read-only__ Whether Backups for this Linode
+ are available for restoration.
+
+
+ Backups undergoing maintenance are not available for restoration.'
+ example: true
+ readOnly: true
+ type: boolean
+ enabled:
+ description: __Read-only__ If this Linode has the Backup service
+ enabled. To enable backups, run [Enable backups](https://techdocs.akamai.com/linode-api/reference/post-enable-backups).
+ example: true
+ readOnly: true
+ type: boolean
+ last_successful:
+ description: __Read-only__ The last successful backup time.
+ Displayed as `null` if there was no previous backup.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ schedule:
+ additionalProperties: false
+ properties:
+ day:
+ description: 'The day of the week that your Linode''s weekly
+ backup is taken. If not set manually, a day will be chosen
+ for you. Backups are taken every day, but backups taken
+ on this day are preferred when selecting backups to retain
+ for a longer period.
+
+
+ If not set manually, then when backups are initially enabled,
+ this may come back as `Scheduling` until the `day` is
+ automatically selected.'
+ enum:
+ - Scheduling
+ - Sunday
+ - Monday
+ - Tuesday
+ - Wednesday
+ - Thursday
+ - Friday
+ - Saturday
+ example: Saturday
+ nullable: true
+ type: string
+ window:
+ description: 'When your backups will be taken, in UTC. A
+ backups window is a two-hour span of time in which the
+ backup may occur.
+
+
+ For example, `W10` indicates that your backups should
+ be taken between 10:00 and 12:00. If you don''t choose
+ a backup window, the API automatically assigns one.
+
+
+ If not set manually, when backups are initially enabled
+ this may come back as `Scheduling` until the `window`
+ is automatically selected.'
+ enum:
+ - Scheduling
+ - W0
+ - W2
+ - W4
+ - W6
+ - W8
+ - W10
+ - W12
+ - W14
+ - W16
+ - W18
+ - W20
+ - W22
+ example: W22
+ nullable: true
+ type: string
+ type: object
+ type: object
+ capabilities:
+ description: __Limited availability__, __Read-only__ A list of capabilities
+ this compute instance supports.
+ example:
+ - Block Storage Encryption
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ status: LA
+ created:
+ description: __Read-only__ When this Linode was created.
+ example: '{{created}}'
+ format: date-time
+ readOnly: true
+ type: string
+ disk_encryption:
+ default: enabled
+ description: __Read-only__ Indicates the local disk encryption setting
+ for this Linode. If the Linode is part of an LKE cluster, the
+ value is `null`.
+ example: '{{disk_encryption}}'
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ group:
+ deprecated: true
+ description: __Deprecated__, __Filterable__ The group label for
+ this Linode.
+ example: '{{group}}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ status: DEPRECATED
+ x-linode-filterable: true
+ has_user_data:
+ description: __Read-only__ Whether this compute instance was provisioned
+ with `user_data` provided via the Metadata service. See the [Create
+ a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+ description for more information on Metadata.
+ example: '{{has_user_data}}'
+ readOnly: true
+ type: boolean
+ host_uuid:
+ description: __Read-only__ The Linode's host machine, as a UUID.
+ example: '{{host_uuid}}'
+ format: uuid
+ readOnly: true
+ type: string
+ hypervisor:
+ description: __Read-only__ The virtualization software powering
+ this Linode.
+ enum:
+ - kvm
+ example: '{{hypervisor}}'
+ readOnly: true
+ type: string
+ id:
+ description: __Filterable__, __Read-only__ This Linode's ID which
+ must be provided for all operations impacting this Linode.
+ example: '{{id}}'
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ image:
+ allOf:
+ - description: 'An Image ID to deploy the Linode Disk from.
+
+
+ Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images)
+ operation with authentication to view all available Images.
+ Official Linode Images start with `linode/`, while your Account''s
+ Images start with `private/`. Creating a disk from a Private
+ Image requires `read_only` or `read_write` permissions for that
+ Image. Run the [Update a user''s grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants)
+ operation to adjust permissions for an Account Image.'
+ example: linode/debian9
+ type: string
+ example: '{{image}}'
+ nullable: true
+ readOnly: true
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ interface_generation:
+ description: __Filterable__, __Read-only__ Indicates if the Linode
+ is configured to use Linode interfaces (`linode`) or legacy configuration
+ profile interfaces (`legacy_config`).
+ enum:
+ - legacy_config
+ - linode
+ example: '{{interface_generation}}'
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 9
+ x-linode-filterable: true
+ ipv4:
+ description: '__Filterable__, __Read-only__ This Linode''s IPv4
+ Addresses. Each Linode is assigned a single public IPv4 address
+ upon creation, and may get a single private IPv4 address if needed.
+ You may need to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ to get additional IPv4 addresses.
+
+
+ IPv4 addresses may be reassigned between your Linodes, or shared
+ with other Linodes. See the [networking](https://techdocs.akamai.com/linode-api/reference/post-firewalls)
+ operations for details.'
+ example:
+ - 203.0.113.1
+ - 192.0.2.1
+ format: ipv4
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ ipv6:
+ description: __Read-only__ This Linode's IPv6 SLAAC address. This
+ address is specific to a Linode, and may not be shared. If the
+ Linode has not been assigned an IPv6 address, the return value
+ will be `null`.
+ example: '{{ipv6}}'
+ format: ipv6/128
+ nullable: true
+ readOnly: true
+ type: string
+ label:
+ description: '__Filterable__ Provides a name for the Linode. If
+ not provided, the API generates one for it.
+
+
+ Linode labels have the following constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens (`-`),
+ underscores (`_`) or periods (`.`).
+
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods
+ (`..`) in a row.'
+ example: '{{label}}'
+ maxLength: 64
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster_id:
+ description: __Read-only__ The ID of the Kubernetes cluster if the
+ Linode is part of cluster.
+ example: '{{lke_cluster_id}}'
+ nullable: true
+ readOnly: true
+ type: integer
+ placement_group:
+ additionalProperties: false
+ description: __Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/)
+ that this Linode belongs to. Empty if the Linode isn't in a placement
+ group.
+ nullable: true
+ properties:
+ id:
+ description: The placement group's ID. You need to provide it
+ for all operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: null
+ label:
+ description: '__Filterable__ The unique name set for the placement
+ group. A label has these constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens
+ (`-`), underscores (`_`) or periods (`.`).'
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ placement_group_policy:
+ description: "How requests to add future compute instances to\
+ \ your placement group are handled, and whether it remains\
+ \ compliant:\n\n- `strict`. Don't assign a new compute instance\
+ \ if it breaks the grouped-together or spread-apart model\
+ \ set by the `placement_group_type`. Use this to ensure the\
+ \ placement group stays compliant (`is_compliant: true`).\n\
+ - `flexible`. Assign a new compute instance, even if it breaks\
+ \ the grouped-together or spread-apart model set by the `placement_group_type`.\
+ \ This makes the group non-compliant (`is_compliant: false`).\
+ \ You need to wait for Akamai to move the offending compute\
+ \ instance to make it compliant again, once the necessary\
+ \ capacity is available in the region. Offers flexibility\
+ \ to add future compute instances if compliance isn't an immediate\
+ \ concern.\n\n<>\n\n> \U0001F4D8\n>\n> In rare cases,\
+ \ non-compliance can occur with a `strict` placement group\
+ \ if Akamai needs to failover or migrate your compute instances\
+ \ for maintenance. Fixing non-compliance for a `strict` placement\
+ \ group is prioritized over a `flexible` group."
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ x-linode-cli-display: null
+ placement_group_type:
+ description: "__Filterable__, __Read-only__ How compute instances\
+ \ are distributed in your placement group. A `placement_group_type`\
+ \ using anti-affinity (`anti-affinity:local`) places compute\
+ \ instances in separate hosts, but still in the same region.\
+ \ This best supports the spread-apart model for high availability.\
+ \ A `placement_group_type` using affinity places compute instances\
+ \ physically close together, possibly on the same host. This\
+ \ supports the grouped-together model for low-latency.\n\n\
+ > \U0001F4D8\n>\n> Currently, only `anti_affinity:local` is\
+ \ available for `placement_group_type`."
+ enum:
+ - anti_affinity:local
+ example: anti-affinity:local
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: null
+ x-linode-filterable: true
+ readOnly: true
+ type: object
+ region:
+ description: __Filterable__, __Read-only__ The [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the Linode deployed. A Linode's region can only be changed
+ by initiating a [cross data center migration](https://techdocs.akamai.com/linode-api/reference/post-migrate-linode-instance).
+ example: '{{region}}'
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ specs:
+ additionalProperties: false
+ description: __Read-only__ Information about the resources available
+ to this Linode.
+ properties:
+ disk:
+ description: __Read-only__ The amount of storage space, in MB,
+ this Linode has access to. A typical Linode divides this space
+ between a primary disk with an `image` deployed to it, and
+ a swap disk, usually 512 MB. This is the default configuration
+ created when deploying a Linode with an `image` through [Create
+ a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance).
+ While this configuration is suitable for 99% of use cases,
+ if you need finer control over your Linode's disks, see the
+ [List disks](https://techdocs.akamai.com/linode-api/reference/get-linode-disks)
+ operations.
+ example: 81920
+ readOnly: true
+ type: integer
+ gpus:
+ description: __Read-only__ The number of GPUs this Linode has
+ access to.
+ example: 0
+ readOnly: true
+ type: integer
+ memory:
+ description: '__Read-only__ The amount of RAM, in MB, this Linode
+ has access to.
+
+
+ Typically, a Linode boots with all of its available RAM, but
+ this can be configured in a config profile. See the [List
+ config profiles](https://techdocs.akamai.com/linode-api/reference/get-linode-configs)
+ operation for more information.'
+ example: 4096
+ readOnly: true
+ type: integer
+ transfer:
+ description: __Read-only__ The amount of network transfer this
+ Linode is allotted each month.
+ example: 4000
+ readOnly: true
+ type: integer
+ vcpus:
+ description: __Read-only__ The number of VCPUs this Linode has
+ access to.
+ example: 2
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ status:
+ description: '__Read-only__ A brief description of this Linode''s
+ current state. This field may change without direct action from
+ you. For example, when a compute instance goes into maintenance
+ mode, its status is `stopped`. Status is generally self-explanatory,
+ based on its name.
+
+
+ - `busy` indicates you''ve assigned the compute instance to a
+ [placement group](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups),
+ but the compute instance is currently booting. Once the boot completes,
+ the API completes the assignment and updates the compute instance''s
+ `status` accordingly.
+
+ - `provisioning` indicates that the API is applying operating
+ system or Marketplace applications on the compute instance.
+
+ - `billing_suspension` indicates that payment is past due on the
+ compute instance, so we''ve suspended its use.'
+ enum:
+ - running
+ - offline
+ - booting
+ - busy
+ - rebooting
+ - shutting_down
+ - provisioning
+ - deleting
+ - migrating
+ - rebuilding
+ - cloning
+ - restoring
+ - stopped
+ - billing_suspension
+ example: '{{status}}'
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ billing_suspension: red
+ default_: yellow
+ offline: red
+ running: green
+ x-linode-cli-display: 6
+ tags:
+ description: __Filterable__ Tags to help you organize your content.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type:
+ description: __Read-only__ This is the [Linode type](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ that this Linode was deployed with. To change a Linode's type,
+ use [Resize a Linode](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance).
+ example: '{{type}}'
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this Linode was last updated.
+ example: '{{updated}}'
+ format: date-time
+ readOnly: true
+ type: string
+ watchdog_enabled:
+ description: The watchdog, named Lassie, is a Shutdown Watchdog
+ that monitors your Linode and reboots it if it powers off unexpectedly.
+ It works by issuing a boot job when your Linode powers off without
+ a shutdown job being responsible. To prevent a loop, Lassie gives
+ up if there have been more than 5 boot jobs issued within 15 minutes.
+ example: '{{watchdog_enabled}}'
+ type: boolean
+ title: Linode
+ type: object
+ x-akamai:
+ file-path: schemas/linode.yaml
+ x-example:
+ x-ref: ../examples/put-linode-instance.json
+ 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
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ alerts:
+ additionalProperties: false
+ properties:
+ cpu:
+ description: 'The percentage of CPU usage required to trigger
+ an alert. If the average CPU usage over two hours exceeds
+ this value, we''ll send you an alert. Your Linode''s total
+ CPU capacity is represented as 100%, multiplied by its number
+ of cores.
+
+
+ For example, a two core Linode''s CPU capacity is represented
+ as 200%. If you want to be alerted at 90% of a two core
+ Linode''s CPU capacity, set the alert value to `180`.
+
+
+ The default value is 90% multiplied by the number of cores.
+
+
+ If the value is set to `0` (zero), the alert is disabled.'
+ example: 180
+ type: integer
+ io:
+ description: The amount of disk IO operation per second required
+ to trigger an alert. If the average disk IO over two hours
+ exceeds this value, we'll send you an alert. If set to `0`
+ (zero), this alert is disabled.
+ example: 10000
+ type: integer
+ network_in:
+ description: The amount of incoming traffic, in Mbit/s, required
+ to trigger an alert. If the average incoming traffic over
+ two hours exceeds this value, we'll send you an alert. If
+ this is set to `0` (zero), the alert is disabled.
+ example: 10
+ type: integer
+ network_out:
+ description: The amount of outbound traffic, in Mbit/s, required
+ to trigger an alert. If the average outbound traffic over
+ two hours exceeds this value, we'll send you an alert. If
+ this is set to `0` (zero), the alert is disabled.
+ example: 10
+ type: integer
+ transfer_quota:
+ description: The percentage of network transfer that may be
+ used before an alert is triggered. When this value is exceeded,
+ we'll alert you. If this is set to `0` (zero), the alert
+ is disabled.
+ example: 80
+ type: integer
+ type: object
+ backups:
+ additionalProperties: false
+ description: Information about this Linode's backups status. For
+ information about available backups, run [List backups](https://techdocs.akamai.com/linode-api/reference/get-backups).
+ properties:
+ available:
+ description: '__Read-only__ Whether Backups for this Linode
+ are available for restoration.
+
+
+ Backups undergoing maintenance are not available for restoration.'
+ example: true
+ readOnly: true
+ type: boolean
+ enabled:
+ description: __Read-only__ If this Linode has the Backup service
+ enabled. To enable backups, run [Enable backups](https://techdocs.akamai.com/linode-api/reference/post-enable-backups).
+ example: true
+ readOnly: true
+ type: boolean
+ last_successful:
+ description: __Read-only__ The last successful backup time.
+ Displayed as `null` if there was no previous backup.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ schedule:
+ additionalProperties: false
+ properties:
+ day:
+ description: 'The day of the week that your Linode''s
+ weekly backup is taken. If not set manually, a day will
+ be chosen for you. Backups are taken every day, but
+ backups taken on this day are preferred when selecting
+ backups to retain for a longer period.
+
+
+ If not set manually, then when backups are initially
+ enabled, this may come back as `Scheduling` until the
+ `day` is automatically selected.'
+ enum:
+ - Scheduling
+ - Sunday
+ - Monday
+ - Tuesday
+ - Wednesday
+ - Thursday
+ - Friday
+ - Saturday
+ example: Saturday
+ nullable: true
+ type: string
+ window:
+ description: 'When your backups will be taken, in UTC.
+ A backups window is a two-hour span of time in which
+ the backup may occur.
+
+
+ For example, `W10` indicates that your backups should
+ be taken between 10:00 and 12:00. If you don''t choose
+ a backup window, the API automatically assigns one.
+
+
+ If not set manually, when backups are initially enabled
+ this may come back as `Scheduling` until the `window`
+ is automatically selected.'
+ enum:
+ - Scheduling
+ - W0
+ - W2
+ - W4
+ - W6
+ - W8
+ - W10
+ - W12
+ - W14
+ - W16
+ - W18
+ - W20
+ - W22
+ example: W22
+ nullable: true
+ type: string
+ type: object
+ type: object
+ capabilities:
+ description: __Limited availability__, __Read-only__ A list of
+ capabilities this compute instance supports.
+ example:
+ - Block Storage Encryption
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ status: LA
+ created:
+ description: __Read-only__ When this Linode was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ disk_encryption:
+ default: enabled
+ description: __Read-only__ Indicates the local disk encryption
+ setting for this Linode. If the Linode is part of an LKE cluster,
+ the value is `null`.
+ example: disabled
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ group:
+ deprecated: true
+ description: __Deprecated__, __Filterable__ The group label for
+ this Linode.
+ example: Linode-Group
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ status: DEPRECATED
+ x-linode-filterable: true
+ has_user_data:
+ description: __Read-only__ Whether this compute instance was provisioned
+ with `user_data` provided via the Metadata service. See the
+ [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+ description for more information on Metadata.
+ example: true
+ readOnly: true
+ type: boolean
+ host_uuid:
+ description: __Read-only__ The Linode's host machine, as a UUID.
+ example: 3a3ddd59d9a78bb8de041391075df44de62bfec8
+ format: uuid
+ readOnly: true
+ type: string
+ hypervisor:
+ description: __Read-only__ The virtualization software powering
+ this Linode.
+ enum:
+ - kvm
+ example: kvm
+ readOnly: true
+ type: string
+ id:
+ description: __Filterable__, __Read-only__ This Linode's ID which
+ must be provided for all operations impacting this Linode.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ image:
+ allOf:
+ - description: 'An Image ID to deploy the Linode Disk from.
+
+
+ Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images)
+ operation with authentication to view all available Images.
+ Official Linode Images start with `linode/`, while your Account''s
+ Images start with `private/`. Creating a disk from a Private
+ Image requires `read_only` or `read_write` permissions for
+ that Image. Run the [Update a user''s grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants)
+ operation to adjust permissions for an Account Image.'
+ example: linode/debian9
+ type: string
+ example: linode/debian10
+ nullable: true
+ readOnly: true
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ interface_generation:
+ description: __Filterable__, __Read-only__ Indicates if the Linode
+ is configured to use Linode interfaces (`linode`) or legacy
+ configuration profile interfaces (`legacy_config`).
+ enum:
+ - legacy_config
+ - linode
+ example: linode
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 9
+ x-linode-filterable: true
+ ipv4:
+ description: '__Filterable__, __Read-only__ This Linode''s IPv4
+ Addresses. Each Linode is assigned a single public IPv4 address
+ upon creation, and may get a single private IPv4 address if
+ needed. You may need to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ to get additional IPv4 addresses.
+
+
+ IPv4 addresses may be reassigned between your Linodes, or shared
+ with other Linodes. See the [networking](https://techdocs.akamai.com/linode-api/reference/post-firewalls)
+ operations for details.'
+ example:
+ - 203.0.113.1
+ - 192.0.2.1
+ format: ipv4
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ ipv6:
+ description: __Read-only__ This Linode's IPv6 SLAAC address. This
+ address is specific to a Linode, and may not be shared. If the
+ Linode has not been assigned an IPv6 address, the return value
+ will be `null`.
+ example: c001:d00d::1337/128
+ format: ipv6/128
+ nullable: true
+ readOnly: true
+ type: string
+ label:
+ description: '__Filterable__ Provides a name for the Linode. If
+ not provided, the API generates one for it.
+
+
+ Linode labels have the following constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens (`-`),
+ underscores (`_`) or periods (`.`).
+
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods
+ (`..`) in a row.'
+ example: linode123
+ maxLength: 64
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster_id:
+ description: __Read-only__ The ID of the Kubernetes cluster if
+ the Linode is part of cluster.
+ example: 1
+ nullable: true
+ readOnly: true
+ type: integer
+ placement_group:
+ additionalProperties: false
+ description: __Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/)
+ that this Linode belongs to. Empty if the Linode isn't in a
+ placement group.
+ nullable: true
+ properties:
+ id:
+ description: The placement group's ID. You need to provide
+ it for all operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: null
+ label:
+ description: '__Filterable__ The unique name set for the placement
+ group. A label has these constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens
+ (`-`), underscores (`_`) or periods (`.`).'
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ placement_group_policy:
+ description: "How requests to add future compute instances\
+ \ to your placement group are handled, and whether it remains\
+ \ compliant:\n\n- `strict`. Don't assign a new compute instance\
+ \ if it breaks the grouped-together or spread-apart model\
+ \ set by the `placement_group_type`. Use this to ensure\
+ \ the placement group stays compliant (`is_compliant: true`).\n\
+ - `flexible`. Assign a new compute instance, even if it\
+ \ breaks the grouped-together or spread-apart model set\
+ \ by the `placement_group_type`. This makes the group non-compliant\
+ \ (`is_compliant: false`). You need to wait for Akamai to\
+ \ move the offending compute instance to make it compliant\
+ \ again, once the necessary capacity is available in the\
+ \ region. Offers flexibility to add future compute instances\
+ \ if compliance isn't an immediate concern.\n\n<>\n\n\
+ > \U0001F4D8\n>\n> In rare cases, non-compliance can occur\
+ \ with a `strict` placement group if Akamai needs to failover\
+ \ or migrate your compute instances for maintenance. Fixing\
+ \ non-compliance for a `strict` placement group is prioritized\
+ \ over a `flexible` group."
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ x-linode-cli-display: null
+ placement_group_type:
+ description: "__Filterable__, __Read-only__ How compute instances\
+ \ are distributed in your placement group. A `placement_group_type`\
+ \ using anti-affinity (`anti-affinity:local`) places compute\
+ \ instances in separate hosts, but still in the same region.\
+ \ This best supports the spread-apart model for high availability.\
+ \ A `placement_group_type` using affinity places compute\
+ \ instances physically close together, possibly on the same\
+ \ host. This supports the grouped-together model for low-latency.\n\
+ \n> \U0001F4D8\n>\n> Currently, only `anti_affinity:local`\
+ \ is available for `placement_group_type`."
+ enum:
+ - anti_affinity:local
+ example: anti-affinity:local
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: null
+ x-linode-filterable: true
+ readOnly: true
+ type: object
+ region:
+ description: __Filterable__, __Read-only__ The [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the Linode deployed. A Linode's region can only be changed
+ by initiating a [cross data center migration](https://techdocs.akamai.com/linode-api/reference/post-migrate-linode-instance).
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ specs:
+ additionalProperties: false
+ description: __Read-only__ Information about the resources available
+ to this Linode.
+ properties:
+ disk:
+ description: __Read-only__ The amount of storage space, in
+ MB, this Linode has access to. A typical Linode divides
+ this space between a primary disk with an `image` deployed
+ to it, and a swap disk, usually 512 MB. This is the default
+ configuration created when deploying a Linode with an `image`
+ through [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance).
+ While this configuration is suitable for 99% of use cases,
+ if you need finer control over your Linode's disks, see
+ the [List disks](https://techdocs.akamai.com/linode-api/reference/get-linode-disks)
+ operations.
+ example: 81920
+ readOnly: true
+ type: integer
+ gpus:
+ description: __Read-only__ The number of GPUs this Linode
+ has access to.
+ example: 0
+ readOnly: true
+ type: integer
+ memory:
+ description: '__Read-only__ The amount of RAM, in MB, this
+ Linode has access to.
+
+
+ Typically, a Linode boots with all of its available RAM,
+ but this can be configured in a config profile. See the
+ [List config profiles](https://techdocs.akamai.com/linode-api/reference/get-linode-configs)
+ operation for more information.'
+ example: 4096
+ readOnly: true
+ type: integer
+ transfer:
+ description: __Read-only__ The amount of network transfer
+ this Linode is allotted each month.
+ example: 4000
+ readOnly: true
+ type: integer
+ vcpus:
+ description: __Read-only__ The number of VCPUs this Linode
+ has access to.
+ example: 2
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ status:
+ description: '__Read-only__ A brief description of this Linode''s
+ current state. This field may change without direct action from
+ you. For example, when a compute instance goes into maintenance
+ mode, its status is `stopped`. Status is generally self-explanatory,
+ based on its name.
+
+
+ - `busy` indicates you''ve assigned the compute instance to
+ a [placement group](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups),
+ but the compute instance is currently booting. Once the boot
+ completes, the API completes the assignment and updates the
+ compute instance''s `status` accordingly.
+
+ - `provisioning` indicates that the API is applying operating
+ system or Marketplace applications on the compute instance.
+
+ - `billing_suspension` indicates that payment is past due on
+ the compute instance, so we''ve suspended its use.'
+ enum:
+ - running
+ - offline
+ - booting
+ - busy
+ - rebooting
+ - shutting_down
+ - provisioning
+ - deleting
+ - migrating
+ - rebuilding
+ - cloning
+ - restoring
+ - stopped
+ - billing_suspension
+ example: running
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ billing_suspension: red
+ default_: yellow
+ offline: red
+ running: green
+ x-linode-cli-display: 6
+ tags:
+ description: __Filterable__ Tags to help you organize your content.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type:
+ description: __Read-only__ This is the [Linode type](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ that this Linode was deployed with. To change a Linode's type,
+ use [Resize a Linode](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance).
+ example: g6-standard-1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this Linode was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ watchdog_enabled:
+ description: The watchdog, named Lassie, is a Shutdown Watchdog
+ that monitors your Linode and reboots it if it powers off unexpectedly.
+ It works by issuing a boot job when your Linode powers off without
+ a shutdown job being responsible. To prevent a loop, Lassie
+ gives up if there have been more than 5 boot jobs issued within
+ 15 minutes.
+ example: true
+ type: boolean
+ title: Linode
+ type: object
+ x-akamai:
+ file-path: schemas/linode.yaml
+ x-example:
+ x-ref: ../examples/get-linode-instance-200.json
+ description: The updated Linode.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Update a Linode
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes update 7833080 \\\n --label linode123 \\\n\
+ \ --backups.schedule.day \"Saturday\" \\\n --backups.schedule.window\
+ \ \"W22\" \\\n --alerts.cpu 180 \\\n --alerts.network_in 10 \\\n --alerts.network_out\
+ \ 10 \\\n --alerts.transfer_quota 80 \\\n --alerts.io 10000"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update
+ x-linode-grant: read_write
+ delete:
+ description: "Deletes a Linode you have permission to `read_write`.\n\n__Deleting\
+ \ a Linode is a destructive action and cannot be undone.__\n\nAdditionally,\
+ \ deleting a Linode:\n\n - Gives up any IP addresses the Linode was assigned.\n\
+ \ - Deletes all Disks, Backups, Configs, etc.\n - Detaches any Volumes associated\
+ \ with the Linode.\n - Stops billing for the Linode and its associated services.\
+ \ You will be billed for time used within the billing period the Linode was\
+ \ active.\n\nLinodes that are in the process of [cloning](https://techdocs.akamai.com/linode-api/reference/post-clone-linode-instance)\
+ \ or [backup restoration](https://techdocs.akamai.com/linode-api/reference/post-restore-backup)\
+ \ cannot be deleted.\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-linode-instance
+ operationId: delete-linode-instance
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-linode-instance-200.json
+ description: Delete successful.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Delete a Linode
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes delete 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - delete
+ - rm
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Linode to look up.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-32b5e821.yaml
+ x-akamai:
+ file-path: paths/linode.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/backups:
+ post:
+ description: "Creates a snapshot backup of a Linode.\n\n> \U0001F4D8\n>\n> -\
+ \ Backups aren't encrypted even when they're taken from an encrypted disk.\
+ \ When a backup is restored, and if encryption is enabled, the data stored\
+ \ on the disk is encrypted again.\n>\n> - If you already have a snapshot of\
+ \ this Linode, the previous snapshot will be deleted.\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-snapshot
+ operationId: post-snapshot
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ label:
+ description: The label for the new snapshot.
+ example: '{{label}}'
+ maxLength: 255
+ minLength: 1
+ type: string
+ required:
+ - label
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-snapshot.yaml
+ x-example:
+ x-ref: ../examples/post-snapshot.json
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An object representing a Backup or snapshot for a Linode
+ with Backup service enabled.
+ properties:
+ available:
+ description: '__Read-only__ Whether this Backup is available for
+ restoration.
+
+
+ Backups undergoing maintenance are not available for restoration.'
+ example: true
+ readOnly: true
+ type: boolean
+ configs:
+ description: __Read-only__ A list of the labels of the Configuration
+ profiles that are part of the Backup.
+ items:
+ example: My Debian 9 Config
+ type: string
+ readOnly: true
+ type: array
+ created:
+ description: __Read-only__ The date the Backup was taken.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ disks:
+ description: __Read-only__ A list of the disks that are part of
+ the Backup.
+ items:
+ additionalProperties: false
+ properties:
+ filesystem:
+ description: "The disk's format or file system. A value\
+ \ of `raw` indicates no file system, just a raw binary\
+ \ stream. A value of `swap` indicates a Linux swap area.\
+ \ The values `ext3` or `ext4` represent these Linux journaling\
+ \ file systems. The value `ext2` is the deprecated ext2\
+ \ Linux file system. Finally, `initrd` indicates the disk\
+ \ is formatted as an uncompressed initial RAM disk.\n\n\
+ > \U0001F4D8\n>\n> The `ext2` file system doesn't properly\
+ \ support timestamps and will be removed from Linux support\
+ \ in the near future. Also, `initrd` is a legacy format\
+ \ that no longer applies to most use cases. As a best\
+ \ practice, use the other supported formats or file systems\
+ \ instead."
+ enum:
+ - raw
+ - swap
+ - ext2
+ - ext3
+ - ext4
+ - initrd
+ example: ext4
+ type: string
+ x-linode-cli-display: 5
+ label:
+ example: My Debian 9 Disk
+ type: string
+ size:
+ example: 9001
+ type: integer
+ type: object
+ readOnly: true
+ type: array
+ finished:
+ description: __Read-only__ The date the Backup completed.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique ID of this Backup.
+ example: 123456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: A label for Backups that are of type `snapshot`.
+ example: Webserver-Backup-2018
+ nullable: true
+ type: string
+ x-linode-cli-display: 5
+ status:
+ description: __Read-only__ The current state of a specific Backup.
+ enum:
+ - paused
+ - pending
+ - running
+ - needsPostProcessing
+ - successful
+ - failed
+ - userAborted
+ example: successful
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ failed: red
+ successful: green
+ userAborted: f
+ x-linode-cli-display: 2
+ type:
+ description: __Read-only__ This indicates whether the Backup is
+ an automatic Backup or manual snapshot taken by the User at
+ a specific point in time.
+ enum:
+ - auto
+ - snapshot
+ example: snapshot
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ updated:
+ description: __Read-only__ The date the Backup was most recently
+ updated.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/backup.yaml
+ x-example:
+ x-ref: ../examples/post-snapshot-200.json
+ description: Snapshot request successful.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Create a snapshot
+ tags:
+ - Backups
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes snapshot 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: snapshot
+ x-linode-grant: read_write
+ get:
+ description: 'Returns information about this Linode''s available backups.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-backups
+ operationId: get-backups
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ automatic:
+ items:
+ allOf:
+ - additionalProperties: false
+ description: An object representing a Backup or snapshot for
+ a Linode with Backup service enabled.
+ properties:
+ available:
+ description: '__Read-only__ Whether this Backup is available
+ for restoration.
+
+
+ Backups undergoing maintenance are not available for
+ restoration.'
+ example: true
+ readOnly: true
+ type: boolean
+ configs:
+ description: __Read-only__ A list of the labels of the
+ Configuration profiles that are part of the Backup.
+ items:
+ example: My Debian 9 Config
+ type: string
+ readOnly: true
+ type: array
+ created:
+ description: __Read-only__ The date the Backup was taken.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ disks:
+ description: __Read-only__ A list of the disks that are
+ part of the Backup.
+ items:
+ additionalProperties: false
+ properties:
+ filesystem:
+ description: "The disk's format or file system.\
+ \ A value of `raw` indicates no file system, just\
+ \ a raw binary stream. A value of `swap` indicates\
+ \ a Linux swap area. The values `ext3` or `ext4`\
+ \ represent these Linux journaling file systems.\
+ \ The value `ext2` is the deprecated ext2 Linux\
+ \ file system. Finally, `initrd` indicates the\
+ \ disk is formatted as an uncompressed initial\
+ \ RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file\
+ \ system doesn't properly support timestamps and\
+ \ will be removed from Linux support in the near\
+ \ future. Also, `initrd` is a legacy format that\
+ \ no longer applies to most use cases. As a best\
+ \ practice, use the other supported formats or\
+ \ file systems instead."
+ enum:
+ - raw
+ - swap
+ - ext2
+ - ext3
+ - ext4
+ - initrd
+ example: ext4
+ type: string
+ x-linode-cli-display: 5
+ label:
+ example: My Debian 9 Disk
+ type: string
+ size:
+ example: 9001
+ type: integer
+ type: object
+ readOnly: true
+ type: array
+ finished:
+ description: __Read-only__ The date the Backup completed.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique ID of this Backup.
+ example: 123456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: A label for Backups that are of type `snapshot`.
+ example: Webserver-Backup-2018
+ nullable: true
+ type: string
+ x-linode-cli-display: 5
+ status:
+ description: __Read-only__ The current state of a specific
+ Backup.
+ enum:
+ - paused
+ - pending
+ - running
+ - needsPostProcessing
+ - successful
+ - failed
+ - userAborted
+ example: successful
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ failed: red
+ successful: green
+ userAborted: f
+ x-linode-cli-display: 2
+ type:
+ description: __Read-only__ This indicates whether the
+ Backup is an automatic Backup or manual snapshot taken
+ by the User at a specific point in time.
+ enum:
+ - auto
+ - snapshot
+ example: snapshot
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ updated:
+ description: __Read-only__ The date the Backup was most
+ recently updated.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/backup.yaml
+ - properties:
+ type:
+ example: automatic
+ type: string
+ type: object
+ type: array
+ snapshot:
+ additionalProperties: false
+ properties:
+ current:
+ additionalProperties: false
+ description: An object representing a Backup or snapshot for
+ a Linode with Backup service enabled.
+ properties:
+ available:
+ description: '__Read-only__ Whether this Backup is available
+ for restoration.
+
+
+ Backups undergoing maintenance are not available for
+ restoration.'
+ example: true
+ readOnly: true
+ type: boolean
+ configs:
+ description: __Read-only__ A list of the labels of the
+ Configuration profiles that are part of the Backup.
+ items:
+ example: My Debian 9 Config
+ type: string
+ readOnly: true
+ type: array
+ created:
+ description: __Read-only__ The date the Backup was taken.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ disks:
+ description: __Read-only__ A list of the disks that are
+ part of the Backup.
+ items:
+ additionalProperties: false
+ properties:
+ filesystem:
+ description: "The disk's format or file system.\
+ \ A value of `raw` indicates no file system, just\
+ \ a raw binary stream. A value of `swap` indicates\
+ \ a Linux swap area. The values `ext3` or `ext4`\
+ \ represent these Linux journaling file systems.\
+ \ The value `ext2` is the deprecated ext2 Linux\
+ \ file system. Finally, `initrd` indicates the\
+ \ disk is formatted as an uncompressed initial\
+ \ RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file\
+ \ system doesn't properly support timestamps and\
+ \ will be removed from Linux support in the near\
+ \ future. Also, `initrd` is a legacy format that\
+ \ no longer applies to most use cases. As a best\
+ \ practice, use the other supported formats or\
+ \ file systems instead."
+ enum:
+ - raw
+ - swap
+ - ext2
+ - ext3
+ - ext4
+ - initrd
+ example: ext4
+ type: string
+ x-linode-cli-display: 5
+ label:
+ example: My Debian 9 Disk
+ type: string
+ size:
+ example: 9001
+ type: integer
+ type: object
+ readOnly: true
+ type: array
+ finished:
+ description: __Read-only__ The date the Backup completed.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique ID of this Backup.
+ example: 123456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: A label for Backups that are of type `snapshot`.
+ example: Webserver-Backup-2018
+ nullable: true
+ type: string
+ x-linode-cli-display: 5
+ status:
+ description: __Read-only__ The current state of a specific
+ Backup.
+ enum:
+ - paused
+ - pending
+ - running
+ - needsPostProcessing
+ - successful
+ - failed
+ - userAborted
+ example: successful
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ failed: red
+ successful: green
+ userAborted: f
+ x-linode-cli-display: 2
+ type:
+ description: __Read-only__ This indicates whether the
+ Backup is an automatic Backup or manual snapshot taken
+ by the User at a specific point in time.
+ enum:
+ - auto
+ - snapshot
+ example: snapshot
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ updated:
+ description: __Read-only__ The date the Backup was most
+ recently updated.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/backup.yaml
+ in_progress:
+ additionalProperties: false
+ description: An object representing a Backup or snapshot for
+ a Linode with Backup service enabled.
+ properties:
+ available:
+ description: '__Read-only__ Whether this Backup is available
+ for restoration.
+
+
+ Backups undergoing maintenance are not available for
+ restoration.'
+ example: true
+ readOnly: true
+ type: boolean
+ configs:
+ description: __Read-only__ A list of the labels of the
+ Configuration profiles that are part of the Backup.
+ items:
+ example: My Debian 9 Config
+ type: string
+ readOnly: true
+ type: array
+ created:
+ description: __Read-only__ The date the Backup was taken.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ disks:
+ description: __Read-only__ A list of the disks that are
+ part of the Backup.
+ items:
+ additionalProperties: false
+ properties:
+ filesystem:
+ description: "The disk's format or file system.\
+ \ A value of `raw` indicates no file system, just\
+ \ a raw binary stream. A value of `swap` indicates\
+ \ a Linux swap area. The values `ext3` or `ext4`\
+ \ represent these Linux journaling file systems.\
+ \ The value `ext2` is the deprecated ext2 Linux\
+ \ file system. Finally, `initrd` indicates the\
+ \ disk is formatted as an uncompressed initial\
+ \ RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file\
+ \ system doesn't properly support timestamps and\
+ \ will be removed from Linux support in the near\
+ \ future. Also, `initrd` is a legacy format that\
+ \ no longer applies to most use cases. As a best\
+ \ practice, use the other supported formats or\
+ \ file systems instead."
+ enum:
+ - raw
+ - swap
+ - ext2
+ - ext3
+ - ext4
+ - initrd
+ example: ext4
+ type: string
+ x-linode-cli-display: 5
+ label:
+ example: My Debian 9 Disk
+ type: string
+ size:
+ example: 9001
+ type: integer
+ type: object
+ readOnly: true
+ type: array
+ finished:
+ description: __Read-only__ The date the Backup completed.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique ID of this Backup.
+ example: 123456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: A label for Backups that are of type `snapshot`.
+ example: Webserver-Backup-2018
+ nullable: true
+ type: string
+ x-linode-cli-display: 5
+ status:
+ description: __Read-only__ The current state of a specific
+ Backup.
+ enum:
+ - paused
+ - pending
+ - running
+ - needsPostProcessing
+ - successful
+ - failed
+ - userAborted
+ example: successful
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ failed: red
+ successful: green
+ userAborted: f
+ x-linode-cli-display: 2
+ type:
+ description: __Read-only__ This indicates whether the
+ Backup is an automatic Backup or manual snapshot taken
+ by the User at a specific point in time.
+ enum:
+ - auto
+ - snapshot
+ example: snapshot
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ updated:
+ description: __Read-only__ The date the Backup was most
+ recently updated.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/backup.yaml
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-backups-200.yaml
+ x-example:
+ x-ref: ../examples/get-backups-200.json
+ x-linode-cli-rows:
+ - automatic
+ - snapshot.current
+ - snapshot.in_progress
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ description: An object representing a Backup or snapshot for a Linode
+ with Backup service enabled.
+ properties:
+ available:
+ description: '__Read-only__ Whether this Backup is available for
+ restoration.
+
+
+ Backups undergoing maintenance are not available for restoration.'
+ example: true
+ readOnly: true
+ type: boolean
+ configs:
+ description: __Read-only__ A list of the labels of the Configuration
+ profiles that are part of the Backup.
+ items:
+ example: My Debian 9 Config
+ type: string
+ readOnly: true
+ type: array
+ created:
+ description: __Read-only__ The date the Backup was taken.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ disks:
+ description: __Read-only__ A list of the disks that are part of
+ the Backup.
+ items:
+ additionalProperties: false
+ properties:
+ filesystem:
+ description: "The disk's format or file system. A value\
+ \ of `raw` indicates no file system, just a raw binary\
+ \ stream. A value of `swap` indicates a Linux swap area.\
+ \ The values `ext3` or `ext4` represent these Linux journaling\
+ \ file systems. The value `ext2` is the deprecated ext2\
+ \ Linux file system. Finally, `initrd` indicates the disk\
+ \ is formatted as an uncompressed initial RAM disk.\n\n\
+ > \U0001F4D8\n>\n> The `ext2` file system doesn't properly\
+ \ support timestamps and will be removed from Linux support\
+ \ in the near future. Also, `initrd` is a legacy format\
+ \ that no longer applies to most use cases. As a best\
+ \ practice, use the other supported formats or file systems\
+ \ instead."
+ enum:
+ - raw
+ - swap
+ - ext2
+ - ext3
+ - ext4
+ - initrd
+ example: ext4
+ type: string
+ x-linode-cli-display: 5
+ label:
+ example: My Debian 9 Disk
+ type: string
+ size:
+ example: 9001
+ type: integer
+ type: object
+ readOnly: true
+ type: array
+ finished:
+ description: __Read-only__ The date the Backup completed.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique ID of this Backup.
+ example: 123456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: A label for Backups that are of type `snapshot`.
+ example: Webserver-Backup-2018
+ nullable: true
+ type: string
+ x-linode-cli-display: 5
+ status:
+ description: __Read-only__ The current state of a specific Backup.
+ enum:
+ - paused
+ - pending
+ - running
+ - needsPostProcessing
+ - successful
+ - failed
+ - userAborted
+ example: successful
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ failed: red
+ successful: green
+ userAborted: f
+ x-linode-cli-display: 2
+ type:
+ description: __Read-only__ This indicates whether the Backup is
+ an automatic Backup or manual snapshot taken by the User at
+ a specific point in time.
+ enum:
+ - auto
+ - snapshot
+ example: snapshot
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ updated:
+ description: __Read-only__ The date the Backup was most recently
+ updated.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/backup.yaml
+ description: A collection of the specified Linode's available backups.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: List backups
+ tags:
+ - Backups
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes backups-list 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: backups-list
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the Linode the backups belong to.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-c264fcc4.yaml
+ x-akamai:
+ file-path: paths/linode-backups.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/backups
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/backups/cancel:
+ post:
+ description: 'Cancels the Backup service on the given Linode. Deletes all of
+ this Linode''s existing backups forever.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-cancel-backups
+ operationId: post-cancel-backups
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-cancel-backups-200.json
+ description: Backup service was canceled for the specified Linode.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Cancel backups
+ tags:
+ - Backups
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes backups-cancel 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: backups-cancel
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Linode to cancel backup service for.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-8c2bdc46.yaml
+ x-akamai:
+ file-path: paths/linode-backups-cancel.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/backups/cancel
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/backups/enable:
+ post:
+ description: "Enables backups for the specified Linode.\n\n> \U0001F4D8\n>\n\
+ > Backups aren't encrypted even when they're taken from an encrypted disk.\
+ \ When a backup is restored, and if encryption is enabled, the data stored\
+ \ on the disk is encrypted again.\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-enable-backups
+ operationId: post-enable-backups
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-enable-backups-200.json
+ description: Backup service was enabled.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Enable backups
+ tags:
+ - Backups
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes backups-enable 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: backups-enable
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Linode to enable backup service for.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-b606dac5.yaml
+ x-akamai:
+ file-path: paths/backup-enable.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/backups/enable
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/backups/{backupId}:
+ get:
+ description: 'Returns information about a Backup.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-backup
+ operationId: get-backup
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An object representing a Backup or snapshot for a Linode
+ with Backup service enabled.
+ properties:
+ available:
+ description: '__Read-only__ Whether this Backup is available for
+ restoration.
+
+
+ Backups undergoing maintenance are not available for restoration.'
+ example: true
+ readOnly: true
+ type: boolean
+ configs:
+ description: __Read-only__ A list of the labels of the Configuration
+ profiles that are part of the Backup.
+ items:
+ example: My Debian 9 Config
+ type: string
+ readOnly: true
+ type: array
+ created:
+ description: __Read-only__ The date the Backup was taken.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ disks:
+ description: __Read-only__ A list of the disks that are part of
+ the Backup.
+ items:
+ additionalProperties: false
+ properties:
+ filesystem:
+ description: "The disk's format or file system. A value\
+ \ of `raw` indicates no file system, just a raw binary\
+ \ stream. A value of `swap` indicates a Linux swap area.\
+ \ The values `ext3` or `ext4` represent these Linux journaling\
+ \ file systems. The value `ext2` is the deprecated ext2\
+ \ Linux file system. Finally, `initrd` indicates the disk\
+ \ is formatted as an uncompressed initial RAM disk.\n\n\
+ > \U0001F4D8\n>\n> The `ext2` file system doesn't properly\
+ \ support timestamps and will be removed from Linux support\
+ \ in the near future. Also, `initrd` is a legacy format\
+ \ that no longer applies to most use cases. As a best\
+ \ practice, use the other supported formats or file systems\
+ \ instead."
+ enum:
+ - raw
+ - swap
+ - ext2
+ - ext3
+ - ext4
+ - initrd
+ example: ext4
+ type: string
+ x-linode-cli-display: 5
+ label:
+ example: My Debian 9 Disk
+ type: string
+ size:
+ example: 9001
+ type: integer
+ type: object
+ readOnly: true
+ type: array
+ finished:
+ description: __Read-only__ The date the Backup completed.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique ID of this Backup.
+ example: 123456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: A label for Backups that are of type `snapshot`.
+ example: Webserver-Backup-2018
+ nullable: true
+ type: string
+ x-linode-cli-display: 5
+ status:
+ description: __Read-only__ The current state of a specific Backup.
+ enum:
+ - paused
+ - pending
+ - running
+ - needsPostProcessing
+ - successful
+ - failed
+ - userAborted
+ example: successful
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ failed: red
+ successful: green
+ userAborted: f
+ x-linode-cli-display: 2
+ type:
+ description: __Read-only__ This indicates whether the Backup is
+ an automatic Backup or manual snapshot taken by the User at
+ a specific point in time.
+ enum:
+ - auto
+ - snapshot
+ example: snapshot
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ updated:
+ description: __Read-only__ The date the Backup was most recently
+ updated.
+ example: '2018-01-15T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/backup.yaml
+ x-example:
+ x-ref: ../examples/get-backup-200.json
+ description: A single Backup.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: Get a backup
+ tags:
+ - Backups
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes backup-view 123 123456
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: backup-view
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the Linode the Backup belongs to.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-2f961b69.yaml
+ - description: The ID of the Backup to look up.
+ example: '{{backupId}}'
+ in: path
+ name: backupId
+ required: true
+ schema:
+ example: 526
+ type: integer
+ x-akamai:
+ file-path: parameters/backup-id-path-4ea00e5a.yaml
+ x-akamai:
+ file-path: paths/linode-backup.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/backups/{backupId}
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/backups/{backupId}/restore:
+ post:
+ description: "Restores a Linode's backup to the specified Linode.\n\n- Backups\
+ \ may not be restored across regions.\n- Only successfully completed backups\
+ \ that are not undergoing maintenance can be restored.\n- The Linode that\
+ \ the backup is being restored to can't be the target of a current backup.\n\
+ \nWhen you restore a backup, the restored disk is assigned the same [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier)\
+ \ as the original disk. In most cases, this is acceptable and doesn't cause\
+ \ issues. However, if you try to mount both the original disk and the corresponding\
+ \ restore disk at the same time (by assigning them both to devices in your\
+ \ Configuration Profile's __Block Device Assignment__), you'll encounter a\
+ \ UUID \"collision\".\n\nWhen this happens, the system selects, and mounts,\
+ \ only one of the disks at random. This is because both disks are sharing\
+ \ the same UUID. Your instance _may fail to boot_ because the API can't tell\
+ \ which disk is root. If your system boots in this scenario, you won't see\
+ \ an immediate indication if you're booted into the restored disk or the original\
+ \ disk, and you'll be unable to access both disks at the same time.\n\nTo\
+ \ avoid this, only restore a backup to the same Linode if you don't intend\
+ \ to mount them at the same time, or you're comfortable modifying UUIDs. If\
+ \ you need access to files on both the original disk and the restored disk\
+ \ simultaneously -- for example, if you need to copy files between them --\
+ \ you should restore the backup to a separate Linode or [create](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)\
+ \ a new Linode using the desired `backup_id`.\n\nTo learn more about block\
+ \ device assignments and viewing your disks' UUIDs, see our guide on [Configuration\
+ \ Profiles](https://www.linode.com/docs/products/compute/compute-instances/guides/configuration-profiles/#block-device-assignment).\n\
+ \n> \U0001F4D8\n>\n> Backups aren't encrypted even when they're taken from\
+ \ an encrypted disk. When a backup is restored, and if encryption is enabled,\
+ \ the data stored on the disk is encrypted again.\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-restore-backup
+ operationId: post-restore-backup
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ linode_id:
+ description: The ID of the Linode to restore a Backup to.
+ example: '{{linode_id}}'
+ type: integer
+ overwrite:
+ 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: '{{overwrite}}'
+ type: boolean
+ required:
+ - linode_id
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-restore-backup.yaml
+ x-example:
+ x-ref: ../examples/post-restore-backup.json
+ description: Parameters to provide when restoring the Backup.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-restore-backup-200.json
+ description: Restore from Backup was initiated.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Restore a backup
+ tags:
+ - Backups
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes backup-restore 123 123456 \\\n --linode_id\
+ \ 234 \\\n --overwrite true"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: backup-restore
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Linode that the Backup belongs to.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-b7f66cf7.yaml
+ - description: The ID of the Backup to restore.
+ example: '{{backupId}}'
+ in: path
+ name: backupId
+ required: true
+ schema:
+ example: 526
+ type: integer
+ x-akamai:
+ file-path: parameters/backup-id-path-d7402da7.yaml
+ x-akamai:
+ file-path: paths/restore.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/backups/{backupId}/restore
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/boot:
+ post:
+ description: 'Boots a Linode you have permission to modify.
+
+
+ If the Linode is using config profiles, and no parameters are given, a config
+ profile is 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.
+
+
+ If the Linode is using Linode interfaces, where `interface_generation` is
+ set as `linode`, an error is returned if the Linode has to boot without any
+ interface defined.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-boot-linode-instance
+ operationId: post-boot-linode-instance
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ config_id:
+ description: The Linode Config ID to boot into.
+ example: '{{config_id}}'
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-boot-linode-instance.yaml
+ x-example:
+ x-ref: ../examples/post-boot-linode-instance.json
+ description: Optional configuration to boot into (see above).
+ required: false
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-boot-linode-instance-200.json
+ description: Boot started.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Boot a Linode
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes boot 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: boot
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Linode to boot.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-3880d973.yaml
+ x-akamai:
+ file-path: paths/boot.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/boot
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/clone:
+ post:
+ description: 'You can clone your Linode''s existing disks, configuration profiles
+ and interfaces to another Linode on your account. In order for this request
+ to complete successfully, you need the `add_linodes` grant.
+
+
+ For Linodes using Linode interfaces, the clone needs to be located in a region
+ that supports Linode interfaces (see [GET a region](https://techdocs.akamai.com/linode-api/reference/get-region)).
+ The [account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings)
+ need to allow creation of Linodes with Linode interfaces.
+
+
+ Cloning to a new Linode incurs 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 operation.
+
+
+ Any [tags](https://techdocs.akamai.com/linode-api/reference/get-tags) existing
+ on the source Linode will be cloned to the target Linode.
+
+
+ Linodes utilizing Metadata (`"has_user_data": true`) must be cloned to a new
+ Linode with `metadata.user_data` included with the clone request.
+
+
+ `vpc` details
+
+
+ - If the Linode you''re cloning has a `vpc` interface on its active legacy
+ configuration profile that includes a 1:1 NAT, the resulting clone is configured
+ with an `any` 1:1 NAT.
+
+ - See the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications)
+ guide for its specifications and limitations.
+
+
+ `vlan` details
+
+
+ - Only Next Generation Network (NGN) data centers support VLANs. If a VLAN
+ is attached to your Linode and you attempt clone it to a non-NGN data center,
+ the cloning will not initiate. If a Linode cannot be cloned because of an
+ incompatibility, you will be prompted to select a different data center or
+ contact support.
+
+ - See the [VLANs Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications)
+ guide to view additional specifications and limitations.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-clone-linode-instance
+ operationId: post-clone-linode-instance
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ backups_enabled:
+ 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 [List types](https://techdocs.akamai.com/linode-api/reference/get-linode-types).
+
+
+ - Can only be included when cloning to a new Linode.'
+ example: '{{backups_enabled}}'
+ type: boolean
+ configs:
+ 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:
+ example: 23456
+ type: integer
+ type: array
+ disks:
+ 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.
+
+ - __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:
+ example: 25674
+ type: integer
+ type: array
+ group:
+ deprecated: true
+ description: A label used to group Linodes for display. Linodes
+ are not required to have a group.
+ example: '{{group}}'
+ type: string
+ label:
+ 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: '{{label}}'
+ maxLength: 64
+ minLength: 3
+ type: string
+ linode_id:
+ 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: '{{linode_id}}'
+ type: integer
+ metadata:
+ additionalProperties: false
+ description: __Write-only__ An object containing user-defined data
+ relevant to the creation of Linodes.
+ properties:
+ user_data:
+ description: 'Base64-encoded [cloud-config](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata-cloud-config/)
+ data.
+
+
+ Cannot be modified after provisioning. To update, use either
+ the [Clone a Linode](https://techdocs.akamai.com/linode-api/reference/post-clone-linode-instance)
+ or [Rebuild a Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance)
+ operations.
+
+
+ Must not be included when cloning to an existing Linode.
+
+
+ Unencoded data must not exceed 65535 bytes, or about 16kb
+ encoded.'
+ example: I2Nsb3VkLWNvbmZpZwpwYWNrYWdlX3VwZGF0ZTogdHJ1ZQpwYWNrYWdlX3VwZ3JhZGU6IHRydWU=
+ format: byte
+ type: string
+ type: object
+ writeOnly: true
+ placement_group:
+ additionalProperties: false
+ description: 'Include this to assign this Linode to an existing
+ [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/).
+ Consider these points when cloning:
+
+
+ - If the Linode you''re cloning exists in a placement group, the
+ API won''t automatically add the cloned instance to the same placement
+ group. You need to specify a placement group to add the clone
+ to.
+
+
+ - The target placement group needs to be in the same `region`
+ set for this Linode.
+
+
+ - The placement group needs to have capacity. Run the [Get a region](https://techdocs.akamai.com/linode-api/reference/get-region)
+ operation and note either the `maximum_linodes_per_pg` (strict)
+ or `maximum_linodes_per_flexible_pg` (flexible), based on your
+ selected `placement_group_policy`. These represent the Linode
+ limit per placement group, for each `placement_group_policy` type.
+ You can then run the [Get a placement group](https://techdocs.akamai.com/linode-api/reference/get-placement-group)
+ operation to review the Linodes in that group.'
+ properties:
+ id:
+ description: The placement group's ID. You need to provide it
+ for all operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: 1
+ required:
+ - id
+ type: object
+ private_ip:
+ description: 'If `true`, the created Linode will have private networking
+ enabled and assigned a private IPv4 address.
+
+
+ - Can only be provided when cloning to a new Linode.'
+ example: '{{private_ip}}'
+ type: boolean
+ region:
+ description: 'This is the Region where the Linode will be deployed.
+ To view all available Regions you can deploy to, run [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions).
+
+
+ - Region can only be provided and is required when cloning to
+ a new Linode.'
+ example: '{{region}}'
+ type: string
+ type:
+ 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, run [List
+ types](https://techdocs.akamai.com/linode-api/reference/get-linode-types).
+
+
+ - Type can only be provided and is required when cloning to a
+ new Linode.'
+ example: '{{type}}'
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-clone-linode-instance.yaml
+ x-example:
+ x-ref: ../examples/post-clone-linode-instance.json
+ description: The requested state your Linode will be cloned into.
+ required: true
+ x-linode-cli-allowed-defaults:
+ - region
+ - type
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ alerts:
+ additionalProperties: false
+ properties:
+ cpu:
+ description: 'The percentage of CPU usage required to trigger
+ an alert. If the average CPU usage over two hours exceeds
+ this value, we''ll send you an alert. Your Linode''s total
+ CPU capacity is represented as 100%, multiplied by its number
+ of cores.
+
+
+ For example, a two core Linode''s CPU capacity is represented
+ as 200%. If you want to be alerted at 90% of a two core
+ Linode''s CPU capacity, set the alert value to `180`.
+
+
+ The default value is 90% multiplied by the number of cores.
+
+
+ If the value is set to `0` (zero), the alert is disabled.'
+ example: 180
+ type: integer
+ io:
+ description: The amount of disk IO operation per second required
+ to trigger an alert. If the average disk IO over two hours
+ exceeds this value, we'll send you an alert. If set to `0`
+ (zero), this alert is disabled.
+ example: 10000
+ type: integer
+ network_in:
+ description: The amount of incoming traffic, in Mbit/s, required
+ to trigger an alert. If the average incoming traffic over
+ two hours exceeds this value, we'll send you an alert. If
+ this is set to `0` (zero), the alert is disabled.
+ example: 10
+ type: integer
+ network_out:
+ description: The amount of outbound traffic, in Mbit/s, required
+ to trigger an alert. If the average outbound traffic over
+ two hours exceeds this value, we'll send you an alert. If
+ this is set to `0` (zero), the alert is disabled.
+ example: 10
+ type: integer
+ transfer_quota:
+ description: The percentage of network transfer that may be
+ used before an alert is triggered. When this value is exceeded,
+ we'll alert you. If this is set to `0` (zero), the alert
+ is disabled.
+ example: 80
+ type: integer
+ type: object
+ backups:
+ additionalProperties: false
+ description: Information about this Linode's backups status. For
+ information about available backups, run [List backups](https://techdocs.akamai.com/linode-api/reference/get-backups).
+ properties:
+ available:
+ description: '__Read-only__ Whether Backups for this Linode
+ are available for restoration.
+
+
+ Backups undergoing maintenance are not available for restoration.'
+ example: true
+ readOnly: true
+ type: boolean
+ enabled:
+ description: __Read-only__ If this Linode has the Backup service
+ enabled. To enable backups, run [Enable backups](https://techdocs.akamai.com/linode-api/reference/post-enable-backups).
+ example: true
+ readOnly: true
+ type: boolean
+ last_successful:
+ description: __Read-only__ The last successful backup time.
+ Displayed as `null` if there was no previous backup.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ schedule:
+ additionalProperties: false
+ properties:
+ day:
+ description: 'The day of the week that your Linode''s
+ weekly backup is taken. If not set manually, a day will
+ be chosen for you. Backups are taken every day, but
+ backups taken on this day are preferred when selecting
+ backups to retain for a longer period.
+
+
+ If not set manually, then when backups are initially
+ enabled, this may come back as `Scheduling` until the
+ `day` is automatically selected.'
+ enum:
+ - Scheduling
+ - Sunday
+ - Monday
+ - Tuesday
+ - Wednesday
+ - Thursday
+ - Friday
+ - Saturday
+ example: Saturday
+ nullable: true
+ type: string
+ window:
+ description: 'When your backups will be taken, in UTC.
+ A backups window is a two-hour span of time in which
+ the backup may occur.
+
+
+ For example, `W10` indicates that your backups should
+ be taken between 10:00 and 12:00. If you don''t choose
+ a backup window, the API automatically assigns one.
+
+
+ If not set manually, when backups are initially enabled
+ this may come back as `Scheduling` until the `window`
+ is automatically selected.'
+ enum:
+ - Scheduling
+ - W0
+ - W2
+ - W4
+ - W6
+ - W8
+ - W10
+ - W12
+ - W14
+ - W16
+ - W18
+ - W20
+ - W22
+ example: W22
+ nullable: true
+ type: string
+ type: object
+ type: object
+ capabilities:
+ description: __Limited availability__, __Read-only__ A list of
+ capabilities this compute instance supports.
+ example:
+ - Block Storage Encryption
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ status: LA
+ created:
+ description: __Read-only__ When this Linode was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ disk_encryption:
+ default: enabled
+ description: __Read-only__ Indicates the local disk encryption
+ setting for this Linode. If the Linode is part of an LKE cluster,
+ the value is `null`.
+ example: disabled
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ group:
+ deprecated: true
+ description: __Deprecated__, __Filterable__ The group label for
+ this Linode.
+ example: Linode-Group
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ status: DEPRECATED
+ x-linode-filterable: true
+ has_user_data:
+ description: __Read-only__ Whether this compute instance was provisioned
+ with `user_data` provided via the Metadata service. See the
+ [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+ description for more information on Metadata.
+ example: true
+ readOnly: true
+ type: boolean
+ host_uuid:
+ description: __Read-only__ The Linode's host machine, as a UUID.
+ example: 3a3ddd59d9a78bb8de041391075df44de62bfec8
+ format: uuid
+ readOnly: true
+ type: string
+ hypervisor:
+ description: __Read-only__ The virtualization software powering
+ this Linode.
+ enum:
+ - kvm
+ example: kvm
+ readOnly: true
+ type: string
+ id:
+ description: __Filterable__, __Read-only__ This Linode's ID which
+ must be provided for all operations impacting this Linode.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ image:
+ allOf:
+ - description: 'An Image ID to deploy the Linode Disk from.
+
+
+ Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images)
+ operation with authentication to view all available Images.
+ Official Linode Images start with `linode/`, while your Account''s
+ Images start with `private/`. Creating a disk from a Private
+ Image requires `read_only` or `read_write` permissions for
+ that Image. Run the [Update a user''s grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants)
+ operation to adjust permissions for an Account Image.'
+ example: linode/debian9
+ type: string
+ example: linode/debian10
+ nullable: true
+ readOnly: true
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ interface_generation:
+ description: __Filterable__, __Read-only__ Indicates if the Linode
+ is configured to use Linode interfaces (`linode`) or legacy
+ configuration profile interfaces (`legacy_config`).
+ enum:
+ - legacy_config
+ - linode
+ example: linode
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 9
+ x-linode-filterable: true
+ ipv4:
+ description: '__Filterable__, __Read-only__ This Linode''s IPv4
+ Addresses. Each Linode is assigned a single public IPv4 address
+ upon creation, and may get a single private IPv4 address if
+ needed. You may need to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ to get additional IPv4 addresses.
+
+
+ IPv4 addresses may be reassigned between your Linodes, or shared
+ with other Linodes. See the [networking](https://techdocs.akamai.com/linode-api/reference/post-firewalls)
+ operations for details.'
+ example:
+ - 203.0.113.1
+ - 192.0.2.1
+ format: ipv4
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ ipv6:
+ description: __Read-only__ This Linode's IPv6 SLAAC address. This
+ address is specific to a Linode, and may not be shared. If the
+ Linode has not been assigned an IPv6 address, the return value
+ will be `null`.
+ example: c001:d00d::1337/128
+ format: ipv6/128
+ nullable: true
+ readOnly: true
+ type: string
+ label:
+ description: '__Filterable__ Provides a name for the Linode. If
+ not provided, the API generates one for it.
+
+
+ Linode labels have the following constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens (`-`),
+ underscores (`_`) or periods (`.`).
+
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods
+ (`..`) in a row.'
+ example: linode123
+ maxLength: 64
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster_id:
+ description: __Read-only__ The ID of the Kubernetes cluster if
+ the Linode is part of cluster.
+ example: 1
+ nullable: true
+ readOnly: true
+ type: integer
+ placement_group:
+ additionalProperties: false
+ description: __Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/)
+ that this Linode belongs to. Empty if the Linode isn't in a
+ placement group.
+ nullable: true
+ properties:
+ id:
+ description: The placement group's ID. You need to provide
+ it for all operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: null
+ label:
+ description: '__Filterable__ The unique name set for the placement
+ group. A label has these constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens
+ (`-`), underscores (`_`) or periods (`.`).'
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ placement_group_policy:
+ description: "How requests to add future compute instances\
+ \ to your placement group are handled, and whether it remains\
+ \ compliant:\n\n- `strict`. Don't assign a new compute instance\
+ \ if it breaks the grouped-together or spread-apart model\
+ \ set by the `placement_group_type`. Use this to ensure\
+ \ the placement group stays compliant (`is_compliant: true`).\n\
+ - `flexible`. Assign a new compute instance, even if it\
+ \ breaks the grouped-together or spread-apart model set\
+ \ by the `placement_group_type`. This makes the group non-compliant\
+ \ (`is_compliant: false`). You need to wait for Akamai to\
+ \ move the offending compute instance to make it compliant\
+ \ again, once the necessary capacity is available in the\
+ \ region. Offers flexibility to add future compute instances\
+ \ if compliance isn't an immediate concern.\n\n<>\n\n\
+ > \U0001F4D8\n>\n> In rare cases, non-compliance can occur\
+ \ with a `strict` placement group if Akamai needs to failover\
+ \ or migrate your compute instances for maintenance. Fixing\
+ \ non-compliance for a `strict` placement group is prioritized\
+ \ over a `flexible` group."
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ x-linode-cli-display: null
+ placement_group_type:
+ description: "__Filterable__, __Read-only__ How compute instances\
+ \ are distributed in your placement group. A `placement_group_type`\
+ \ using anti-affinity (`anti-affinity:local`) places compute\
+ \ instances in separate hosts, but still in the same region.\
+ \ This best supports the spread-apart model for high availability.\
+ \ A `placement_group_type` using affinity places compute\
+ \ instances physically close together, possibly on the same\
+ \ host. This supports the grouped-together model for low-latency.\n\
+ \n> \U0001F4D8\n>\n> Currently, only `anti_affinity:local`\
+ \ is available for `placement_group_type`."
+ enum:
+ - anti_affinity:local
+ example: anti-affinity:local
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: null
+ x-linode-filterable: true
+ readOnly: true
+ type: object
+ region:
+ description: __Filterable__, __Read-only__ The [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the Linode deployed. A Linode's region can only be changed
+ by initiating a [cross data center migration](https://techdocs.akamai.com/linode-api/reference/post-migrate-linode-instance).
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ specs:
+ additionalProperties: false
+ description: __Read-only__ Information about the resources available
+ to this Linode.
+ properties:
+ disk:
+ description: __Read-only__ The amount of storage space, in
+ MB, this Linode has access to. A typical Linode divides
+ this space between a primary disk with an `image` deployed
+ to it, and a swap disk, usually 512 MB. This is the default
+ configuration created when deploying a Linode with an `image`
+ through [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance).
+ While this configuration is suitable for 99% of use cases,
+ if you need finer control over your Linode's disks, see
+ the [List disks](https://techdocs.akamai.com/linode-api/reference/get-linode-disks)
+ operations.
+ example: 81920
+ readOnly: true
+ type: integer
+ gpus:
+ description: __Read-only__ The number of GPUs this Linode
+ has access to.
+ example: 0
+ readOnly: true
+ type: integer
+ memory:
+ description: '__Read-only__ The amount of RAM, in MB, this
+ Linode has access to.
+
+
+ Typically, a Linode boots with all of its available RAM,
+ but this can be configured in a config profile. See the
+ [List config profiles](https://techdocs.akamai.com/linode-api/reference/get-linode-configs)
+ operation for more information.'
+ example: 4096
+ readOnly: true
+ type: integer
+ transfer:
+ description: __Read-only__ The amount of network transfer
+ this Linode is allotted each month.
+ example: 4000
+ readOnly: true
+ type: integer
+ vcpus:
+ description: __Read-only__ The number of VCPUs this Linode
+ has access to.
+ example: 2
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ status:
+ description: '__Read-only__ A brief description of this Linode''s
+ current state. This field may change without direct action from
+ you. For example, when a compute instance goes into maintenance
+ mode, its status is `stopped`. Status is generally self-explanatory,
+ based on its name.
+
+
+ - `busy` indicates you''ve assigned the compute instance to
+ a [placement group](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups),
+ but the compute instance is currently booting. Once the boot
+ completes, the API completes the assignment and updates the
+ compute instance''s `status` accordingly.
+
+ - `provisioning` indicates that the API is applying operating
+ system or Marketplace applications on the compute instance.
+
+ - `billing_suspension` indicates that payment is past due on
+ the compute instance, so we''ve suspended its use.'
+ enum:
+ - running
+ - offline
+ - booting
+ - busy
+ - rebooting
+ - shutting_down
+ - provisioning
+ - deleting
+ - migrating
+ - rebuilding
+ - cloning
+ - restoring
+ - stopped
+ - billing_suspension
+ example: running
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ billing_suspension: red
+ default_: yellow
+ offline: red
+ running: green
+ x-linode-cli-display: 6
+ tags:
+ description: __Filterable__ Tags to help you organize your content.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type:
+ description: __Read-only__ This is the [Linode type](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ that this Linode was deployed with. To change a Linode's type,
+ use [Resize a Linode](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance).
+ example: g6-standard-1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this Linode was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ watchdog_enabled:
+ description: The watchdog, named Lassie, is a Shutdown Watchdog
+ that monitors your Linode and reboots it if it powers off unexpectedly.
+ It works by issuing a boot job when your Linode powers off without
+ a shutdown job being responsible. To prevent a loop, Lassie
+ gives up if there have been more than 5 boot jobs issued within
+ 15 minutes.
+ example: true
+ type: boolean
+ title: Linode
+ type: object
+ x-akamai:
+ file-path: schemas/linode.yaml
+ x-example:
+ x-ref: ../examples/post-clone-linode-instance-200.json
+ description: Clone started.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Clone a Linode
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes clone 123 \\\n --linode_id 124 \\\n --region\
+ \ us-east \\\n --type g6-standard-2 \\\n --label cloned-linode \\\n\
+ \ --backups_enabled true \\\n --placement_group.id 528 \\\n --disks\
+ \ 25674 \\\n --configs 23456 \\\n --private_ip true \\\n --metadata.user_data\
+ \ I2Nsb3VkLWNvbmZpZw=="
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-charge: true
+ x-linode-cli-action: clone
+ x-linode-grant: add_linodes
+ parameters:
+ - description: ID of the Linode to clone.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-8a1bf096.yaml
+ x-akamai:
+ file-path: paths/linode-clone.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/clone
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/configs:
+ post:
+ description: "Adds a new configuration profile to a Linode.\n\n> \U0001F4D8\n\
+ >\n> This operation is for legacy configuration profiles only, and not [Linode\
+ \ interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).\n\
+ \n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-add-linode-config
+ operationId: post-add-linode-config
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ properties:
+ comments:
+ description: Optional field for arbitrary user comments on this
+ configuration.
+ example: This is my main Config
+ nullable: true
+ type: string
+ devices:
+ additionalProperties: false
+ description: 'A dictionary of device disks to use as a device
+ map in a Linode''s configuration profile.
+
+
+ - An empty device disk dictionary or a dictionary with empty
+ values for device slots is allowed.
+
+ - If no devices are specified, booting from this configuration
+ will hold until a device exists that allows the boot process
+ to start.'
+ properties:
+ sda:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdb:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdc:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdd:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sde:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdf:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdg:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdh:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/devices.yaml
+ helpers:
+ additionalProperties: false
+ description: Helpers enabled when booting to this Linode configuration.
+ properties:
+ devtmpfs_automount:
+ default: false
+ description: Populates the `/dev` directory early during boot
+ without `udev`. Defaults to `false`.
+ example: true
+ type: boolean
+ distro:
+ description: Helps maintain correct `inittab` or `upstart`
+ console device.
+ example: true
+ type: boolean
+ modules_dep:
+ description: Creates a modules dependency file for the kernel
+ you run.
+ example: true
+ type: boolean
+ network:
+ description: Set to `true` to automatically configure static
+ networking. The `network` option applies only to legacy
+ configuration profile interfaces and does not apply to [Linode
+ interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).
+ example: true
+ nullable: true
+ type: boolean
+ updatedb_disabled:
+ description: Set to `true` to disable the `updatedb` cron
+ job to avoid disk thrashing.
+ example: true
+ type: boolean
+ type: object
+ id:
+ description: __Read-only__ The ID of this Config.
+ example: 23456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ interfaces:
+ description: "`interfaces` is applicable only to legacy configuration\
+ \ profiles and does not apply to [Linode interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).\n\
+ \nFrom one to three network interfaces to add to this Linode's\
+ \ configuration profile. The position in the array determines\
+ \ which of the Linode's network interfaces is configured:\n\n\
+ - First [0]: `eth0`\n- Second [1]: `eth1`\n- Third [2]: `eth2`\n\
+ \nWhen updating a Linode's legacy interfaces, _each interface\
+ \ must be redefined_. An empty `interfaces` array results in\
+ \ a default `public` type interface configuration only.\n\n\
+ If no public Interface is configured, public IP addresses are\
+ \ still assigned to the Linode but will not be usable without\
+ \ manual configuration.\n\n> \U0001F4D8\n>\n> Changes to Linode\
+ \ Interface configurations can be enabled by rebooting the Linode.\n\
+ \n`vpc` details\n\nSee the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications)\
+ \ guide for its specifications and limitations.\n\n`vlan` details\n\
+ \n- Only Next Generation Network (NGN) data centers support\
+ \ VLANs. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions)\
+ \ operation 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 or cloned\
+ \ because of an incompatibility, you will be prompted to select\
+ \ a different data center or contact support.\n- See the [VLANs\
+ \ Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications)\
+ \ guide to view additional specifications and limitations."
+ example:
+ - id: 101
+ ipam_address: null
+ ipv4: null
+ label: null
+ primary: false
+ purpose: public
+ subnet_id: null
+ vpc_id: null
+ - id: 102
+ ipam_address: 10.0.0.1/24
+ ipv4:
+ nat_1_1: null
+ vpc: 10.0.0.2
+ label: vlan-1
+ primary: false
+ purpose: vlan
+ subnet_id: null
+ vpc_id: null
+ - id: 103
+ ipam_address: null
+ ipv4:
+ nat_1_1: 203.0.113.2
+ vpc: 10.0.1.2
+ label: null
+ primary: true
+ purpose: vpc
+ subnet_id: 101
+ vpc_id: 111
+ items:
+ additionalProperties: false
+ description: The network interface to apply to this Linode's
+ configuration profile.
+ properties:
+ active:
+ description: __Read-only__ Returns `true` if the interface
+ is in use, meaning that the Linode has been booted using
+ the configuration profile to which the interface belongs.
+ example: true
+ readOnly: true
+ type: boolean
+ id:
+ description: __Read-only__ The unique ID representing this
+ interface.
+ example: 101
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip_ranges:
+ description: "IPv4 CIDR VPC subnet ranges that are routed\
+ \ to this interface.\n\nWhen included in a request:\n\n\
+ - A range can't include any addresses that are assigned\
+ \ to an active Linode or another VPC subnet.\n\n- When\
+ \ updating, you need to include any existing ranges to\
+ \ maintain them. If a range is left out, it will be removed.\n\
+ \n- Submit this as an empty array removes all existing\
+ \ values.\n\n- Omit this object to leave existing values\
+ \ as is.\n\n<>\n\n> \U0001F4D8\n>\n> This is only\
+ \ supported for interfaces with a `purpose` of `vpc`."
+ example:
+ - 10.0.0.64/26
+ - fd04:495a:691c:971c::1:0/112
+ items:
+ format: ip
+ type: string
+ nullable: true
+ type: array
+ ipam_address:
+ description: 'This interface''s private IP address in classless
+ inter-domain routing (CIDR) notation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - To avoid conflicting addresses, make sure this value
+ is unique for each `vlan` interface.
+
+
+ - This should be unique among devices attached to the
+ VLAN to avoid conflict.
+
+
+ - If Network Helper is enabled, the Linode''s interface
+ will be automatically configured to use this address after
+ the Linode is rebooted. If Network Helper is disabled,
+ enable the address using [manual static IP configuration](https://www.linode.com/docs/guides/manual-network-configuration/).
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ ipv4:
+ additionalProperties: false
+ description: IPv4 addresses configured for this interface.
+ This only applies to interfaces with a `purpose` of `vpc`.
+ Returned as `null` if no `vpc` interface is assigned.
+ properties:
+ nat_1_1:
+ anyOf:
+ - format: ip
+ minLength: 1
+ title: An available public IPv4 address
+ type: string
+ - enum:
+ - any
+ title: The assigned public IPv4 address
+ type: string
+ description: "The 1:1 NAT IPv4 address, used to associate\
+ \ a public IPv4 address with the interface's VPC subnet\
+ \ IPv4 address.\n\n- Only supported for interfaces\
+ \ with a `purpose` of `vpc`.\n\n- Returned as `null`\
+ \ if no 1:1 NAT is set for a `vpc` type interface.\n\
+ \n- Returned as an empty string (`\"\"`) for non-`vpc`\
+ \ type interfaces.\n\nWhen included in a request:\n\
+ \n- You can set this to a specific, public IPv4 address\
+ \ that's available on the Linode. You can also use\
+ \ the `any` keyword to enable the Linode's assigned\
+ \ public IPv4 address.\n\n- A specified address can't\
+ \ be shared with another Linode.\n\n- Omit this object\
+ \ or include it and set it to `null` or an empty string\
+ \ (`\"\"`) to block creation of a 1:1 NAT.\n\n<>\n\
+ \n> \U0001F4D8\n>\n> You can't set this to a specific\
+ \ IPv4 address when creating a new Linode. During\
+ \ the creation process, the network automatically\
+ \ establishes a public IPv4 address for the Linode.\
+ \ Since this address doesn't exist yet, you can't\
+ \ include a custom IPv4 address to change it. After\
+ \ your Linode is created, you can [update your configuration\
+ \ profile interface](https://www.linode.com/docs/api/linode-instances/#configuration-profile-interface-update)\
+ \ to change the `nat_1_1` address."
+ example: 203.0.113.2
+ nullable: true
+ type: string
+ vpc:
+ description: 'The VPC subnet IPv4 address for this interface.
+
+
+ - This only applies to interfaces with a `purpose`
+ of `vpc`.
+
+
+ - Returned as an empty string (`""`) for non-`vpc`
+ type interfaces.
+
+
+ When included in a request:
+
+
+ - The `vpc` can''t be assigned to an existing Linode
+ as an address or in a range.
+
+
+ - The target address can''t be the first two or last
+ two addresses in the subnet IPv4 range.
+
+
+ - If omitted, a valid address within the Subnet IPv4
+ range is automatically assigned.'
+ example: 10.0.0.2
+ format: ip
+ nullable: true
+ type: string
+ type: object
+ label:
+ description: '__Filterable__ The name of this interface.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Required.
+
+
+ - This needs to be unique among a Linode''s interfaces.
+ A Linode can''t be attached to the same VLAN multiple
+ times.
+
+
+ - This can only contain ASCII letters, numbers, and dashes
+ (`-`). You can''t use two consecutive dashes (`--`).
+
+
+ - If the VLAN label is new, a VLAN is created. Up to 10
+ VLANs can be created in each data center `region`. To
+ view your active VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans)
+ operation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: example-interface
+ maxLength: 64
+ minLength: 1
+ nullable: true
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ primary:
+ description: "The default route to the Linode. Each Linode\
+ \ can have one interface set as its `primary`. If you\
+ \ haven't specifically set a `primary`, the first non-`vlan`\
+ \ type interface is automatically treated as the primary.\n\
+ \n> \U0001F4D8\n>\n> This needs to be set to `false` for\
+ \ any interface that uses `vlan` as its `purpose`."
+ example: true
+ type: boolean
+ purpose:
+ description: 'The type of interface. This can be `public`,
+ `vlan`, or `vpc`.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - You can only define one `public` interface per Linode.
+
+
+ - The Linode''s default public IPv4 address is assigned
+ to the `public` interface.
+
+
+ - A Linode needs a `public` interface in the first or
+ `eth0` position to be reachable via the public internet,
+ after it boots. If no `public` interface is configured,
+ you can only access the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/),
+ or through another Linode that''s connected to the same
+ VLAN or VPC.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to the VLAN with the specified `label`.
+
+
+ - If an `ipam_address` is configured, the Linode uses
+ this address.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to an existing VPC subnet with the specified `subnet_id`.
+
+
+ - When the interface is activated, the Linode is configured
+ to use an IP address from the range in the assigned VPC
+ subnet. See `ipv4.vpc` for more information.'
+ enum:
+ - public
+ - vlan
+ - vpc
+ example: vlan
+ type: string
+ x-linode-cli-display: 3
+ subnet_id:
+ description: 'The `id` of the VPC subnet for this interface.
+ Use this value in a request to assign a Linode to a VPC
+ subnet.
+
+
+ - Required for `vpc` type interfaces.
+
+
+ - Returned as `null` for non-`vpc` type interfaces.
+
+
+ - Once you''ve assigned a VPC subnet to an interface,
+ you can''t update it.
+
+
+ - You need to reboot a Linode using the interface''s configuration
+ profile to assign the Linode to a VPC subnet.'
+ example: 101
+ nullable: true
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured
+ for this interface. Returned as `null` for non-`vpc` type
+ interfaces.
+ example: 111
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - purpose
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config-interface.yaml
+ maxItems: 3
+ minItems: 1
+ type: array
+ uniqueItems: true
+ x-akamai:
+ file-path: schemas/linode-config-interfaces.yaml
+ kernel:
+ default: linode/latest-64bit
+ description: 'The ID of the kernel used to boot a Linode. Run
+ the [List kernels](https://techdocs.akamai.com/linode-api/reference/get-kernels)
+ operation to see all available kernels. Here are some commonly
+ used kernels:
+
+
+ - `linode/latest-64bit`. This is the default, our latest kernel
+ at the time of an instance boot or reboot.
+
+
+ - `linode/grub2`. The upstream distribution-supplied kernel
+ that''s installed on the primary disk, or a custom kernel if
+ installed.
+
+
+ - `linode/direct-disk`. The master boot record (MBR) of the
+ primary disk or root device. Use this in place of a Linux kernel.'
+ example: linode/latest-64bit
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: __Filterable__ The name of the configuration for
+ display in Akamai Cloud Manager.
+ example: My Config
+ maxLength: 48
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ memory_limit:
+ description: Defaults to the total RAM of the Linode.
+ example: 2048
+ type: integer
+ root_device:
+ description: "The root device to boot.\n\n> \U0001F4D8\n\n- If\
+ \ you leave this empty or set an invalid value, the root device\
+ \ defaults to `/dev/sda`.\n\n- If you specify a device at the\
+ \ root device location and it's not mounted, the Linode won't\
+ \ boot until a device is mounted."
+ example: /dev/sda
+ pattern: a-z, A-Z, 0-9, /, _, -
+ type: string
+ run_level:
+ description: Defines the state of your Linode after booting. Defaults
+ to `default`.
+ enum:
+ - default
+ - single
+ - binbash
+ example: default
+ type: string
+ virt_mode:
+ description: 'Controls the virtualization mode. Defaults to `paravirt`.
+
+
+ - `paravirt` is suitable for most cases. Linodes running in
+ `paravirt` mode share some qualities with the host, ultimately
+ making it run faster since there is less transition between
+ it and the host.
+
+
+ - `fullvirt` affords more customization, but is slower because
+ 100% of the VM is virtualized.'
+ enum:
+ - paravirt
+ - fullvirt
+ example: paravirt
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config.yaml
+ required:
+ - label
+ - devices
+ x-akamai:
+ file-path: schemas/added-post-add-linode-config.yaml
+ x-example:
+ x-ref: ../examples/post-add-linode-config.json
+ description: The parameters to set when creating the configuration profile.
+ This determines things like the kernel, devices, and how much memory a Linode
+ boots with.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ comments:
+ description: Optional field for arbitrary user comments on this
+ configuration.
+ example: This is my main Config
+ nullable: true
+ type: string
+ devices:
+ additionalProperties: false
+ description: 'A dictionary of device disks to use as a device
+ map in a Linode''s configuration profile.
+
+
+ - An empty device disk dictionary or a dictionary with empty
+ values for device slots is allowed.
+
+ - If no devices are specified, booting from this configuration
+ will hold until a device exists that allows the boot process
+ to start.'
+ properties:
+ sda:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdb:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdc:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdd:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sde:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdf:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdg:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdh:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/devices.yaml
+ helpers:
+ additionalProperties: false
+ description: Helpers enabled when booting to this Linode configuration.
+ properties:
+ devtmpfs_automount:
+ default: false
+ description: Populates the `/dev` directory early during boot
+ without `udev`. Defaults to `false`.
+ example: true
+ type: boolean
+ distro:
+ description: Helps maintain correct `inittab` or `upstart`
+ console device.
+ example: true
+ type: boolean
+ modules_dep:
+ description: Creates a modules dependency file for the kernel
+ you run.
+ example: true
+ type: boolean
+ network:
+ description: Set to `true` to automatically configure static
+ networking. The `network` option applies only to legacy
+ configuration profile interfaces and does not apply to [Linode
+ interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).
+ example: true
+ nullable: true
+ type: boolean
+ updatedb_disabled:
+ description: Set to `true` to disable the `updatedb` cron
+ job to avoid disk thrashing.
+ example: true
+ type: boolean
+ type: object
+ id:
+ description: __Read-only__ The ID of this Config.
+ example: 23456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ interfaces:
+ description: "`interfaces` is applicable only to legacy configuration\
+ \ profiles and does not apply to [Linode interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).\n\
+ \nFrom one to three network interfaces to add to this Linode's\
+ \ configuration profile. The position in the array determines\
+ \ which of the Linode's network interfaces is configured:\n\n\
+ - First [0]: `eth0`\n- Second [1]: `eth1`\n- Third [2]: `eth2`\n\
+ \nWhen updating a Linode's legacy interfaces, _each interface\
+ \ must be redefined_. An empty `interfaces` array results in\
+ \ a default `public` type interface configuration only.\n\n\
+ If no public Interface is configured, public IP addresses are\
+ \ still assigned to the Linode but will not be usable without\
+ \ manual configuration.\n\n> \U0001F4D8\n>\n> Changes to Linode\
+ \ Interface configurations can be enabled by rebooting the Linode.\n\
+ \n`vpc` details\n\nSee the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications)\
+ \ guide for its specifications and limitations.\n\n`vlan` details\n\
+ \n- Only Next Generation Network (NGN) data centers support\
+ \ VLANs. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions)\
+ \ operation 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 or cloned\
+ \ because of an incompatibility, you will be prompted to select\
+ \ a different data center or contact support.\n- See the [VLANs\
+ \ Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications)\
+ \ guide to view additional specifications and limitations."
+ example:
+ - id: 101
+ ipam_address: null
+ ipv4: null
+ label: null
+ primary: false
+ purpose: public
+ subnet_id: null
+ vpc_id: null
+ - id: 102
+ ipam_address: 10.0.0.1/24
+ ipv4:
+ nat_1_1: null
+ vpc: 10.0.0.2
+ label: vlan-1
+ primary: false
+ purpose: vlan
+ subnet_id: null
+ vpc_id: null
+ - id: 103
+ ipam_address: null
+ ipv4:
+ nat_1_1: 203.0.113.2
+ vpc: 10.0.1.2
+ label: null
+ primary: true
+ purpose: vpc
+ subnet_id: 101
+ vpc_id: 111
+ items:
+ additionalProperties: false
+ description: The network interface to apply to this Linode's
+ configuration profile.
+ properties:
+ active:
+ description: __Read-only__ Returns `true` if the interface
+ is in use, meaning that the Linode has been booted using
+ the configuration profile to which the interface belongs.
+ example: true
+ readOnly: true
+ type: boolean
+ id:
+ description: __Read-only__ The unique ID representing this
+ interface.
+ example: 101
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip_ranges:
+ description: "IPv4 CIDR VPC subnet ranges that are routed\
+ \ to this interface.\n\nWhen included in a request:\n\n\
+ - A range can't include any addresses that are assigned\
+ \ to an active Linode or another VPC subnet.\n\n- When\
+ \ updating, you need to include any existing ranges to\
+ \ maintain them. If a range is left out, it will be removed.\n\
+ \n- Submit this as an empty array removes all existing\
+ \ values.\n\n- Omit this object to leave existing values\
+ \ as is.\n\n<>\n\n> \U0001F4D8\n>\n> This is only\
+ \ supported for interfaces with a `purpose` of `vpc`."
+ example:
+ - 10.0.0.64/26
+ - fd04:495a:691c:971c::1:0/112
+ items:
+ format: ip
+ type: string
+ nullable: true
+ type: array
+ ipam_address:
+ description: 'This interface''s private IP address in classless
+ inter-domain routing (CIDR) notation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - To avoid conflicting addresses, make sure this value
+ is unique for each `vlan` interface.
+
+
+ - This should be unique among devices attached to the
+ VLAN to avoid conflict.
+
+
+ - If Network Helper is enabled, the Linode''s interface
+ will be automatically configured to use this address after
+ the Linode is rebooted. If Network Helper is disabled,
+ enable the address using [manual static IP configuration](https://www.linode.com/docs/guides/manual-network-configuration/).
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ ipv4:
+ additionalProperties: false
+ description: IPv4 addresses configured for this interface.
+ This only applies to interfaces with a `purpose` of `vpc`.
+ Returned as `null` if no `vpc` interface is assigned.
+ properties:
+ nat_1_1:
+ anyOf:
+ - format: ip
+ minLength: 1
+ title: An available public IPv4 address
+ type: string
+ - enum:
+ - any
+ title: The assigned public IPv4 address
+ type: string
+ description: "The 1:1 NAT IPv4 address, used to associate\
+ \ a public IPv4 address with the interface's VPC subnet\
+ \ IPv4 address.\n\n- Only supported for interfaces\
+ \ with a `purpose` of `vpc`.\n\n- Returned as `null`\
+ \ if no 1:1 NAT is set for a `vpc` type interface.\n\
+ \n- Returned as an empty string (`\"\"`) for non-`vpc`\
+ \ type interfaces.\n\nWhen included in a request:\n\
+ \n- You can set this to a specific, public IPv4 address\
+ \ that's available on the Linode. You can also use\
+ \ the `any` keyword to enable the Linode's assigned\
+ \ public IPv4 address.\n\n- A specified address can't\
+ \ be shared with another Linode.\n\n- Omit this object\
+ \ or include it and set it to `null` or an empty string\
+ \ (`\"\"`) to block creation of a 1:1 NAT.\n\n<>\n\
+ \n> \U0001F4D8\n>\n> You can't set this to a specific\
+ \ IPv4 address when creating a new Linode. During\
+ \ the creation process, the network automatically\
+ \ establishes a public IPv4 address for the Linode.\
+ \ Since this address doesn't exist yet, you can't\
+ \ include a custom IPv4 address to change it. After\
+ \ your Linode is created, you can [update your configuration\
+ \ profile interface](https://www.linode.com/docs/api/linode-instances/#configuration-profile-interface-update)\
+ \ to change the `nat_1_1` address."
+ example: 203.0.113.2
+ nullable: true
+ type: string
+ vpc:
+ description: 'The VPC subnet IPv4 address for this interface.
+
+
+ - This only applies to interfaces with a `purpose`
+ of `vpc`.
+
+
+ - Returned as an empty string (`""`) for non-`vpc`
+ type interfaces.
+
+
+ When included in a request:
+
+
+ - The `vpc` can''t be assigned to an existing Linode
+ as an address or in a range.
+
+
+ - The target address can''t be the first two or last
+ two addresses in the subnet IPv4 range.
+
+
+ - If omitted, a valid address within the Subnet IPv4
+ range is automatically assigned.'
+ example: 10.0.0.2
+ format: ip
+ nullable: true
+ type: string
+ type: object
+ label:
+ description: '__Filterable__ The name of this interface.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Required.
+
+
+ - This needs to be unique among a Linode''s interfaces.
+ A Linode can''t be attached to the same VLAN multiple
+ times.
+
+
+ - This can only contain ASCII letters, numbers, and dashes
+ (`-`). You can''t use two consecutive dashes (`--`).
+
+
+ - If the VLAN label is new, a VLAN is created. Up to 10
+ VLANs can be created in each data center `region`. To
+ view your active VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans)
+ operation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: example-interface
+ maxLength: 64
+ minLength: 1
+ nullable: true
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ primary:
+ description: "The default route to the Linode. Each Linode\
+ \ can have one interface set as its `primary`. If you\
+ \ haven't specifically set a `primary`, the first non-`vlan`\
+ \ type interface is automatically treated as the primary.\n\
+ \n> \U0001F4D8\n>\n> This needs to be set to `false` for\
+ \ any interface that uses `vlan` as its `purpose`."
+ example: true
+ type: boolean
+ purpose:
+ description: 'The type of interface. This can be `public`,
+ `vlan`, or `vpc`.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - You can only define one `public` interface per Linode.
+
+
+ - The Linode''s default public IPv4 address is assigned
+ to the `public` interface.
+
+
+ - A Linode needs a `public` interface in the first or
+ `eth0` position to be reachable via the public internet,
+ after it boots. If no `public` interface is configured,
+ you can only access the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/),
+ or through another Linode that''s connected to the same
+ VLAN or VPC.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to the VLAN with the specified `label`.
+
+
+ - If an `ipam_address` is configured, the Linode uses
+ this address.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to an existing VPC subnet with the specified `subnet_id`.
+
+
+ - When the interface is activated, the Linode is configured
+ to use an IP address from the range in the assigned VPC
+ subnet. See `ipv4.vpc` for more information.'
+ enum:
+ - public
+ - vlan
+ - vpc
+ example: vlan
+ type: string
+ x-linode-cli-display: 3
+ subnet_id:
+ description: 'The `id` of the VPC subnet for this interface.
+ Use this value in a request to assign a Linode to a VPC
+ subnet.
+
+
+ - Required for `vpc` type interfaces.
+
+
+ - Returned as `null` for non-`vpc` type interfaces.
+
+
+ - Once you''ve assigned a VPC subnet to an interface,
+ you can''t update it.
+
+
+ - You need to reboot a Linode using the interface''s configuration
+ profile to assign the Linode to a VPC subnet.'
+ example: 101
+ nullable: true
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured
+ for this interface. Returned as `null` for non-`vpc` type
+ interfaces.
+ example: 111
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - purpose
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config-interface.yaml
+ maxItems: 3
+ minItems: 1
+ type: array
+ uniqueItems: true
+ x-akamai:
+ file-path: schemas/linode-config-interfaces.yaml
+ kernel:
+ default: linode/latest-64bit
+ description: 'The ID of the kernel used to boot a Linode. Run
+ the [List kernels](https://techdocs.akamai.com/linode-api/reference/get-kernels)
+ operation to see all available kernels. Here are some commonly
+ used kernels:
+
+
+ - `linode/latest-64bit`. This is the default, our latest kernel
+ at the time of an instance boot or reboot.
+
+
+ - `linode/grub2`. The upstream distribution-supplied kernel
+ that''s installed on the primary disk, or a custom kernel if
+ installed.
+
+
+ - `linode/direct-disk`. The master boot record (MBR) of the
+ primary disk or root device. Use this in place of a Linux kernel.'
+ example: linode/latest-64bit
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: __Filterable__ The name of the configuration for
+ display in Akamai Cloud Manager.
+ example: My Config
+ maxLength: 48
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ memory_limit:
+ description: Defaults to the total RAM of the Linode.
+ example: 2048
+ type: integer
+ root_device:
+ description: "The root device to boot.\n\n> \U0001F4D8\n\n- If\
+ \ you leave this empty or set an invalid value, the root device\
+ \ defaults to `/dev/sda`.\n\n- If you specify a device at the\
+ \ root device location and it's not mounted, the Linode won't\
+ \ boot until a device is mounted."
+ example: /dev/sda
+ pattern: a-z, A-Z, 0-9, /, _, -
+ type: string
+ run_level:
+ description: Defines the state of your Linode after booting. Defaults
+ to `default`.
+ enum:
+ - default
+ - single
+ - binbash
+ example: default
+ type: string
+ virt_mode:
+ description: 'Controls the virtualization mode. Defaults to `paravirt`.
+
+
+ - `paravirt` is suitable for most cases. Linodes running in
+ `paravirt` mode share some qualities with the host, ultimately
+ making it run faster since there is less transition between
+ it and the host.
+
+
+ - `fullvirt` affords more customization, but is slower because
+ 100% of the VM is virtualized.'
+ enum:
+ - paravirt
+ - fullvirt
+ example: paravirt
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config.yaml
+ x-example:
+ x-ref: ../examples/post-add-linode-config-200.json
+ description: A configuration profile was created.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Create a configuration profile
+ tags:
+ - Configurations
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes config-create 7590910 \\\n --label \"My Config\"\
+ \ \\\n --devices.sda.disk_id 123456 \\\n --devices.sdb.disk_id 123457"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: config-create
+ get:
+ description: 'Lists configuration profiles associated with a Linode.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-configs
+ operationId: get-linode-configs
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ properties:
+ comments:
+ description: Optional field for arbitrary user comments
+ on this configuration.
+ example: This is my main Config
+ nullable: true
+ type: string
+ devices:
+ additionalProperties: false
+ description: 'A dictionary of device disks to use as a device
+ map in a Linode''s configuration profile.
+
+
+ - An empty device disk dictionary or a dictionary with
+ empty values for device slots is allowed.
+
+ - If no devices are specified, booting from this configuration
+ will hold until a device exists that allows the boot process
+ to start.'
+ properties:
+ sda:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot
+ allowed. Can be `null`. Devices mapped from _sde_
+ through _sdh_ are unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume
+ is assigned to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk
+ is assigned to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdb:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot
+ allowed. Can be `null`. Devices mapped from _sde_
+ through _sdh_ are unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume
+ is assigned to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk
+ is assigned to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdc:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot
+ allowed. Can be `null`. Devices mapped from _sde_
+ through _sdh_ are unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume
+ is assigned to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk
+ is assigned to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdd:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot
+ allowed. Can be `null`. Devices mapped from _sde_
+ through _sdh_ are unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume
+ is assigned to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk
+ is assigned to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sde:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot
+ allowed. Can be `null`. Devices mapped from _sde_
+ through _sdh_ are unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume
+ is assigned to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk
+ is assigned to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdf:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot
+ allowed. Can be `null`. Devices mapped from _sde_
+ through _sdh_ are unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume
+ is assigned to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk
+ is assigned to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdg:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot
+ allowed. Can be `null`. Devices mapped from _sde_
+ through _sdh_ are unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume
+ is assigned to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk
+ is assigned to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdh:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot
+ allowed. Can be `null`. Devices mapped from _sde_
+ through _sdh_ are unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume
+ is assigned to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk
+ is assigned to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/devices.yaml
+ helpers:
+ additionalProperties: false
+ description: Helpers enabled when booting to this Linode
+ configuration.
+ properties:
+ devtmpfs_automount:
+ default: false
+ description: Populates the `/dev` directory early during
+ boot without `udev`. Defaults to `false`.
+ example: true
+ type: boolean
+ distro:
+ description: Helps maintain correct `inittab` or `upstart`
+ console device.
+ example: true
+ type: boolean
+ modules_dep:
+ description: Creates a modules dependency file for the
+ kernel you run.
+ example: true
+ type: boolean
+ network:
+ description: Set to `true` to automatically configure
+ static networking. The `network` option applies only
+ to legacy configuration profile interfaces and does
+ not apply to [Linode interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).
+ example: true
+ nullable: true
+ type: boolean
+ updatedb_disabled:
+ description: Set to `true` to disable the `updatedb`
+ cron job to avoid disk thrashing.
+ example: true
+ type: boolean
+ type: object
+ id:
+ description: __Read-only__ The ID of this Config.
+ example: 23456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ interfaces:
+ description: "`interfaces` is applicable only to legacy\
+ \ configuration profiles and does not apply to [Linode\
+ \ interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).\n\
+ \nFrom one to three network interfaces to add to this\
+ \ Linode's configuration profile. The position in the\
+ \ array determines which of the Linode's network interfaces\
+ \ is configured:\n\n- First [0]: `eth0`\n- Second [1]:\
+ \ `eth1`\n- Third [2]: `eth2`\n\nWhen updating a Linode's\
+ \ legacy interfaces, _each interface must be redefined_.\
+ \ An empty `interfaces` array results in a default `public`\
+ \ type interface configuration only.\n\nIf no public Interface\
+ \ is configured, public IP addresses are still assigned\
+ \ to the Linode but will not be usable without manual\
+ \ configuration.\n\n> \U0001F4D8\n>\n> Changes to Linode\
+ \ Interface configurations can be enabled by rebooting\
+ \ the Linode.\n\n`vpc` details\n\nSee the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications)\
+ \ guide for its specifications and limitations.\n\n`vlan`\
+ \ details\n\n- Only Next Generation Network (NGN) data\
+ \ centers support VLANs. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions)\
+ \ operation 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 or cloned because of an incompatibility,\
+ \ you will be prompted to select a different data center\
+ \ or contact support.\n- See the [VLANs Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications)\
+ \ guide to view additional specifications and limitations."
+ example:
+ - id: 101
+ ipam_address: null
+ ipv4: null
+ label: null
+ primary: false
+ purpose: public
+ subnet_id: null
+ vpc_id: null
+ - id: 102
+ ipam_address: 10.0.0.1/24
+ ipv4:
+ nat_1_1: null
+ vpc: 10.0.0.2
+ label: vlan-1
+ primary: false
+ purpose: vlan
+ subnet_id: null
+ vpc_id: null
+ - id: 103
+ ipam_address: null
+ ipv4:
+ nat_1_1: 203.0.113.2
+ vpc: 10.0.1.2
+ label: null
+ primary: true
+ purpose: vpc
+ subnet_id: 101
+ vpc_id: 111
+ items:
+ additionalProperties: false
+ description: The network interface to apply to this Linode's
+ configuration profile.
+ properties:
+ active:
+ description: __Read-only__ Returns `true` if the interface
+ is in use, meaning that the Linode has been booted
+ using the configuration profile to which the interface
+ belongs.
+ example: true
+ readOnly: true
+ type: boolean
+ id:
+ description: __Read-only__ The unique ID representing
+ this interface.
+ example: 101
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip_ranges:
+ description: "IPv4 CIDR VPC subnet ranges that are\
+ \ routed to this interface.\n\nWhen included in\
+ \ a request:\n\n- A range can't include any addresses\
+ \ that are assigned to an active Linode or another\
+ \ VPC subnet.\n\n- When updating, you need to include\
+ \ any existing ranges to maintain them. If a range\
+ \ is left out, it will be removed.\n\n- Submit this\
+ \ as an empty array removes all existing values.\n\
+ \n- Omit this object to leave existing values as\
+ \ is.\n\n<>\n\n> \U0001F4D8\n>\n> This is only\
+ \ supported for interfaces with a `purpose` of `vpc`."
+ example:
+ - 10.0.0.64/26
+ - fd04:495a:691c:971c::1:0/112
+ items:
+ format: ip
+ type: string
+ nullable: true
+ type: array
+ ipam_address:
+ description: 'This interface''s private IP address
+ in classless inter-domain routing (CIDR) notation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an
+ empty string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - To avoid conflicting addresses, make sure this
+ value is unique for each `vlan` interface.
+
+
+ - This should be unique among devices attached to
+ the VLAN to avoid conflict.
+
+
+ - If Network Helper is enabled, the Linode''s interface
+ will be automatically configured to use this address
+ after the Linode is rebooted. If Network Helper
+ is disabled, enable the address using [manual static
+ IP configuration](https://www.linode.com/docs/guides/manual-network-configuration/).
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an
+ empty string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ ipv4:
+ additionalProperties: false
+ description: IPv4 addresses configured for this interface.
+ This only applies to interfaces with a `purpose`
+ of `vpc`. Returned as `null` if no `vpc` interface
+ is assigned.
+ properties:
+ nat_1_1:
+ anyOf:
+ - format: ip
+ minLength: 1
+ title: An available public IPv4 address
+ type: string
+ - enum:
+ - any
+ title: The assigned public IPv4 address
+ type: string
+ description: "The 1:1 NAT IPv4 address, used to\
+ \ associate a public IPv4 address with the interface's\
+ \ VPC subnet IPv4 address.\n\n- Only supported\
+ \ for interfaces with a `purpose` of `vpc`.\n\
+ \n- Returned as `null` if no 1:1 NAT is set\
+ \ for a `vpc` type interface.\n\n- Returned\
+ \ as an empty string (`\"\"`) for non-`vpc`\
+ \ type interfaces.\n\nWhen included in a request:\n\
+ \n- You can set this to a specific, public IPv4\
+ \ address that's available on the Linode. You\
+ \ can also use the `any` keyword to enable the\
+ \ Linode's assigned public IPv4 address.\n\n\
+ - A specified address can't be shared with another\
+ \ Linode.\n\n- Omit this object or include it\
+ \ and set it to `null` or an empty string (`\"\
+ \"`) to block creation of a 1:1 NAT.\n\n<>\n\
+ \n> \U0001F4D8\n>\n> You can't set this to a\
+ \ specific IPv4 address when creating a new\
+ \ Linode. During the creation process, the network\
+ \ automatically establishes a public IPv4 address\
+ \ for the Linode. Since this address doesn't\
+ \ exist yet, you can't include a custom IPv4\
+ \ address to change it. After your Linode is\
+ \ created, you can [update your configuration\
+ \ profile interface](https://www.linode.com/docs/api/linode-instances/#configuration-profile-interface-update)\
+ \ to change the `nat_1_1` address."
+ example: 203.0.113.2
+ nullable: true
+ type: string
+ vpc:
+ description: 'The VPC subnet IPv4 address for
+ this interface.
+
+
+ - This only applies to interfaces with a `purpose`
+ of `vpc`.
+
+
+ - Returned as an empty string (`""`) for non-`vpc`
+ type interfaces.
+
+
+ When included in a request:
+
+
+ - The `vpc` can''t be assigned to an existing
+ Linode as an address or in a range.
+
+
+ - The target address can''t be the first two
+ or last two addresses in the subnet IPv4 range.
+
+
+ - If omitted, a valid address within the Subnet
+ IPv4 range is automatically assigned.'
+ example: 10.0.0.2
+ format: ip
+ nullable: true
+ type: string
+ type: object
+ label:
+ description: '__Filterable__ The name of this interface.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Required.
+
+
+ - This needs to be unique among a Linode''s interfaces.
+ A Linode can''t be attached to the same VLAN multiple
+ times.
+
+
+ - This can only contain ASCII letters, numbers,
+ and dashes (`-`). You can''t use two consecutive
+ dashes (`--`).
+
+
+ - If the VLAN label is new, a VLAN is created. Up
+ to 10 VLANs can be created in each data center `region`.
+ To view your active VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans)
+ operation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an
+ empty string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an
+ empty string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: example-interface
+ maxLength: 64
+ minLength: 1
+ nullable: true
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ primary:
+ description: "The default route to the Linode. Each\
+ \ Linode can have one interface set as its `primary`.\
+ \ If you haven't specifically set a `primary`, the\
+ \ first non-`vlan` type interface is automatically\
+ \ treated as the primary.\n\n> \U0001F4D8\n>\n>\
+ \ This needs to be set to `false` for any interface\
+ \ that uses `vlan` as its `purpose`."
+ example: true
+ type: boolean
+ purpose:
+ description: 'The type of interface. This can be `public`,
+ `vlan`, or `vpc`.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - You can only define one `public` interface per
+ Linode.
+
+
+ - The Linode''s default public IPv4 address is assigned
+ to the `public` interface.
+
+
+ - A Linode needs a `public` interface in the first
+ or `eth0` position to be reachable via the public
+ internet, after it boots. If no `public` interface
+ is configured, you can only access the Linode through
+ [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/),
+ or through another Linode that''s connected to the
+ same VLAN or VPC.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Configuring this `purpose` of interface attaches
+ a Linode to the VLAN with the specified `label`.
+
+
+ - If an `ipam_address` is configured, the Linode
+ uses this address.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - Configuring this `purpose` of interface attaches
+ a Linode to an existing VPC subnet with the specified
+ `subnet_id`.
+
+
+ - When the interface is activated, the Linode is
+ configured to use an IP address from the range in
+ the assigned VPC subnet. See `ipv4.vpc` for more
+ information.'
+ enum:
+ - public
+ - vlan
+ - vpc
+ example: vlan
+ type: string
+ x-linode-cli-display: 3
+ subnet_id:
+ description: 'The `id` of the VPC subnet for this
+ interface. Use this value in a request to assign
+ a Linode to a VPC subnet.
+
+
+ - Required for `vpc` type interfaces.
+
+
+ - Returned as `null` for non-`vpc` type interfaces.
+
+
+ - Once you''ve assigned a VPC subnet to an interface,
+ you can''t update it.
+
+
+ - You need to reboot a Linode using the interface''s
+ configuration profile to assign the Linode to a
+ VPC subnet.'
+ example: 101
+ nullable: true
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured
+ for this interface. Returned as `null` for non-`vpc`
+ type interfaces.
+ example: 111
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - purpose
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config-interface.yaml
+ maxItems: 3
+ minItems: 1
+ type: array
+ uniqueItems: true
+ x-akamai:
+ file-path: schemas/linode-config-interfaces.yaml
+ kernel:
+ default: linode/latest-64bit
+ description: 'The ID of the kernel used to boot a Linode.
+ Run the [List kernels](https://techdocs.akamai.com/linode-api/reference/get-kernels)
+ operation to see all available kernels. Here are some
+ commonly used kernels:
+
+
+ - `linode/latest-64bit`. This is the default, our latest
+ kernel at the time of an instance boot or reboot.
+
+
+ - `linode/grub2`. The upstream distribution-supplied kernel
+ that''s installed on the primary disk, or a custom kernel
+ if installed.
+
+
+ - `linode/direct-disk`. The master boot record (MBR) of
+ the primary disk or root device. Use this in place of
+ a Linux kernel.'
+ example: linode/latest-64bit
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: __Filterable__ The name of the configuration
+ for display in Akamai Cloud Manager.
+ example: My Config
+ maxLength: 48
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ memory_limit:
+ description: Defaults to the total RAM of the Linode.
+ example: 2048
+ type: integer
+ root_device:
+ description: "The root device to boot.\n\n> \U0001F4D8\n\
+ \n- If you leave this empty or set an invalid value, the\
+ \ root device defaults to `/dev/sda`.\n\n- If you specify\
+ \ a device at the root device location and it's not mounted,\
+ \ the Linode won't boot until a device is mounted."
+ example: /dev/sda
+ pattern: a-z, A-Z, 0-9, /, _, -
+ type: string
+ run_level:
+ description: Defines the state of your Linode after booting.
+ Defaults to `default`.
+ enum:
+ - default
+ - single
+ - binbash
+ example: default
+ type: string
+ virt_mode:
+ description: 'Controls the virtualization mode. Defaults
+ to `paravirt`.
+
+
+ - `paravirt` is suitable for most cases. Linodes running
+ in `paravirt` mode share some qualities with the host,
+ ultimately making it run faster since there is less transition
+ between it and the host.
+
+
+ - `fullvirt` affords more customization, but is slower
+ because 100% of the VM is virtualized.'
+ enum:
+ - paravirt
+ - fullvirt
+ example: paravirt
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config.yaml
+ type: array
+ page:
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-linode-configs-200.yaml
+ x-example:
+ x-ref: ../examples/get-linode-configs-200.json
+ description: Returns the configuration profiles associated with this Linode.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: List configuration profiles
+ tags:
+ - Configurations
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes configs-list 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: configs-list
+ parameters:
+ - description: ID of the Linode to look up Configuration profiles for.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-1f0ac574.yaml
+ x-akamai:
+ file-path: paths/linode-configs.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/configs
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/configs/{configId}:
+ get:
+ description: 'Returns information about a specific configuration profile.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-config
+ operationId: get-linode-config
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ comments:
+ description: Optional field for arbitrary user comments on this
+ configuration.
+ example: This is my main Config
+ nullable: true
+ type: string
+ devices:
+ additionalProperties: false
+ description: 'A dictionary of device disks to use as a device
+ map in a Linode''s configuration profile.
+
+
+ - An empty device disk dictionary or a dictionary with empty
+ values for device slots is allowed.
+
+ - If no devices are specified, booting from this configuration
+ will hold until a device exists that allows the boot process
+ to start.'
+ properties:
+ sda:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdb:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdc:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdd:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sde:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdf:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdg:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdh:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/devices.yaml
+ helpers:
+ additionalProperties: false
+ description: Helpers enabled when booting to this Linode configuration.
+ properties:
+ devtmpfs_automount:
+ default: false
+ description: Populates the `/dev` directory early during boot
+ without `udev`. Defaults to `false`.
+ example: true
+ type: boolean
+ distro:
+ description: Helps maintain correct `inittab` or `upstart`
+ console device.
+ example: true
+ type: boolean
+ modules_dep:
+ description: Creates a modules dependency file for the kernel
+ you run.
+ example: true
+ type: boolean
+ network:
+ description: Set to `true` to automatically configure static
+ networking. The `network` option applies only to legacy
+ configuration profile interfaces and does not apply to [Linode
+ interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).
+ example: true
+ nullable: true
+ type: boolean
+ updatedb_disabled:
+ description: Set to `true` to disable the `updatedb` cron
+ job to avoid disk thrashing.
+ example: true
+ type: boolean
+ type: object
+ id:
+ description: __Read-only__ The ID of this Config.
+ example: 23456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ interfaces:
+ description: "`interfaces` is applicable only to legacy configuration\
+ \ profiles and does not apply to [Linode interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).\n\
+ \nFrom one to three network interfaces to add to this Linode's\
+ \ configuration profile. The position in the array determines\
+ \ which of the Linode's network interfaces is configured:\n\n\
+ - First [0]: `eth0`\n- Second [1]: `eth1`\n- Third [2]: `eth2`\n\
+ \nWhen updating a Linode's legacy interfaces, _each interface\
+ \ must be redefined_. An empty `interfaces` array results in\
+ \ a default `public` type interface configuration only.\n\n\
+ If no public Interface is configured, public IP addresses are\
+ \ still assigned to the Linode but will not be usable without\
+ \ manual configuration.\n\n> \U0001F4D8\n>\n> Changes to Linode\
+ \ Interface configurations can be enabled by rebooting the Linode.\n\
+ \n`vpc` details\n\nSee the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications)\
+ \ guide for its specifications and limitations.\n\n`vlan` details\n\
+ \n- Only Next Generation Network (NGN) data centers support\
+ \ VLANs. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions)\
+ \ operation 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 or cloned\
+ \ because of an incompatibility, you will be prompted to select\
+ \ a different data center or contact support.\n- See the [VLANs\
+ \ Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications)\
+ \ guide to view additional specifications and limitations."
+ example:
+ - id: 101
+ ipam_address: null
+ ipv4: null
+ label: null
+ primary: false
+ purpose: public
+ subnet_id: null
+ vpc_id: null
+ - id: 102
+ ipam_address: 10.0.0.1/24
+ ipv4:
+ nat_1_1: null
+ vpc: 10.0.0.2
+ label: vlan-1
+ primary: false
+ purpose: vlan
+ subnet_id: null
+ vpc_id: null
+ - id: 103
+ ipam_address: null
+ ipv4:
+ nat_1_1: 203.0.113.2
+ vpc: 10.0.1.2
+ label: null
+ primary: true
+ purpose: vpc
+ subnet_id: 101
+ vpc_id: 111
+ items:
+ additionalProperties: false
+ description: The network interface to apply to this Linode's
+ configuration profile.
+ properties:
+ active:
+ description: __Read-only__ Returns `true` if the interface
+ is in use, meaning that the Linode has been booted using
+ the configuration profile to which the interface belongs.
+ example: true
+ readOnly: true
+ type: boolean
+ id:
+ description: __Read-only__ The unique ID representing this
+ interface.
+ example: 101
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip_ranges:
+ description: "IPv4 CIDR VPC subnet ranges that are routed\
+ \ to this interface.\n\nWhen included in a request:\n\n\
+ - A range can't include any addresses that are assigned\
+ \ to an active Linode or another VPC subnet.\n\n- When\
+ \ updating, you need to include any existing ranges to\
+ \ maintain them. If a range is left out, it will be removed.\n\
+ \n- Submit this as an empty array removes all existing\
+ \ values.\n\n- Omit this object to leave existing values\
+ \ as is.\n\n<>\n\n> \U0001F4D8\n>\n> This is only\
+ \ supported for interfaces with a `purpose` of `vpc`."
+ example:
+ - 10.0.0.64/26
+ - fd04:495a:691c:971c::1:0/112
+ items:
+ format: ip
+ type: string
+ nullable: true
+ type: array
+ ipam_address:
+ description: 'This interface''s private IP address in classless
+ inter-domain routing (CIDR) notation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - To avoid conflicting addresses, make sure this value
+ is unique for each `vlan` interface.
+
+
+ - This should be unique among devices attached to the
+ VLAN to avoid conflict.
+
+
+ - If Network Helper is enabled, the Linode''s interface
+ will be automatically configured to use this address after
+ the Linode is rebooted. If Network Helper is disabled,
+ enable the address using [manual static IP configuration](https://www.linode.com/docs/guides/manual-network-configuration/).
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ ipv4:
+ additionalProperties: false
+ description: IPv4 addresses configured for this interface.
+ This only applies to interfaces with a `purpose` of `vpc`.
+ Returned as `null` if no `vpc` interface is assigned.
+ properties:
+ nat_1_1:
+ anyOf:
+ - format: ip
+ minLength: 1
+ title: An available public IPv4 address
+ type: string
+ - enum:
+ - any
+ title: The assigned public IPv4 address
+ type: string
+ description: "The 1:1 NAT IPv4 address, used to associate\
+ \ a public IPv4 address with the interface's VPC subnet\
+ \ IPv4 address.\n\n- Only supported for interfaces\
+ \ with a `purpose` of `vpc`.\n\n- Returned as `null`\
+ \ if no 1:1 NAT is set for a `vpc` type interface.\n\
+ \n- Returned as an empty string (`\"\"`) for non-`vpc`\
+ \ type interfaces.\n\nWhen included in a request:\n\
+ \n- You can set this to a specific, public IPv4 address\
+ \ that's available on the Linode. You can also use\
+ \ the `any` keyword to enable the Linode's assigned\
+ \ public IPv4 address.\n\n- A specified address can't\
+ \ be shared with another Linode.\n\n- Omit this object\
+ \ or include it and set it to `null` or an empty string\
+ \ (`\"\"`) to block creation of a 1:1 NAT.\n\n<>\n\
+ \n> \U0001F4D8\n>\n> You can't set this to a specific\
+ \ IPv4 address when creating a new Linode. During\
+ \ the creation process, the network automatically\
+ \ establishes a public IPv4 address for the Linode.\
+ \ Since this address doesn't exist yet, you can't\
+ \ include a custom IPv4 address to change it. After\
+ \ your Linode is created, you can [update your configuration\
+ \ profile interface](https://www.linode.com/docs/api/linode-instances/#configuration-profile-interface-update)\
+ \ to change the `nat_1_1` address."
+ example: 203.0.113.2
+ nullable: true
+ type: string
+ vpc:
+ description: 'The VPC subnet IPv4 address for this interface.
+
+
+ - This only applies to interfaces with a `purpose`
+ of `vpc`.
+
+
+ - Returned as an empty string (`""`) for non-`vpc`
+ type interfaces.
+
+
+ When included in a request:
+
+
+ - The `vpc` can''t be assigned to an existing Linode
+ as an address or in a range.
+
+
+ - The target address can''t be the first two or last
+ two addresses in the subnet IPv4 range.
+
+
+ - If omitted, a valid address within the Subnet IPv4
+ range is automatically assigned.'
+ example: 10.0.0.2
+ format: ip
+ nullable: true
+ type: string
+ type: object
+ label:
+ description: '__Filterable__ The name of this interface.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Required.
+
+
+ - This needs to be unique among a Linode''s interfaces.
+ A Linode can''t be attached to the same VLAN multiple
+ times.
+
+
+ - This can only contain ASCII letters, numbers, and dashes
+ (`-`). You can''t use two consecutive dashes (`--`).
+
+
+ - If the VLAN label is new, a VLAN is created. Up to 10
+ VLANs can be created in each data center `region`. To
+ view your active VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans)
+ operation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: example-interface
+ maxLength: 64
+ minLength: 1
+ nullable: true
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ primary:
+ description: "The default route to the Linode. Each Linode\
+ \ can have one interface set as its `primary`. If you\
+ \ haven't specifically set a `primary`, the first non-`vlan`\
+ \ type interface is automatically treated as the primary.\n\
+ \n> \U0001F4D8\n>\n> This needs to be set to `false` for\
+ \ any interface that uses `vlan` as its `purpose`."
+ example: true
+ type: boolean
+ purpose:
+ description: 'The type of interface. This can be `public`,
+ `vlan`, or `vpc`.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - You can only define one `public` interface per Linode.
+
+
+ - The Linode''s default public IPv4 address is assigned
+ to the `public` interface.
+
+
+ - A Linode needs a `public` interface in the first or
+ `eth0` position to be reachable via the public internet,
+ after it boots. If no `public` interface is configured,
+ you can only access the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/),
+ or through another Linode that''s connected to the same
+ VLAN or VPC.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to the VLAN with the specified `label`.
+
+
+ - If an `ipam_address` is configured, the Linode uses
+ this address.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to an existing VPC subnet with the specified `subnet_id`.
+
+
+ - When the interface is activated, the Linode is configured
+ to use an IP address from the range in the assigned VPC
+ subnet. See `ipv4.vpc` for more information.'
+ enum:
+ - public
+ - vlan
+ - vpc
+ example: vlan
+ type: string
+ x-linode-cli-display: 3
+ subnet_id:
+ description: 'The `id` of the VPC subnet for this interface.
+ Use this value in a request to assign a Linode to a VPC
+ subnet.
+
+
+ - Required for `vpc` type interfaces.
+
+
+ - Returned as `null` for non-`vpc` type interfaces.
+
+
+ - Once you''ve assigned a VPC subnet to an interface,
+ you can''t update it.
+
+
+ - You need to reboot a Linode using the interface''s configuration
+ profile to assign the Linode to a VPC subnet.'
+ example: 101
+ nullable: true
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured
+ for this interface. Returned as `null` for non-`vpc` type
+ interfaces.
+ example: 111
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - purpose
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config-interface.yaml
+ maxItems: 3
+ minItems: 1
+ type: array
+ uniqueItems: true
+ x-akamai:
+ file-path: schemas/linode-config-interfaces.yaml
+ kernel:
+ default: linode/latest-64bit
+ description: 'The ID of the kernel used to boot a Linode. Run
+ the [List kernels](https://techdocs.akamai.com/linode-api/reference/get-kernels)
+ operation to see all available kernels. Here are some commonly
+ used kernels:
+
+
+ - `linode/latest-64bit`. This is the default, our latest kernel
+ at the time of an instance boot or reboot.
+
+
+ - `linode/grub2`. The upstream distribution-supplied kernel
+ that''s installed on the primary disk, or a custom kernel if
+ installed.
+
+
+ - `linode/direct-disk`. The master boot record (MBR) of the
+ primary disk or root device. Use this in place of a Linux kernel.'
+ example: linode/latest-64bit
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: __Filterable__ The name of the configuration for
+ display in Akamai Cloud Manager.
+ example: My Config
+ maxLength: 48
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ memory_limit:
+ description: Defaults to the total RAM of the Linode.
+ example: 2048
+ type: integer
+ root_device:
+ description: "The root device to boot.\n\n> \U0001F4D8\n\n- If\
+ \ you leave this empty or set an invalid value, the root device\
+ \ defaults to `/dev/sda`.\n\n- If you specify a device at the\
+ \ root device location and it's not mounted, the Linode won't\
+ \ boot until a device is mounted."
+ example: /dev/sda
+ pattern: a-z, A-Z, 0-9, /, _, -
+ type: string
+ run_level:
+ description: Defines the state of your Linode after booting. Defaults
+ to `default`.
+ enum:
+ - default
+ - single
+ - binbash
+ example: default
+ type: string
+ virt_mode:
+ description: 'Controls the virtualization mode. Defaults to `paravirt`.
+
+
+ - `paravirt` is suitable for most cases. Linodes running in
+ `paravirt` mode share some qualities with the host, ultimately
+ making it run faster since there is less transition between
+ it and the host.
+
+
+ - `fullvirt` affords more customization, but is slower because
+ 100% of the VM is virtualized.'
+ enum:
+ - paravirt
+ - fullvirt
+ example: paravirt
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config.yaml
+ x-example:
+ x-ref: ../examples/get-linode-config-200.json
+ description: A configuration profile object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: Get a configuration profile
+ tags:
+ - Configurations
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes config-view 123 23456
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: config-view
+ x-linode-grant: read_only
+ put:
+ description: 'Updates a configuration profile.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-linode-config
+ operationId: put-linode-config
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ comments:
+ description: Optional field for arbitrary user comments on this
+ configuration.
+ example: '{{comments}}'
+ nullable: true
+ type: string
+ devices:
+ additionalProperties: false
+ description: 'A dictionary of device disks to use as a device map
+ in a Linode''s configuration profile.
+
+
+ - An empty device disk dictionary or a dictionary with empty values
+ for device slots is allowed.
+
+ - If no devices are specified, booting from this configuration
+ will hold until a device exists that allows the boot process to
+ start.'
+ properties:
+ sda:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdb:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdc:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdd:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sde:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdf:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdg:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdh:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/devices.yaml
+ helpers:
+ additionalProperties: false
+ description: Helpers enabled when booting to this Linode configuration.
+ properties:
+ devtmpfs_automount:
+ default: false
+ description: Populates the `/dev` directory early during boot
+ without `udev`. Defaults to `false`.
+ example: true
+ type: boolean
+ distro:
+ description: Helps maintain correct `inittab` or `upstart` console
+ device.
+ example: true
+ type: boolean
+ modules_dep:
+ description: Creates a modules dependency file for the kernel
+ you run.
+ example: true
+ type: boolean
+ network:
+ description: Set to `true` to automatically configure static
+ networking. The `network` option applies only to legacy configuration
+ profile interfaces and does not apply to [Linode interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).
+ example: true
+ nullable: true
+ type: boolean
+ updatedb_disabled:
+ description: Set to `true` to disable the `updatedb` cron job
+ to avoid disk thrashing.
+ example: true
+ type: boolean
+ type: object
+ id:
+ description: __Read-only__ The ID of this Config.
+ example: '{{id}}'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ interfaces:
+ description: "`interfaces` is applicable only to legacy configuration\
+ \ profiles and does not apply to [Linode interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).\n\
+ \nFrom one to three network interfaces to add to this Linode's\
+ \ configuration profile. The position in the array determines\
+ \ which of the Linode's network interfaces is configured:\n\n\
+ - First [0]: `eth0`\n- Second [1]: `eth1`\n- Third [2]: `eth2`\n\
+ \nWhen updating a Linode's legacy interfaces, _each interface\
+ \ must be redefined_. An empty `interfaces` array results in a\
+ \ default `public` type interface configuration only.\n\nIf no\
+ \ public Interface is configured, public IP addresses are still\
+ \ assigned to the Linode but will not be usable without manual\
+ \ configuration.\n\n> \U0001F4D8\n>\n> Changes to Linode Interface\
+ \ configurations can be enabled by rebooting the Linode.\n\n`vpc`\
+ \ details\n\nSee the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications)\
+ \ guide for its specifications and limitations.\n\n`vlan` details\n\
+ \n- Only Next Generation Network (NGN) data centers support VLANs.\
+ \ Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions)\
+ \ operation 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 or cloned\
+ \ because of an incompatibility, you will be prompted to select\
+ \ a different data center or contact support.\n- See the [VLANs\
+ \ Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications)\
+ \ guide to view additional specifications and limitations."
+ example:
+ - id: 101
+ ipam_address: null
+ ipv4: null
+ label: null
+ primary: false
+ purpose: public
+ subnet_id: null
+ vpc_id: null
+ - id: 102
+ ipam_address: 10.0.0.1/24
+ ipv4:
+ nat_1_1: null
+ vpc: 10.0.0.2
+ label: vlan-1
+ primary: false
+ purpose: vlan
+ subnet_id: null
+ vpc_id: null
+ - id: 103
+ ipam_address: null
+ ipv4:
+ nat_1_1: 203.0.113.2
+ vpc: 10.0.1.2
+ label: null
+ primary: true
+ purpose: vpc
+ subnet_id: 101
+ vpc_id: 111
+ items:
+ additionalProperties: false
+ description: The network interface to apply to this Linode's configuration
+ profile.
+ properties:
+ active:
+ description: __Read-only__ Returns `true` if the interface
+ is in use, meaning that the Linode has been booted using
+ the configuration profile to which the interface belongs.
+ example: true
+ readOnly: true
+ type: boolean
+ id:
+ description: __Read-only__ The unique ID representing this
+ interface.
+ example: 101
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip_ranges:
+ description: "IPv4 CIDR VPC subnet ranges that are routed\
+ \ to this interface.\n\nWhen included in a request:\n\n\
+ - A range can't include any addresses that are assigned\
+ \ to an active Linode or another VPC subnet.\n\n- When updating,\
+ \ you need to include any existing ranges to maintain them.\
+ \ If a range is left out, it will be removed.\n\n- Submit\
+ \ this as an empty array removes all existing values.\n\n\
+ - Omit this object to leave existing values as is.\n\n<>\n\
+ \n> \U0001F4D8\n>\n> This is only supported for interfaces\
+ \ with a `purpose` of `vpc`."
+ example:
+ - 10.0.0.64/26
+ - fd04:495a:691c:971c::1:0/112
+ items:
+ format: ip
+ type: string
+ nullable: true
+ type: array
+ ipam_address:
+ description: 'This interface''s private IP address in classless
+ inter-domain routing (CIDR) notation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - To avoid conflicting addresses, make sure this value is
+ unique for each `vlan` interface.
+
+
+ - This should be unique among devices attached to the VLAN
+ to avoid conflict.
+
+
+ - If Network Helper is enabled, the Linode''s interface
+ will be automatically configured to use this address after
+ the Linode is rebooted. If Network Helper is disabled, enable
+ the address using [manual static IP configuration](https://www.linode.com/docs/guides/manual-network-configuration/).
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ ipv4:
+ additionalProperties: false
+ description: IPv4 addresses configured for this interface.
+ This only applies to interfaces with a `purpose` of `vpc`.
+ Returned as `null` if no `vpc` interface is assigned.
+ properties:
+ nat_1_1:
+ anyOf:
+ - format: ip
+ minLength: 1
+ title: An available public IPv4 address
+ type: string
+ - enum:
+ - any
+ title: The assigned public IPv4 address
+ type: string
+ description: "The 1:1 NAT IPv4 address, used to associate\
+ \ a public IPv4 address with the interface's VPC subnet\
+ \ IPv4 address.\n\n- Only supported for interfaces with\
+ \ a `purpose` of `vpc`.\n\n- Returned as `null` if no\
+ \ 1:1 NAT is set for a `vpc` type interface.\n\n- Returned\
+ \ as an empty string (`\"\"`) for non-`vpc` type interfaces.\n\
+ \nWhen included in a request:\n\n- You can set this\
+ \ to a specific, public IPv4 address that's available\
+ \ on the Linode. You can also use the `any` keyword\
+ \ to enable the Linode's assigned public IPv4 address.\n\
+ \n- A specified address can't be shared with another\
+ \ Linode.\n\n- Omit this object or include it and set\
+ \ it to `null` or an empty string (`\"\"`) to block\
+ \ creation of a 1:1 NAT.\n\n<>\n\n> \U0001F4D8\n\
+ >\n> You can't set this to a specific IPv4 address when\
+ \ creating a new Linode. During the creation process,\
+ \ the network automatically establishes a public IPv4\
+ \ address for the Linode. Since this address doesn't\
+ \ exist yet, you can't include a custom IPv4 address\
+ \ to change it. After your Linode is created, you can\
+ \ [update your configuration profile interface](https://www.linode.com/docs/api/linode-instances/#configuration-profile-interface-update)\
+ \ to change the `nat_1_1` address."
+ example: 203.0.113.2
+ nullable: true
+ type: string
+ vpc:
+ description: 'The VPC subnet IPv4 address for this interface.
+
+
+ - This only applies to interfaces with a `purpose` of
+ `vpc`.
+
+
+ - Returned as an empty string (`""`) for non-`vpc` type
+ interfaces.
+
+
+ When included in a request:
+
+
+ - The `vpc` can''t be assigned to an existing Linode
+ as an address or in a range.
+
+
+ - The target address can''t be the first two or last
+ two addresses in the subnet IPv4 range.
+
+
+ - If omitted, a valid address within the Subnet IPv4
+ range is automatically assigned.'
+ example: 10.0.0.2
+ format: ip
+ nullable: true
+ type: string
+ type: object
+ label:
+ description: '__Filterable__ The name of this interface.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Required.
+
+
+ - This needs to be unique among a Linode''s interfaces.
+ A Linode can''t be attached to the same VLAN multiple times.
+
+
+ - This can only contain ASCII letters, numbers, and dashes
+ (`-`). You can''t use two consecutive dashes (`--`).
+
+
+ - If the VLAN label is new, a VLAN is created. Up to 10
+ VLANs can be created in each data center `region`. To view
+ your active VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans)
+ operation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: example-interface
+ maxLength: 64
+ minLength: 1
+ nullable: true
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ primary:
+ description: "The default route to the Linode. Each Linode\
+ \ can have one interface set as its `primary`. If you haven't\
+ \ specifically set a `primary`, the first non-`vlan` type\
+ \ interface is automatically treated as the primary.\n\n\
+ > \U0001F4D8\n>\n> This needs to be set to `false` for any\
+ \ interface that uses `vlan` as its `purpose`."
+ example: true
+ type: boolean
+ purpose:
+ description: 'The type of interface. This can be `public`,
+ `vlan`, or `vpc`.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - You can only define one `public` interface per Linode.
+
+
+ - The Linode''s default public IPv4 address is assigned
+ to the `public` interface.
+
+
+ - A Linode needs a `public` interface in the first or `eth0`
+ position to be reachable via the public internet, after
+ it boots. If no `public` interface is configured, you can
+ only access the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/),
+ or through another Linode that''s connected to the same
+ VLAN or VPC.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to the VLAN with the specified `label`.
+
+
+ - If an `ipam_address` is configured, the Linode uses this
+ address.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to an existing VPC subnet with the specified `subnet_id`.
+
+
+ - When the interface is activated, the Linode is configured
+ to use an IP address from the range in the assigned VPC
+ subnet. See `ipv4.vpc` for more information.'
+ enum:
+ - public
+ - vlan
+ - vpc
+ example: vlan
+ type: string
+ x-linode-cli-display: 3
+ subnet_id:
+ description: 'The `id` of the VPC subnet for this interface.
+ Use this value in a request to assign a Linode to a VPC
+ subnet.
+
+
+ - Required for `vpc` type interfaces.
+
+
+ - Returned as `null` for non-`vpc` type interfaces.
+
+
+ - Once you''ve assigned a VPC subnet to an interface, you
+ can''t update it.
+
+
+ - You need to reboot a Linode using the interface''s configuration
+ profile to assign the Linode to a VPC subnet.'
+ example: 101
+ nullable: true
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured
+ for this interface. Returned as `null` for non-`vpc` type
+ interfaces.
+ example: 111
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - purpose
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config-interface.yaml
+ maxItems: 3
+ minItems: 1
+ type: array
+ uniqueItems: true
+ x-akamai:
+ file-path: schemas/linode-config-interfaces.yaml
+ kernel:
+ default: linode/latest-64bit
+ description: 'The ID of the kernel used to boot a Linode. Run the
+ [List kernels](https://techdocs.akamai.com/linode-api/reference/get-kernels)
+ operation to see all available kernels. Here are some commonly
+ used kernels:
+
+
+ - `linode/latest-64bit`. This is the default, our latest kernel
+ at the time of an instance boot or reboot.
+
+
+ - `linode/grub2`. The upstream distribution-supplied kernel that''s
+ installed on the primary disk, or a custom kernel if installed.
+
+
+ - `linode/direct-disk`. The master boot record (MBR) of the primary
+ disk or root device. Use this in place of a Linux kernel.'
+ example: '{{kernel}}'
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: __Filterable__ The name of the configuration for display
+ in Akamai Cloud Manager.
+ example: '{{label}}'
+ maxLength: 48
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ memory_limit:
+ description: Defaults to the total RAM of the Linode.
+ example: '{{memory_limit}}'
+ type: integer
+ root_device:
+ description: "The root device to boot.\n\n> \U0001F4D8\n\n- If you\
+ \ leave this empty or set an invalid value, the root device defaults\
+ \ to `/dev/sda`.\n\n- If you specify a device at the root device\
+ \ location and it's not mounted, the Linode won't boot until a\
+ \ device is mounted."
+ example: '{{root_device}}'
+ pattern: a-z, A-Z, 0-9, /, _, -
+ type: string
+ run_level:
+ description: Defines the state of your Linode after booting. Defaults
+ to `default`.
+ enum:
+ - default
+ - single
+ - binbash
+ example: '{{run_level}}'
+ type: string
+ virt_mode:
+ description: 'Controls the virtualization mode. Defaults to `paravirt`.
+
+
+ - `paravirt` is suitable for most cases. Linodes running in `paravirt`
+ mode share some qualities with the host, ultimately making it
+ run faster since there is less transition between it and the host.
+
+
+ - `fullvirt` affords more customization, but is slower because
+ 100% of the VM is virtualized.'
+ enum:
+ - paravirt
+ - fullvirt
+ example: '{{virt_mode}}'
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config.yaml
+ x-example:
+ x-ref: ../examples/put-linode-config.json
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ comments:
+ description: Optional field for arbitrary user comments on this
+ configuration.
+ example: This is my main Config
+ nullable: true
+ type: string
+ devices:
+ additionalProperties: false
+ description: 'A dictionary of device disks to use as a device
+ map in a Linode''s configuration profile.
+
+
+ - An empty device disk dictionary or a dictionary with empty
+ values for device slots is allowed.
+
+ - If no devices are specified, booting from this configuration
+ will hold until a device exists that allows the boot process
+ to start.'
+ properties:
+ sda:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdb:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdc:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdd:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sde:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdf:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdg:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdh:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/devices.yaml
+ helpers:
+ additionalProperties: false
+ description: Helpers enabled when booting to this Linode configuration.
+ properties:
+ devtmpfs_automount:
+ default: false
+ description: Populates the `/dev` directory early during boot
+ without `udev`. Defaults to `false`.
+ example: true
+ type: boolean
+ distro:
+ description: Helps maintain correct `inittab` or `upstart`
+ console device.
+ example: true
+ type: boolean
+ modules_dep:
+ description: Creates a modules dependency file for the kernel
+ you run.
+ example: true
+ type: boolean
+ network:
+ description: Set to `true` to automatically configure static
+ networking. The `network` option applies only to legacy
+ configuration profile interfaces and does not apply to [Linode
+ interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).
+ example: true
+ nullable: true
+ type: boolean
+ updatedb_disabled:
+ description: Set to `true` to disable the `updatedb` cron
+ job to avoid disk thrashing.
+ example: true
+ type: boolean
+ type: object
+ id:
+ description: __Read-only__ The ID of this Config.
+ example: 23456
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ interfaces:
+ description: "`interfaces` is applicable only to legacy configuration\
+ \ profiles and does not apply to [Linode interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).\n\
+ \nFrom one to three network interfaces to add to this Linode's\
+ \ configuration profile. The position in the array determines\
+ \ which of the Linode's network interfaces is configured:\n\n\
+ - First [0]: `eth0`\n- Second [1]: `eth1`\n- Third [2]: `eth2`\n\
+ \nWhen updating a Linode's legacy interfaces, _each interface\
+ \ must be redefined_. An empty `interfaces` array results in\
+ \ a default `public` type interface configuration only.\n\n\
+ If no public Interface is configured, public IP addresses are\
+ \ still assigned to the Linode but will not be usable without\
+ \ manual configuration.\n\n> \U0001F4D8\n>\n> Changes to Linode\
+ \ Interface configurations can be enabled by rebooting the Linode.\n\
+ \n`vpc` details\n\nSee the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications)\
+ \ guide for its specifications and limitations.\n\n`vlan` details\n\
+ \n- Only Next Generation Network (NGN) data centers support\
+ \ VLANs. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions)\
+ \ operation 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 or cloned\
+ \ because of an incompatibility, you will be prompted to select\
+ \ a different data center or contact support.\n- See the [VLANs\
+ \ Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications)\
+ \ guide to view additional specifications and limitations."
+ example:
+ - id: 101
+ ipam_address: null
+ ipv4: null
+ label: null
+ primary: false
+ purpose: public
+ subnet_id: null
+ vpc_id: null
+ - id: 102
+ ipam_address: 10.0.0.1/24
+ ipv4:
+ nat_1_1: null
+ vpc: 10.0.0.2
+ label: vlan-1
+ primary: false
+ purpose: vlan
+ subnet_id: null
+ vpc_id: null
+ - id: 103
+ ipam_address: null
+ ipv4:
+ nat_1_1: 203.0.113.2
+ vpc: 10.0.1.2
+ label: null
+ primary: true
+ purpose: vpc
+ subnet_id: 101
+ vpc_id: 111
+ items:
+ additionalProperties: false
+ description: The network interface to apply to this Linode's
+ configuration profile.
+ properties:
+ active:
+ description: __Read-only__ Returns `true` if the interface
+ is in use, meaning that the Linode has been booted using
+ the configuration profile to which the interface belongs.
+ example: true
+ readOnly: true
+ type: boolean
+ id:
+ description: __Read-only__ The unique ID representing this
+ interface.
+ example: 101
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip_ranges:
+ description: "IPv4 CIDR VPC subnet ranges that are routed\
+ \ to this interface.\n\nWhen included in a request:\n\n\
+ - A range can't include any addresses that are assigned\
+ \ to an active Linode or another VPC subnet.\n\n- When\
+ \ updating, you need to include any existing ranges to\
+ \ maintain them. If a range is left out, it will be removed.\n\
+ \n- Submit this as an empty array removes all existing\
+ \ values.\n\n- Omit this object to leave existing values\
+ \ as is.\n\n<>\n\n> \U0001F4D8\n>\n> This is only\
+ \ supported for interfaces with a `purpose` of `vpc`."
+ example:
+ - 10.0.0.64/26
+ - fd04:495a:691c:971c::1:0/112
+ items:
+ format: ip
+ type: string
+ nullable: true
+ type: array
+ ipam_address:
+ description: 'This interface''s private IP address in classless
+ inter-domain routing (CIDR) notation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - To avoid conflicting addresses, make sure this value
+ is unique for each `vlan` interface.
+
+
+ - This should be unique among devices attached to the
+ VLAN to avoid conflict.
+
+
+ - If Network Helper is enabled, the Linode''s interface
+ will be automatically configured to use this address after
+ the Linode is rebooted. If Network Helper is disabled,
+ enable the address using [manual static IP configuration](https://www.linode.com/docs/guides/manual-network-configuration/).
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ ipv4:
+ additionalProperties: false
+ description: IPv4 addresses configured for this interface.
+ This only applies to interfaces with a `purpose` of `vpc`.
+ Returned as `null` if no `vpc` interface is assigned.
+ properties:
+ nat_1_1:
+ anyOf:
+ - format: ip
+ minLength: 1
+ title: An available public IPv4 address
+ type: string
+ - enum:
+ - any
+ title: The assigned public IPv4 address
+ type: string
+ description: "The 1:1 NAT IPv4 address, used to associate\
+ \ a public IPv4 address with the interface's VPC subnet\
+ \ IPv4 address.\n\n- Only supported for interfaces\
+ \ with a `purpose` of `vpc`.\n\n- Returned as `null`\
+ \ if no 1:1 NAT is set for a `vpc` type interface.\n\
+ \n- Returned as an empty string (`\"\"`) for non-`vpc`\
+ \ type interfaces.\n\nWhen included in a request:\n\
+ \n- You can set this to a specific, public IPv4 address\
+ \ that's available on the Linode. You can also use\
+ \ the `any` keyword to enable the Linode's assigned\
+ \ public IPv4 address.\n\n- A specified address can't\
+ \ be shared with another Linode.\n\n- Omit this object\
+ \ or include it and set it to `null` or an empty string\
+ \ (`\"\"`) to block creation of a 1:1 NAT.\n\n<>\n\
+ \n> \U0001F4D8\n>\n> You can't set this to a specific\
+ \ IPv4 address when creating a new Linode. During\
+ \ the creation process, the network automatically\
+ \ establishes a public IPv4 address for the Linode.\
+ \ Since this address doesn't exist yet, you can't\
+ \ include a custom IPv4 address to change it. After\
+ \ your Linode is created, you can [update your configuration\
+ \ profile interface](https://www.linode.com/docs/api/linode-instances/#configuration-profile-interface-update)\
+ \ to change the `nat_1_1` address."
+ example: 203.0.113.2
+ nullable: true
+ type: string
+ vpc:
+ description: 'The VPC subnet IPv4 address for this interface.
+
+
+ - This only applies to interfaces with a `purpose`
+ of `vpc`.
+
+
+ - Returned as an empty string (`""`) for non-`vpc`
+ type interfaces.
+
+
+ When included in a request:
+
+
+ - The `vpc` can''t be assigned to an existing Linode
+ as an address or in a range.
+
+
+ - The target address can''t be the first two or last
+ two addresses in the subnet IPv4 range.
+
+
+ - If omitted, a valid address within the Subnet IPv4
+ range is automatically assigned.'
+ example: 10.0.0.2
+ format: ip
+ nullable: true
+ type: string
+ type: object
+ label:
+ description: '__Filterable__ The name of this interface.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Required.
+
+
+ - This needs to be unique among a Linode''s interfaces.
+ A Linode can''t be attached to the same VLAN multiple
+ times.
+
+
+ - This can only contain ASCII letters, numbers, and dashes
+ (`-`). You can''t use two consecutive dashes (`--`).
+
+
+ - If the VLAN label is new, a VLAN is created. Up to 10
+ VLANs can be created in each data center `region`. To
+ view your active VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans)
+ operation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty
+ string (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: example-interface
+ maxLength: 64
+ minLength: 1
+ nullable: true
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ primary:
+ description: "The default route to the Linode. Each Linode\
+ \ can have one interface set as its `primary`. If you\
+ \ haven't specifically set a `primary`, the first non-`vlan`\
+ \ type interface is automatically treated as the primary.\n\
+ \n> \U0001F4D8\n>\n> This needs to be set to `false` for\
+ \ any interface that uses `vlan` as its `purpose`."
+ example: true
+ type: boolean
+ purpose:
+ description: 'The type of interface. This can be `public`,
+ `vlan`, or `vpc`.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - You can only define one `public` interface per Linode.
+
+
+ - The Linode''s default public IPv4 address is assigned
+ to the `public` interface.
+
+
+ - A Linode needs a `public` interface in the first or
+ `eth0` position to be reachable via the public internet,
+ after it boots. If no `public` interface is configured,
+ you can only access the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/),
+ or through another Linode that''s connected to the same
+ VLAN or VPC.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to the VLAN with the specified `label`.
+
+
+ - If an `ipam_address` is configured, the Linode uses
+ this address.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to an existing VPC subnet with the specified `subnet_id`.
+
+
+ - When the interface is activated, the Linode is configured
+ to use an IP address from the range in the assigned VPC
+ subnet. See `ipv4.vpc` for more information.'
+ enum:
+ - public
+ - vlan
+ - vpc
+ example: vlan
+ type: string
+ x-linode-cli-display: 3
+ subnet_id:
+ description: 'The `id` of the VPC subnet for this interface.
+ Use this value in a request to assign a Linode to a VPC
+ subnet.
+
+
+ - Required for `vpc` type interfaces.
+
+
+ - Returned as `null` for non-`vpc` type interfaces.
+
+
+ - Once you''ve assigned a VPC subnet to an interface,
+ you can''t update it.
+
+
+ - You need to reboot a Linode using the interface''s configuration
+ profile to assign the Linode to a VPC subnet.'
+ example: 101
+ nullable: true
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured
+ for this interface. Returned as `null` for non-`vpc` type
+ interfaces.
+ example: 111
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - purpose
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config-interface.yaml
+ maxItems: 3
+ minItems: 1
+ type: array
+ uniqueItems: true
+ x-akamai:
+ file-path: schemas/linode-config-interfaces.yaml
+ kernel:
+ default: linode/latest-64bit
+ description: 'The ID of the kernel used to boot a Linode. Run
+ the [List kernels](https://techdocs.akamai.com/linode-api/reference/get-kernels)
+ operation to see all available kernels. Here are some commonly
+ used kernels:
+
+
+ - `linode/latest-64bit`. This is the default, our latest kernel
+ at the time of an instance boot or reboot.
+
+
+ - `linode/grub2`. The upstream distribution-supplied kernel
+ that''s installed on the primary disk, or a custom kernel if
+ installed.
+
+
+ - `linode/direct-disk`. The master boot record (MBR) of the
+ primary disk or root device. Use this in place of a Linux kernel.'
+ example: linode/latest-64bit
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: __Filterable__ The name of the configuration for
+ display in Akamai Cloud Manager.
+ example: My Config
+ maxLength: 48
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ memory_limit:
+ description: Defaults to the total RAM of the Linode.
+ example: 2048
+ type: integer
+ root_device:
+ description: "The root device to boot.\n\n> \U0001F4D8\n\n- If\
+ \ you leave this empty or set an invalid value, the root device\
+ \ defaults to `/dev/sda`.\n\n- If you specify a device at the\
+ \ root device location and it's not mounted, the Linode won't\
+ \ boot until a device is mounted."
+ example: /dev/sda
+ pattern: a-z, A-Z, 0-9, /, _, -
+ type: string
+ run_level:
+ description: Defines the state of your Linode after booting. Defaults
+ to `default`.
+ enum:
+ - default
+ - single
+ - binbash
+ example: default
+ type: string
+ virt_mode:
+ description: 'Controls the virtualization mode. Defaults to `paravirt`.
+
+
+ - `paravirt` is suitable for most cases. Linodes running in
+ `paravirt` mode share some qualities with the host, ultimately
+ making it run faster since there is less transition between
+ it and the host.
+
+
+ - `fullvirt` affords more customization, but is slower because
+ 100% of the VM is virtualized.'
+ enum:
+ - paravirt
+ - fullvirt
+ example: paravirt
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config.yaml
+ x-example:
+ x-ref: ../examples/get-linode-config-200.json
+ description: Configuration profile successfully updated.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Update a configuration profile
+ tags:
+ - Configurations
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes config-update 123 23456 \\\n --kernel \"linode/latest-64bit\"\
+ \ \\\n --comments \"This is my main Config\" \\\n --memory_limit 2048\
+ \ \\\n --run_level default \\\n --virt_mode paravirt \\\n --helpers.updatedb_disabled\
+ \ true \\\n --helpers.distro true \\\n --helpers.modules_dep true \\\
+ \n --helpers.network true \\\n --helpers.devtmpfs_automount false \\\
+ \n --label \"My Config\" \\\n --devices.sda.disk_id 123456 \\\n --devices.sdb.disk_id\
+ \ 123457"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: config-update
+ x-linode-grant: read_write
+ delete:
+ description: 'Deletes the specified configuration profile from the specified
+ Linode.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-linode-config
+ operationId: delete-linode-config
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-linode-config-200.json
+ description: Configuration profile successfully deleted.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Delete a configuration profile
+ tags:
+ - Configurations
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes config-delete 123 23456
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: config-delete
+ x-linode-grant: read_write
+ parameters:
+ - description: The `id` of the Linode.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id.yaml
+ - description: The `id` of the Configuration Profile.
+ example: '{{configId}}'
+ in: path
+ name: configId
+ required: true
+ schema:
+ example: 521
+ type: integer
+ x-akamai:
+ file-path: parameters/config-id-profile.yaml
+ x-akamai:
+ file-path: paths/linode-config.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/configs/{configId}
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/configs/{configId}/interfaces:
+ post:
+ description: 'Creates and appends a single interface to the end of the `interfaces`
+ array for an existing configuration profile. After you add the interface,
+ you need to reboot the target Linode.
+
+
+ - To access this operation, your user needs the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ for the Linode.
+
+
+ - A successful request triggers a `linode_config_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).
+
+
+ - Only one interface can be set as `primary`. Setting `primary` to `true`
+ for an interface sets all other interfaces to `false`.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-linode-config-interface
+ operationId: post-linode-config-interface
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - required:
+ - purpose
+ - additionalProperties: false
+ description: The network interface to apply to this Linode's configuration
+ profile.
+ properties:
+ active:
+ description: __Read-only__ Returns `true` if the interface is
+ in use, meaning that the Linode has been booted using the configuration
+ profile to which the interface belongs.
+ example: true
+ readOnly: true
+ type: boolean
+ id:
+ description: __Read-only__ The unique ID representing this interface.
+ example: 101
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip_ranges:
+ description: "IPv4 CIDR VPC subnet ranges that are routed to this\
+ \ interface.\n\nWhen included in a request:\n\n- A range can't\
+ \ include any addresses that are assigned to an active Linode\
+ \ or another VPC subnet.\n\n- When updating, you need to include\
+ \ any existing ranges to maintain them. If a range is left out,\
+ \ it will be removed.\n\n- Submit this as an empty array removes\
+ \ all existing values.\n\n- Omit this object to leave existing\
+ \ values as is.\n\n<>\n\n> \U0001F4D8\n>\n> This is only\
+ \ supported for interfaces with a `purpose` of `vpc`."
+ example:
+ - 10.0.0.64/26
+ - fd04:495a:691c:971c::1:0/112
+ items:
+ format: ip
+ type: string
+ nullable: true
+ type: array
+ ipam_address:
+ description: 'This interface''s private IP address in classless
+ inter-domain routing (CIDR) notation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - To avoid conflicting addresses, make sure this value is unique
+ for each `vlan` interface.
+
+
+ - This should be unique among devices attached to the VLAN to
+ avoid conflict.
+
+
+ - If Network Helper is enabled, the Linode''s interface will
+ be automatically configured to use this address after the Linode
+ is rebooted. If Network Helper is disabled, enable the address
+ using [manual static IP configuration](https://www.linode.com/docs/guides/manual-network-configuration/).
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ ipv4:
+ additionalProperties: false
+ description: IPv4 addresses configured for this interface. This
+ only applies to interfaces with a `purpose` of `vpc`. Returned
+ as `null` if no `vpc` interface is assigned.
+ properties:
+ nat_1_1:
+ anyOf:
+ - format: ip
+ minLength: 1
+ title: An available public IPv4 address
+ type: string
+ - enum:
+ - any
+ title: The assigned public IPv4 address
+ type: string
+ description: "The 1:1 NAT IPv4 address, used to associate\
+ \ a public IPv4 address with the interface's VPC subnet\
+ \ IPv4 address.\n\n- Only supported for interfaces with\
+ \ a `purpose` of `vpc`.\n\n- Returned as `null` if no 1:1\
+ \ NAT is set for a `vpc` type interface.\n\n- Returned as\
+ \ an empty string (`\"\"`) for non-`vpc` type interfaces.\n\
+ \nWhen included in a request:\n\n- You can set this to a\
+ \ specific, public IPv4 address that's available on the\
+ \ Linode. You can also use the `any` keyword to enable the\
+ \ Linode's assigned public IPv4 address.\n\n- A specified\
+ \ address can't be shared with another Linode.\n\n- Omit\
+ \ this object or include it and set it to `null` or an empty\
+ \ string (`\"\"`) to block creation of a 1:1 NAT.\n\n<>\n\
+ \n> \U0001F4D8\n>\n> You can't set this to a specific IPv4\
+ \ address when creating a new Linode. During the creation\
+ \ process, the network automatically establishes a public\
+ \ IPv4 address for the Linode. Since this address doesn't\
+ \ exist yet, you can't include a custom IPv4 address to\
+ \ change it. After your Linode is created, you can [update\
+ \ your configuration profile interface](https://www.linode.com/docs/api/linode-instances/#configuration-profile-interface-update)\
+ \ to change the `nat_1_1` address."
+ example: 203.0.113.2
+ nullable: true
+ type: string
+ vpc:
+ description: 'The VPC subnet IPv4 address for this interface.
+
+
+ - This only applies to interfaces with a `purpose` of `vpc`.
+
+
+ - Returned as an empty string (`""`) for non-`vpc` type
+ interfaces.
+
+
+ When included in a request:
+
+
+ - The `vpc` can''t be assigned to an existing Linode as
+ an address or in a range.
+
+
+ - The target address can''t be the first two or last two
+ addresses in the subnet IPv4 range.
+
+
+ - If omitted, a valid address within the Subnet IPv4 range
+ is automatically assigned.'
+ example: 10.0.0.2
+ format: ip
+ nullable: true
+ type: string
+ type: object
+ label:
+ description: '__Filterable__ The name of this interface.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Required.
+
+
+ - This needs to be unique among a Linode''s interfaces. A Linode
+ can''t be attached to the same VLAN multiple times.
+
+
+ - This can only contain ASCII letters, numbers, and dashes (`-`).
+ You can''t use two consecutive dashes (`--`).
+
+
+ - If the VLAN label is new, a VLAN is created. Up to 10 VLANs
+ can be created in each data center `region`. To view your active
+ VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans)
+ operation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: example-interface
+ maxLength: 64
+ minLength: 1
+ nullable: true
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ primary:
+ description: "The default route to the Linode. Each Linode can\
+ \ have one interface set as its `primary`. If you haven't specifically\
+ \ set a `primary`, the first non-`vlan` type interface is automatically\
+ \ treated as the primary.\n\n> \U0001F4D8\n>\n> This needs to\
+ \ be set to `false` for any interface that uses `vlan` as its\
+ \ `purpose`."
+ example: true
+ type: boolean
+ purpose:
+ description: 'The type of interface. This can be `public`, `vlan`,
+ or `vpc`.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - You can only define one `public` interface per Linode.
+
+
+ - The Linode''s default public IPv4 address is assigned to the
+ `public` interface.
+
+
+ - A Linode needs a `public` interface in the first or `eth0`
+ position to be reachable via the public internet, after it boots.
+ If no `public` interface is configured, you can only access
+ the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/),
+ or through another Linode that''s connected to the same VLAN
+ or VPC.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to the VLAN with the specified `label`.
+
+
+ - If an `ipam_address` is configured, the Linode uses this address.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to an existing VPC subnet with the specified `subnet_id`.
+
+
+ - When the interface is activated, the Linode is configured
+ to use an IP address from the range in the assigned VPC subnet.
+ See `ipv4.vpc` for more information.'
+ enum:
+ - public
+ - vlan
+ - vpc
+ example: vlan
+ type: string
+ x-linode-cli-display: 3
+ subnet_id:
+ description: 'The `id` of the VPC subnet for this interface. Use
+ this value in a request to assign a Linode to a VPC subnet.
+
+
+ - Required for `vpc` type interfaces.
+
+
+ - Returned as `null` for non-`vpc` type interfaces.
+
+
+ - Once you''ve assigned a VPC subnet to an interface, you can''t
+ update it.
+
+
+ - You need to reboot a Linode using the interface''s configuration
+ profile to assign the Linode to a VPC subnet.'
+ example: 101
+ nullable: true
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured for
+ this interface. Returned as `null` for non-`vpc` type interfaces.
+ example: 111
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - purpose
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config-interface.yaml
+ x-akamai:
+ file-path: schemas/added-post-linode-config-interface.yaml
+ x-example:
+ x-ref: ../examples/post-linode-config-interface.json
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: The network interface to apply to this Linode's configuration
+ profile.
+ properties:
+ active:
+ description: __Read-only__ Returns `true` if the interface is
+ in use, meaning that the Linode has been booted using the configuration
+ profile to which the interface belongs.
+ example: true
+ readOnly: true
+ type: boolean
+ id:
+ description: __Read-only__ The unique ID representing this interface.
+ example: 101
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip_ranges:
+ description: "IPv4 CIDR VPC subnet ranges that are routed to this\
+ \ interface.\n\nWhen included in a request:\n\n- A range can't\
+ \ include any addresses that are assigned to an active Linode\
+ \ or another VPC subnet.\n\n- When updating, you need to include\
+ \ any existing ranges to maintain them. If a range is left out,\
+ \ it will be removed.\n\n- Submit this as an empty array removes\
+ \ all existing values.\n\n- Omit this object to leave existing\
+ \ values as is.\n\n<>\n\n> \U0001F4D8\n>\n> This is only\
+ \ supported for interfaces with a `purpose` of `vpc`."
+ example:
+ - 10.0.0.64/26
+ - fd04:495a:691c:971c::1:0/112
+ items:
+ format: ip
+ type: string
+ nullable: true
+ type: array
+ ipam_address:
+ description: 'This interface''s private IP address in classless
+ inter-domain routing (CIDR) notation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - To avoid conflicting addresses, make sure this value is unique
+ for each `vlan` interface.
+
+
+ - This should be unique among devices attached to the VLAN to
+ avoid conflict.
+
+
+ - If Network Helper is enabled, the Linode''s interface will
+ be automatically configured to use this address after the Linode
+ is rebooted. If Network Helper is disabled, enable the address
+ using [manual static IP configuration](https://www.linode.com/docs/guides/manual-network-configuration/).
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ ipv4:
+ additionalProperties: false
+ description: IPv4 addresses configured for this interface. This
+ only applies to interfaces with a `purpose` of `vpc`. Returned
+ as `null` if no `vpc` interface is assigned.
+ properties:
+ nat_1_1:
+ anyOf:
+ - format: ip
+ minLength: 1
+ title: An available public IPv4 address
+ type: string
+ - enum:
+ - any
+ title: The assigned public IPv4 address
+ type: string
+ description: "The 1:1 NAT IPv4 address, used to associate\
+ \ a public IPv4 address with the interface's VPC subnet\
+ \ IPv4 address.\n\n- Only supported for interfaces with\
+ \ a `purpose` of `vpc`.\n\n- Returned as `null` if no 1:1\
+ \ NAT is set for a `vpc` type interface.\n\n- Returned as\
+ \ an empty string (`\"\"`) for non-`vpc` type interfaces.\n\
+ \nWhen included in a request:\n\n- You can set this to a\
+ \ specific, public IPv4 address that's available on the\
+ \ Linode. You can also use the `any` keyword to enable the\
+ \ Linode's assigned public IPv4 address.\n\n- A specified\
+ \ address can't be shared with another Linode.\n\n- Omit\
+ \ this object or include it and set it to `null` or an empty\
+ \ string (`\"\"`) to block creation of a 1:1 NAT.\n\n<>\n\
+ \n> \U0001F4D8\n>\n> You can't set this to a specific IPv4\
+ \ address when creating a new Linode. During the creation\
+ \ process, the network automatically establishes a public\
+ \ IPv4 address for the Linode. Since this address doesn't\
+ \ exist yet, you can't include a custom IPv4 address to\
+ \ change it. After your Linode is created, you can [update\
+ \ your configuration profile interface](https://www.linode.com/docs/api/linode-instances/#configuration-profile-interface-update)\
+ \ to change the `nat_1_1` address."
+ example: 203.0.113.2
+ nullable: true
+ type: string
+ vpc:
+ description: 'The VPC subnet IPv4 address for this interface.
+
+
+ - This only applies to interfaces with a `purpose` of `vpc`.
+
+
+ - Returned as an empty string (`""`) for non-`vpc` type
+ interfaces.
+
+
+ When included in a request:
+
+
+ - The `vpc` can''t be assigned to an existing Linode as
+ an address or in a range.
+
+
+ - The target address can''t be the first two or last two
+ addresses in the subnet IPv4 range.
+
+
+ - If omitted, a valid address within the Subnet IPv4 range
+ is automatically assigned.'
+ example: 10.0.0.2
+ format: ip
+ nullable: true
+ type: string
+ type: object
+ label:
+ description: '__Filterable__ The name of this interface.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Required.
+
+
+ - This needs to be unique among a Linode''s interfaces. A Linode
+ can''t be attached to the same VLAN multiple times.
+
+
+ - This can only contain ASCII letters, numbers, and dashes (`-`).
+ You can''t use two consecutive dashes (`--`).
+
+
+ - If the VLAN label is new, a VLAN is created. Up to 10 VLANs
+ can be created in each data center `region`. To view your active
+ VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans)
+ operation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: example-interface
+ maxLength: 64
+ minLength: 1
+ nullable: true
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ primary:
+ description: "The default route to the Linode. Each Linode can\
+ \ have one interface set as its `primary`. If you haven't specifically\
+ \ set a `primary`, the first non-`vlan` type interface is automatically\
+ \ treated as the primary.\n\n> \U0001F4D8\n>\n> This needs to\
+ \ be set to `false` for any interface that uses `vlan` as its\
+ \ `purpose`."
+ example: true
+ type: boolean
+ purpose:
+ description: 'The type of interface. This can be `public`, `vlan`,
+ or `vpc`.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - You can only define one `public` interface per Linode.
+
+
+ - The Linode''s default public IPv4 address is assigned to the
+ `public` interface.
+
+
+ - A Linode needs a `public` interface in the first or `eth0`
+ position to be reachable via the public internet, after it boots.
+ If no `public` interface is configured, you can only access
+ the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/),
+ or through another Linode that''s connected to the same VLAN
+ or VPC.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to the VLAN with the specified `label`.
+
+
+ - If an `ipam_address` is configured, the Linode uses this address.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to an existing VPC subnet with the specified `subnet_id`.
+
+
+ - When the interface is activated, the Linode is configured
+ to use an IP address from the range in the assigned VPC subnet.
+ See `ipv4.vpc` for more information.'
+ enum:
+ - public
+ - vlan
+ - vpc
+ example: vlan
+ type: string
+ x-linode-cli-display: 3
+ subnet_id:
+ description: 'The `id` of the VPC subnet for this interface. Use
+ this value in a request to assign a Linode to a VPC subnet.
+
+
+ - Required for `vpc` type interfaces.
+
+
+ - Returned as `null` for non-`vpc` type interfaces.
+
+
+ - Once you''ve assigned a VPC subnet to an interface, you can''t
+ update it.
+
+
+ - You need to reboot a Linode using the interface''s configuration
+ profile to assign the Linode to a VPC subnet.'
+ example: 101
+ nullable: true
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured for
+ this interface. Returned as `null` for non-`vpc` type interfaces.
+ example: 111
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - purpose
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config-interface.yaml
+ x-example:
+ x-ref: ../examples/post-linode-config-interface-200.json
+ description: Configuration profile interface successfully added.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Add a configuration profile interface
+ tags:
+ - Interfaces
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes config-interface-add $linodeId $configId \\\n\
+ \ --purpose vpc \\\n --primary false \\\n --subnet_id 101 \\\n --ipv4.vpc\
+ \ \"10.0.1.2\" \\\n --ipv4.nat_1_1 \"203.0.113.2\""
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: config-interface-add
+ x-linode-grant: read_write
+ get:
+ description: 'Returns all configuration profile interfaces assigned to a specific
+ configuration profile, on a specific Linode. To access this operation, your
+ user needs the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ for the Linode.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-config-interfaces
+ operationId: get-linode-config-interfaces
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: "`interfaces` is applicable only to legacy configuration\
+ \ profiles and does not apply to [Linode interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).\n\
+ \nFrom one to three network interfaces to add to this Linode's configuration\
+ \ profile. The position in the array determines which of the Linode's\
+ \ network interfaces is configured:\n\n- First [0]: `eth0`\n- Second\
+ \ [1]: `eth1`\n- Third [2]: `eth2`\n\nWhen updating a Linode's\
+ \ legacy interfaces, _each interface must be redefined_. An empty\
+ \ `interfaces` array results in a default `public` type interface\
+ \ configuration only.\n\nIf no public Interface is configured, public\
+ \ IP addresses are still assigned to the Linode but will not be\
+ \ usable without manual configuration.\n\n> \U0001F4D8\n>\n> Changes\
+ \ to Linode Interface configurations can be enabled by rebooting\
+ \ the Linode.\n\n`vpc` details\n\nSee the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications)\
+ \ guide for its specifications and limitations.\n\n`vlan` details\n\
+ \n- Only Next Generation Network (NGN) data centers support VLANs.\
+ \ Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions)\
+ \ operation 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 or cloned because\
+ \ of an incompatibility, you will be prompted to select a different\
+ \ data center or contact support.\n- See the [VLANs Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications)\
+ \ guide to view additional specifications and limitations."
+ example:
+ - id: 101
+ ipam_address: null
+ ipv4: null
+ label: null
+ primary: false
+ purpose: public
+ subnet_id: null
+ vpc_id: null
+ - id: 102
+ ipam_address: 10.0.0.1/24
+ ipv4:
+ nat_1_1: null
+ vpc: 10.0.0.2
+ label: vlan-1
+ primary: false
+ purpose: vlan
+ subnet_id: null
+ vpc_id: null
+ - id: 103
+ ipam_address: null
+ ipv4:
+ nat_1_1: 203.0.113.2
+ vpc: 10.0.1.2
+ label: null
+ primary: true
+ purpose: vpc
+ subnet_id: 101
+ vpc_id: 111
+ items:
+ additionalProperties: false
+ description: The network interface to apply to this Linode's configuration
+ profile.
+ properties:
+ active:
+ description: __Read-only__ Returns `true` if the interface is
+ in use, meaning that the Linode has been booted using the
+ configuration profile to which the interface belongs.
+ example: true
+ readOnly: true
+ type: boolean
+ id:
+ description: __Read-only__ The unique ID representing this interface.
+ example: 101
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip_ranges:
+ description: "IPv4 CIDR VPC subnet ranges that are routed to\
+ \ this interface.\n\nWhen included in a request:\n\n- A range\
+ \ can't include any addresses that are assigned to an active\
+ \ Linode or another VPC subnet.\n\n- When updating, you need\
+ \ to include any existing ranges to maintain them. If a range\
+ \ is left out, it will be removed.\n\n- Submit this as an\
+ \ empty array removes all existing values.\n\n- Omit this\
+ \ object to leave existing values as is.\n\n<>\n\n> \U0001F4D8\
+ \n>\n> This is only supported for interfaces with a `purpose`\
+ \ of `vpc`."
+ example:
+ - 10.0.0.64/26
+ - fd04:495a:691c:971c::1:0/112
+ items:
+ format: ip
+ type: string
+ nullable: true
+ type: array
+ ipam_address:
+ description: 'This interface''s private IP address in classless
+ inter-domain routing (CIDR) notation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - To avoid conflicting addresses, make sure this value is
+ unique for each `vlan` interface.
+
+
+ - This should be unique among devices attached to the VLAN
+ to avoid conflict.
+
+
+ - If Network Helper is enabled, the Linode''s interface will
+ be automatically configured to use this address after the
+ Linode is rebooted. If Network Helper is disabled, enable
+ the address using [manual static IP configuration](https://www.linode.com/docs/guides/manual-network-configuration/).
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ ipv4:
+ additionalProperties: false
+ description: IPv4 addresses configured for this interface. This
+ only applies to interfaces with a `purpose` of `vpc`. Returned
+ as `null` if no `vpc` interface is assigned.
+ properties:
+ nat_1_1:
+ anyOf:
+ - format: ip
+ minLength: 1
+ title: An available public IPv4 address
+ type: string
+ - enum:
+ - any
+ title: The assigned public IPv4 address
+ type: string
+ description: "The 1:1 NAT IPv4 address, used to associate\
+ \ a public IPv4 address with the interface's VPC subnet\
+ \ IPv4 address.\n\n- Only supported for interfaces with\
+ \ a `purpose` of `vpc`.\n\n- Returned as `null` if no\
+ \ 1:1 NAT is set for a `vpc` type interface.\n\n- Returned\
+ \ as an empty string (`\"\"`) for non-`vpc` type interfaces.\n\
+ \nWhen included in a request:\n\n- You can set this to\
+ \ a specific, public IPv4 address that's available on\
+ \ the Linode. You can also use the `any` keyword to enable\
+ \ the Linode's assigned public IPv4 address.\n\n- A specified\
+ \ address can't be shared with another Linode.\n\n- Omit\
+ \ this object or include it and set it to `null` or an\
+ \ empty string (`\"\"`) to block creation of a 1:1 NAT.\n\
+ \n<>\n\n> \U0001F4D8\n>\n> You can't set this to a\
+ \ specific IPv4 address when creating a new Linode. During\
+ \ the creation process, the network automatically establishes\
+ \ a public IPv4 address for the Linode. Since this address\
+ \ doesn't exist yet, you can't include a custom IPv4 address\
+ \ to change it. After your Linode is created, you can\
+ \ [update your configuration profile interface](https://www.linode.com/docs/api/linode-instances/#configuration-profile-interface-update)\
+ \ to change the `nat_1_1` address."
+ example: 203.0.113.2
+ nullable: true
+ type: string
+ vpc:
+ description: 'The VPC subnet IPv4 address for this interface.
+
+
+ - This only applies to interfaces with a `purpose` of
+ `vpc`.
+
+
+ - Returned as an empty string (`""`) for non-`vpc` type
+ interfaces.
+
+
+ When included in a request:
+
+
+ - The `vpc` can''t be assigned to an existing Linode as
+ an address or in a range.
+
+
+ - The target address can''t be the first two or last two
+ addresses in the subnet IPv4 range.
+
+
+ - If omitted, a valid address within the Subnet IPv4 range
+ is automatically assigned.'
+ example: 10.0.0.2
+ format: ip
+ nullable: true
+ type: string
+ type: object
+ label:
+ description: '__Filterable__ The name of this interface.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Required.
+
+
+ - This needs to be unique among a Linode''s interfaces. A
+ Linode can''t be attached to the same VLAN multiple times.
+
+
+ - This can only contain ASCII letters, numbers, and dashes
+ (`-`). You can''t use two consecutive dashes (`--`).
+
+
+ - If the VLAN label is new, a VLAN is created. Up to 10 VLANs
+ can be created in each data center `region`. To view your
+ active VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans)
+ operation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: example-interface
+ maxLength: 64
+ minLength: 1
+ nullable: true
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ primary:
+ description: "The default route to the Linode. Each Linode can\
+ \ have one interface set as its `primary`. If you haven't\
+ \ specifically set a `primary`, the first non-`vlan` type\
+ \ interface is automatically treated as the primary.\n\n>\
+ \ \U0001F4D8\n>\n> This needs to be set to `false` for any\
+ \ interface that uses `vlan` as its `purpose`."
+ example: true
+ type: boolean
+ purpose:
+ description: 'The type of interface. This can be `public`, `vlan`,
+ or `vpc`.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - You can only define one `public` interface per Linode.
+
+
+ - The Linode''s default public IPv4 address is assigned to
+ the `public` interface.
+
+
+ - A Linode needs a `public` interface in the first or `eth0`
+ position to be reachable via the public internet, after it
+ boots. If no `public` interface is configured, you can only
+ access the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/),
+ or through another Linode that''s connected to the same VLAN
+ or VPC.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to the VLAN with the specified `label`.
+
+
+ - If an `ipam_address` is configured, the Linode uses this
+ address.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to an existing VPC subnet with the specified `subnet_id`.
+
+
+ - When the interface is activated, the Linode is configured
+ to use an IP address from the range in the assigned VPC subnet.
+ See `ipv4.vpc` for more information.'
+ enum:
+ - public
+ - vlan
+ - vpc
+ example: vlan
+ type: string
+ x-linode-cli-display: 3
+ subnet_id:
+ description: 'The `id` of the VPC subnet for this interface.
+ Use this value in a request to assign a Linode to a VPC subnet.
+
+
+ - Required for `vpc` type interfaces.
+
+
+ - Returned as `null` for non-`vpc` type interfaces.
+
+
+ - Once you''ve assigned a VPC subnet to an interface, you
+ can''t update it.
+
+
+ - You need to reboot a Linode using the interface''s configuration
+ profile to assign the Linode to a VPC subnet.'
+ example: 101
+ nullable: true
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured for
+ this interface. Returned as `null` for non-`vpc` type interfaces.
+ example: 111
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - purpose
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config-interface.yaml
+ maxItems: 3
+ minItems: 1
+ type: array
+ uniqueItems: true
+ x-akamai:
+ file-path: schemas/linode-config-interfaces.yaml
+ x-example:
+ x-ref: ../examples/get-linode-config-interfaces-200.json
+ description: An ordered array of configuration profile interface objects.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: List configuration profile interfaces
+ tags:
+ - Interfaces
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes config-interfaces-list $linodeId $configId
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - config-interfaces-list
+ - config-interfaces-ls
+ x-linode-grant: read_only
+ parameters:
+ - description: The `id` of the Linode.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id.yaml
+ - description: The `id` of the Configuration Profile.
+ example: '{{configId}}'
+ in: path
+ name: configId
+ required: true
+ schema:
+ example: 521
+ type: integer
+ x-akamai:
+ file-path: parameters/config-id-profile.yaml
+ x-akamai:
+ file-path: paths/interfaces.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/configs/{configId}/interfaces
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/configs/{configId}/interfaces/order:
+ post:
+ description: 'Reorders the existing Interfaces of a Configuration Profile.
+
+
+ - The User accessing this operation must have `read_write` grants to the Linode.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-linode-config-interfaces
+ operationId: post-linode-config-interfaces
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Linode Configuration Interfaces Order request object.
+ properties:
+ ids:
+ description: 'An ordered array of existing Configuration Profile
+ Interface `id`s.
+
+
+ - All current Interface `id`s must be present in the array.
+
+ - If the Configuration Profile contains Interfaces and is active
+ on the Linode, the Linode must first be shut down prior to running
+ this operation.
+
+ - Reordering takes effect after rebooting the Linode with this
+ Configuration Profile.
+
+
+ The position in the array determines which of the Linode''s network
+ Interfaces is configured:
+
+
+ - First [0]: eth0
+
+ - Second [1]: eth1
+
+ - Third [2]: eth2'
+ items:
+ description: __Read-only__ The unique ID representing this interface.
+ example: 101
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ type: array
+ required:
+ - ids
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-linode-config-interfaces.yaml
+ x-example:
+ x-ref: ../examples/post-linode-config-interfaces.json
+ description: The desired Interface order for the Configuration Profile.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-linode-config-interfaces-200.json
+ description: Interfaces successfully reordered.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Reorder configuration profile interfaces
+ tags:
+ - Interfaces
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes config-interfaces-order $linodeId $configId\
+ \ \\\n --ids 101 --ids 102 --ids 103"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: config-interfaces-order
+ x-linode-grant: read_write
+ parameters:
+ - description: The `id` of the Linode.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id.yaml
+ - description: The `id` of the Configuration Profile.
+ example: '{{configId}}'
+ in: path
+ name: configId
+ required: true
+ schema:
+ example: 521
+ type: integer
+ x-akamai:
+ file-path: parameters/config-id-profile.yaml
+ x-akamai:
+ file-path: paths/order.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/configs/{configId}/interfaces/order
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/configs/{configId}/interfaces/{interfaceId}:
+ get:
+ description: 'Returns a single configuration profile interface. To access this
+ operation, your user needs at least the `read_only` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ for the Linode.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-config-interface
+ operationId: get-linode-config-interface
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: The network interface to apply to this Linode's configuration
+ profile.
+ properties:
+ active:
+ description: __Read-only__ Returns `true` if the interface is
+ in use, meaning that the Linode has been booted using the configuration
+ profile to which the interface belongs.
+ example: true
+ readOnly: true
+ type: boolean
+ id:
+ description: __Read-only__ The unique ID representing this interface.
+ example: 101
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip_ranges:
+ description: "IPv4 CIDR VPC subnet ranges that are routed to this\
+ \ interface.\n\nWhen included in a request:\n\n- A range can't\
+ \ include any addresses that are assigned to an active Linode\
+ \ or another VPC subnet.\n\n- When updating, you need to include\
+ \ any existing ranges to maintain them. If a range is left out,\
+ \ it will be removed.\n\n- Submit this as an empty array removes\
+ \ all existing values.\n\n- Omit this object to leave existing\
+ \ values as is.\n\n<>\n\n> \U0001F4D8\n>\n> This is only\
+ \ supported for interfaces with a `purpose` of `vpc`."
+ example:
+ - 10.0.0.64/26
+ - fd04:495a:691c:971c::1:0/112
+ items:
+ format: ip
+ type: string
+ nullable: true
+ type: array
+ ipam_address:
+ description: 'This interface''s private IP address in classless
+ inter-domain routing (CIDR) notation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - To avoid conflicting addresses, make sure this value is unique
+ for each `vlan` interface.
+
+
+ - This should be unique among devices attached to the VLAN to
+ avoid conflict.
+
+
+ - If Network Helper is enabled, the Linode''s interface will
+ be automatically configured to use this address after the Linode
+ is rebooted. If Network Helper is disabled, enable the address
+ using [manual static IP configuration](https://www.linode.com/docs/guides/manual-network-configuration/).
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ ipv4:
+ additionalProperties: false
+ description: IPv4 addresses configured for this interface. This
+ only applies to interfaces with a `purpose` of `vpc`. Returned
+ as `null` if no `vpc` interface is assigned.
+ properties:
+ nat_1_1:
+ anyOf:
+ - format: ip
+ minLength: 1
+ title: An available public IPv4 address
+ type: string
+ - enum:
+ - any
+ title: The assigned public IPv4 address
+ type: string
+ description: "The 1:1 NAT IPv4 address, used to associate\
+ \ a public IPv4 address with the interface's VPC subnet\
+ \ IPv4 address.\n\n- Only supported for interfaces with\
+ \ a `purpose` of `vpc`.\n\n- Returned as `null` if no 1:1\
+ \ NAT is set for a `vpc` type interface.\n\n- Returned as\
+ \ an empty string (`\"\"`) for non-`vpc` type interfaces.\n\
+ \nWhen included in a request:\n\n- You can set this to a\
+ \ specific, public IPv4 address that's available on the\
+ \ Linode. You can also use the `any` keyword to enable the\
+ \ Linode's assigned public IPv4 address.\n\n- A specified\
+ \ address can't be shared with another Linode.\n\n- Omit\
+ \ this object or include it and set it to `null` or an empty\
+ \ string (`\"\"`) to block creation of a 1:1 NAT.\n\n<>\n\
+ \n> \U0001F4D8\n>\n> You can't set this to a specific IPv4\
+ \ address when creating a new Linode. During the creation\
+ \ process, the network automatically establishes a public\
+ \ IPv4 address for the Linode. Since this address doesn't\
+ \ exist yet, you can't include a custom IPv4 address to\
+ \ change it. After your Linode is created, you can [update\
+ \ your configuration profile interface](https://www.linode.com/docs/api/linode-instances/#configuration-profile-interface-update)\
+ \ to change the `nat_1_1` address."
+ example: 203.0.113.2
+ nullable: true
+ type: string
+ vpc:
+ description: 'The VPC subnet IPv4 address for this interface.
+
+
+ - This only applies to interfaces with a `purpose` of `vpc`.
+
+
+ - Returned as an empty string (`""`) for non-`vpc` type
+ interfaces.
+
+
+ When included in a request:
+
+
+ - The `vpc` can''t be assigned to an existing Linode as
+ an address or in a range.
+
+
+ - The target address can''t be the first two or last two
+ addresses in the subnet IPv4 range.
+
+
+ - If omitted, a valid address within the Subnet IPv4 range
+ is automatically assigned.'
+ example: 10.0.0.2
+ format: ip
+ nullable: true
+ type: string
+ type: object
+ label:
+ description: '__Filterable__ The name of this interface.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Required.
+
+
+ - This needs to be unique among a Linode''s interfaces. A Linode
+ can''t be attached to the same VLAN multiple times.
+
+
+ - This can only contain ASCII letters, numbers, and dashes (`-`).
+ You can''t use two consecutive dashes (`--`).
+
+
+ - If the VLAN label is new, a VLAN is created. Up to 10 VLANs
+ can be created in each data center `region`. To view your active
+ VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans)
+ operation.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - If you include this in a request, set it to an empty string
+ (`""`) or `null`.
+
+
+ - Returned as `null` in a response.'
+ example: example-interface
+ maxLength: 64
+ minLength: 1
+ nullable: true
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ primary:
+ description: "The default route to the Linode. Each Linode can\
+ \ have one interface set as its `primary`. If you haven't specifically\
+ \ set a `primary`, the first non-`vlan` type interface is automatically\
+ \ treated as the primary.\n\n> \U0001F4D8\n>\n> This needs to\
+ \ be set to `false` for any interface that uses `vlan` as its\
+ \ `purpose`."
+ example: true
+ type: boolean
+ purpose:
+ description: 'The type of interface. This can be `public`, `vlan`,
+ or `vpc`.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - You can only define one `public` interface per Linode.
+
+
+ - The Linode''s default public IPv4 address is assigned to the
+ `public` interface.
+
+
+ - A Linode needs a `public` interface in the first or `eth0`
+ position to be reachable via the public internet, after it boots.
+ If no `public` interface is configured, you can only access
+ the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/),
+ or through another Linode that''s connected to the same VLAN
+ or VPC.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to the VLAN with the specified `label`.
+
+
+ - If an `ipam_address` is configured, the Linode uses this address.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - Configuring this `purpose` of interface attaches a Linode
+ to an existing VPC subnet with the specified `subnet_id`.
+
+
+ - When the interface is activated, the Linode is configured
+ to use an IP address from the range in the assigned VPC subnet.
+ See `ipv4.vpc` for more information.'
+ enum:
+ - public
+ - vlan
+ - vpc
+ example: vlan
+ type: string
+ x-linode-cli-display: 3
+ subnet_id:
+ description: 'The `id` of the VPC subnet for this interface. Use
+ this value in a request to assign a Linode to a VPC subnet.
+
+
+ - Required for `vpc` type interfaces.
+
+
+ - Returned as `null` for non-`vpc` type interfaces.
+
+
+ - Once you''ve assigned a VPC subnet to an interface, you can''t
+ update it.
+
+
+ - You need to reboot a Linode using the interface''s configuration
+ profile to assign the Linode to a VPC subnet.'
+ example: 101
+ nullable: true
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured for
+ this interface. Returned as `null` for non-`vpc` type interfaces.
+ example: 111
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - purpose
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config-interface.yaml
+ x-example:
+ x-ref: ../examples/get-linode-config-interface-200.json
+ description: A configuration interface object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: Get a configuration profile interface
+ tags:
+ - Interfaces
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes config-interface-view $linodeId $configId $interfaceId
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - config-interface-view
+ x-linode-grant: read_only
+ put:
+ description: "Update a `vpc` or `public` configuration profile interface for\
+ \ a specific configuration profile, on a specific Linode.\n\n- To access this\
+ \ operation, your user needs the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)\
+ \ for the Linode.\n\n- A successful request triggers a `linode_config_update`\
+ \ [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\
+ - Only certain attributes can be updated for a configuration profile interface.\
+ \ You need to [add](https://techdocs.akamai.com/linode-api/reference/post-linode-config-interface)\
+ \ a new configuration profile interface on your Linode if you need new values\
+ \ for any other attribute. Here are the supported objects, based on the interface's\
+ \ `purpose`:\n\n - `public`. The `primary` attribute.\n\n - `vpc`. The `ip_ranges`,\
+ \ `ipv4`, or `primary` attributes.\n\n- You can't update a configuration profile\
+ \ with a `purpose` of `vlan`.\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-linode-config-interface
+ operationId: put-linode-config-interface
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Linode configuration profile interface update request object.
+ properties:
+ ip_ranges:
+ description: "IPv4 CIDR VPC subnet ranges that are routed to this\
+ \ interface.\n\n- A range can't include any addresses that are\
+ \ assigned to an active Linode or another VPC subnet.\n\n- When\
+ \ updating, you need to include any existing ranges to maintain\
+ \ them. If a range is left out, it will be removed.\n\n- Include\
+ \ this as an empty array (`[]`) to remove all existing `nat_1_1`\
+ \ values.\n\n- Omit this array to leave all existing `ip_ranges`\
+ \ as is.\n<>\n> \U0001F4D8\n>\n> This only applies to interfaces\
+ \ with a `purpose` of `vpc`."
+ example:
+ - 10.0.0.64/26
+ - fd04:495a:691c:971c::1:0/112
+ items:
+ format: ip
+ type: string
+ type: array
+ ipv4:
+ additionalProperties: false
+ description: "IPv4 addresses configured for this interface.\n\n\
+ > \U0001F4D8\n>\n> This only applies to interfaces with a `purpose`\
+ \ of `vpc`."
+ properties:
+ nat_1_1:
+ anyOf:
+ - format: ip
+ minLength: 1
+ title: An available public IPv4 address
+ type: string
+ - enum:
+ - any
+ title: The assigned public IPv4 address
+ type: string
+ description: 'The 1:1 NAT IPv4 address, used to associate a
+ public IPv4 address with the interface''s VPC subnet IPv4
+ address.
+
+
+ - You can set this to a specific, public IPv4 address that''s
+ available on the Linode. You can also use the `any` keyword
+ to enable the Linode''s assigned public IPv4 address.
+
+
+ - A specified address can''t be used on another Linode.
+
+
+ - Include this as an empty object (`""`) to remove an existing
+ `nat_1_1` value.
+
+
+ - Omit this object or include it and set it to `null` to leave
+ an existing `nat_1_1` value as is.'
+ example: 203.0.113.2
+ nullable: true
+ type: string
+ vpc:
+ description: 'The VPC subnet IPv4 address for this interface.
+
+
+ - The `vpc` can''t be assigned to an existing Linode as an
+ address or in a range.
+
+
+ - The target address can''t be the first two or last two addresses
+ in the subnet IPv4 range.
+
+
+ - If omitted, a valid address within the subnet IPv4 range
+ is automatically assigned.'
+ example: 10.0.0.2
+ format: ip
+ nullable: true
+ type: string
+ type: object
+ primary:
+ description: 'Set to `true` to label this configuration profile
+ interface as the default route to the Linode.
+
+
+ - Each Linode can have one interface set as its `primary`.
+
+
+ - If you don''t specifically set a `primary`, the first non-`vlan`
+ type interface is automatically treated as the primary.'
+ example: '{{primary}}'
+ type: boolean
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-linode-config-interface.yaml
+ x-example:
+ x-ref: ../examples/put-linode-config-interface.json
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: The network interface to apply to this Linode's configuration
+ profile.
+ properties:
+ active:
+ description: __Read-only__ Returned as `true` if the interface
+ has been booted using the configuration profile to which the
+ interface belongs.
+ example: true
+ readOnly: true
+ type: boolean
+ id:
+ description: __Read-only__ The unique ID representing this interface.
+ example: 101
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip_ranges:
+ description: IPv4 CIDR VPC subnet ranges that are routed to this
+ interface. This only applies to interfaces with a `purpose`
+ of `vpc`. Returned as an empty string (`""`) if the interface
+ has a `purpose` of `public` or `vlan`.
+ example:
+ - 10.0.0.64/26
+ - fd04:495a:691c:971c::1:0/112
+ items:
+ format: ip
+ type: string
+ nullable: true
+ type: array
+ ipam_address:
+ description: "The interface's private IP address, in classless\
+ \ inter-domain routing (CIDR) notation. Only applies to interfaces\
+ \ with a `purpose` of `vlan`. Returned as `null` if the interface\
+ \ has a `purpose` of `public` or `vpc`.\n\n> \U0001F4D8\n>\n\
+ > If Network Helper is enabled, the Linode's interface is automatically\
+ \ configured to use this address after the Linode is rebooted.\
+ \ If Network Helper is disabled, enable the address using [manual\
+ \ static IP configuration](https://www.linode.com/docs/guides/manual-network-configuration/)."
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ ipv4:
+ additionalProperties: false
+ description: IPv4 addresses configured for this interface. Only
+ applies to interfaces with a `purpose` of `vpc`. Returned as
+ `null` if the interface has a `purpose` of `public` or `vlan`.
+ properties:
+ nat_1_1:
+ description: The 1:1 NAT IPv4 address, used to associate a
+ public IPv4 address with the interface's VPC subnet IPv4
+ address. This only applies to interfaces with a `purpose`
+ of `vpc`. Returned as `null` if no 1:1 NAT is set for a
+ `vpc` interface. Returned as an empty string (`""`) if the
+ interface has a `purpose` of `public` or `vlan`.
+ example: 203.0.113.2
+ format: ip
+ nullable: true
+ type: string
+ vpc:
+ description: The VPC subnet IPv4 address for this interface.
+ This only applies to interfaces with a `purpose` of `vpc`.
+ Returned as an empty string (`""`) if the interface has
+ a `purpose` of `public` or `vlan`.
+ example: 10.0.0.2
+ format: ip
+ nullable: true
+ type: string
+ type: object
+ label:
+ description: __Filterable__ The name set for an interface with
+ a `purpose` of `vlan`. Returned as `null` if the interface has
+ a `purpose` of `public` or `vpc`.
+ example: example-interface
+ maxLength: 64
+ minLength: 1
+ nullable: true
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ primary:
+ description: "The default route to the Linode. Each Linode can\
+ \ have one interface set as its `primary`. Defaults to the first\
+ \ non-`vlan` type interface, if you haven't specifically set\
+ \ a `primary`.\n\n> \U0001F4D8\n>\n> The value needs to `false`\
+ \ for any interface that uses `vlan` as its `purpose`."
+ example: true
+ type: boolean
+ purpose:
+ description: 'The type of interface. This can be `public`, `vlan`,
+ or `vpc`.
+
+
+ For interfaces with a `purpose` of `public`:
+
+
+ - You can only define one `public` interface per Linode.
+
+
+ - The Linode''s default public IPv4 address is assigned to the
+ `public` interface.
+
+
+ - A Linode needs a `public` interface in the first or `eth0`
+ position to be reachable via the public internet, after it boots.
+ If no `public` interface is configured, you can only access
+ the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/),
+ or through another Linode that''s connected to the same VLAN
+ or VPC.
+
+
+ For interfaces with a `purpose` of `vlan`:
+
+
+ - The target Linode is attached to the VLAN with the specified
+ `label`.
+
+
+ - If an `ipam_address` is configured, the Linode uses this address.
+
+
+ For interfaces with a `purpose` of `vpc`:
+
+
+ - The target Linode is attached to an existing VPC subnet with
+ the specified `subnet_id`.
+
+
+ - When the interface is activated, the Linode is configured
+ to use an IP address from the range in the assigned VPC subnet.
+ See `ipv4.vpc` for more information.'
+ enum:
+ - public
+ - vlan
+ - vpc
+ example: vlan
+ type: string
+ x-linode-cli-display: 3
+ subnet_id:
+ description: "The `id` of the VPC subnet for this interface. Only\
+ \ applies to interfaces with a `purpose` of `vpc`. Returned\
+ \ as `null` if the interface has a `purpose` of `public` or\
+ \ `vlan`.\n\n> \U0001F4D8\n>\n> You need to reboot a Linode\
+ \ using the interface's configuration profile to assign the\
+ \ Linode to a VPC subnet."
+ example: 101
+ nullable: true
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured for
+ this interface. Returned as `null` for non-`vpc` type interfaces.
+ example: 111
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - purpose
+ type: object
+ x-akamai:
+ file-path: schemas/linode-config-update.yaml
+ x-example:
+ x-ref: ../examples/get-linode-config-interface-200.json
+ description: Configuration profile interface successfully updated.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Update a configuration profile interface
+ tags:
+ - Interfaces
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes config-interface-update $linodeId $configId\
+ \ $interfaceId \\\n --primary true \\\n --ipv4.vpc \"10.0.1.2\" \\\n\
+ \ --ipv4.nat_1_1 \"203.0.113.2\""
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: config-interface-update
+ x-linode-grant: read_write
+ delete:
+ description: 'Deletes a configuration profile interface from a specific configuration
+ profile, on a specific Linode.
+
+
+ - To access this operation, your user needs the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ for the Linode.
+
+
+ - A successful request triggers a `linode_config_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).
+
+
+ - You can''t delete an active configuration profile interface. First, you
+ need to shut down the associated Linode or restart it using another configuration
+ profile.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-linode-config-interface
+ operationId: delete-linode-config-interface
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-linode-config-interface-200.json
+ description: Configuration profile interface successfully deleted.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Delete a configuration profile interface
+ tags:
+ - Interfaces
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes config-interface-delete $linodeId $configId $interfaceId
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: config-interface-delete
+ x-linode-grant: read_write
+ parameters:
+ - description: The `id` of the Linode.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id.yaml
+ - description: The `id` of the Configuration Profile.
+ example: '{{configId}}'
+ in: path
+ name: configId
+ required: true
+ schema:
+ example: 521
+ type: integer
+ x-akamai:
+ file-path: parameters/config-id-profile.yaml
+ - description: The `id` of the Linode Configuration Profile Interface.
+ example: '{{interfaceId}}'
+ in: path
+ name: interfaceId
+ required: true
+ schema:
+ example: 916
+ type: integer
+ x-akamai:
+ file-path: parameters/interface-id-path.yaml
+ x-akamai:
+ file-path: paths/interface.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/configs/{configId}/interfaces/{interfaceId}
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/disks:
+ post:
+ description: "Add a new disk to an existing Linode. You can create an empty\
+ \ disk to manually configure it later. You can also target a stored `image`\
+ \ to build the disk using a pre-configured file system.\n\n- A Linode can\
+ \ have up to 50 disks.\n\n- When creating an empty disk, you need to provide\
+ \ a `label` for it. If you don't include a `label`, you need to target an\
+ \ `image` instead.\n\n- When you create a disk from an `image`, you need to\
+ \ set a `root_pass` for the disk.\n\n- The default file system for a new disk\
+ \ is `ext4`. If you're creating one from an `image`, the disk inherits the\
+ \ file system of that `image`, is unless you specify otherwise.\n\n- When\
+ \ you deploy a StackScript on a disk:\n\n - You can run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts)\
+ \ to review available StackScripts.\n\n - You need to include a compatible\
+ \ `image` when creating the disk. Run [Get a StackScript](https://techdocs.akamai.com/linode-api/reference/get-stack-script)\
+ \ to review compatible images.\n\n - You should supply SSH keys for the disk's\
+ \ root user, using the `authorized_keys` field.\n\n - You can include individual\
+ \ users via the `authorized_users` field. Before you can add a user, it needs\
+ \ an SSH key assigned to its profile. See [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key)\
+ \ for more information.\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-add-linode-disk
+ operationId: post-add-linode-disk
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: Disk object request.
+ properties:
+ authorized_keys:
+ description: __Write-only__ A list of public SSH keys that will
+ be automatically appended to the root user's `~/.ssh/authorized_keys`
+ file when deploying from an Image.
+ example:
+ - ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer
+ items:
+ type: string
+ type: array
+ writeOnly: true
+ authorized_users:
+ description: __Write-only__ A list of usernames. If the usernames
+ have associated SSH keys, the keys will be appended to the root
+ users `~/.ssh/authorized_keys` file automatically when deploying
+ from an Image.
+ example:
+ - myUser
+ - secondaryUser
+ items:
+ type: string
+ type: array
+ writeOnly: true
+ filesystem:
+ description: "The disk's format or file system. A value of `raw`\
+ \ indicates no file system, just a raw binary stream. A value\
+ \ of `swap` indicates a Linux swap area. The values `ext3` or\
+ \ `ext4` represent these Linux journaling file systems. The\
+ \ value `ext2` is the deprecated ext2 Linux file system. Finally,\
+ \ `initrd` indicates the disk is formatted as an uncompressed\
+ \ initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system\
+ \ doesn't properly support timestamps and will be removed from\
+ \ Linux support in the near future. Also, `initrd` is a legacy\
+ \ format that no longer applies to most use cases. As a best\
+ \ practice, use the other supported formats or file systems\
+ \ instead."
+ enum:
+ - raw
+ - swap
+ - ext2
+ - ext3
+ - ext4
+ - initrd
+ example: ext4
+ type: string
+ x-linode-cli-display: 5
+ image:
+ description: 'An Image ID to deploy the Linode Disk from.
+
+
+ Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images)
+ operation with authentication to view all available Images.
+ Official Linode Images start with `linode/`, while your Account''s
+ Images start with `private/`. Creating a disk from a Private
+ Image requires `read_only` or `read_write` permissions for that
+ Image. Run the [Update a user''s grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants)
+ operation to adjust permissions for an Account Image.'
+ example: linode/debian9
+ type: string
+ label:
+ description: __Filterable__ The name of the disk. This is for
+ display purposes only.
+ example: Debian 9 Disk
+ maxLength: 48
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ root_pass:
+ description: '__Write-only__ This sets the root user''s password
+ on a newly created Linode Disk when deploying from an Image.
+
+
+ - __Required__ when creating a Linode Disk from an Image, including
+ when using a StackScript.
+
+
+ - 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: aComplexP@ssword
+ format: password
+ maxLength: 128
+ minLength: 7
+ type: string
+ writeOnly: true
+ size:
+ description: '__Filterable__ The size of the Disk in MB.
+
+
+ Images require a minimum size. Run the [Get an image](https://techdocs.akamai.com/linode-api/reference/get-image)
+ operation to view its size.'
+ example: 48640
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ stackscript_data:
+ description: 'This field is required only if the StackScript being
+ deployed requires input data from the User for successful completion.
+ See [User Defined Fields (UDFs)](https://www.linode.com/docs/products/tools/stackscripts/guides/write-a-custom-script/#declare-user-defined-fields-udfs)
+ for more details.
+
+
+ This field is required to be valid JSON.
+
+
+ Total length cannot exceed 65,535 characters.'
+ example:
+ gh_username: linode
+ maxLength: 65535
+ type: object
+ stackscript_id:
+ description: A StackScript ID that will cause the referenced StackScript
+ to be run during deployment of this Linode. A compatible `image`
+ is required to use a StackScript. To get a list of available
+ StackScript and their permitted Images, run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts).
+ This field cannot be used when deploying from a Backup or a
+ Private Image.
+ example: 10079
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/disk-request.yaml
+ required:
+ - size
+ x-akamai:
+ file-path: schemas/added-post-add-linode-disk.yaml
+ x-example:
+ x-ref: ../examples/post-add-linode-disk.json
+ description: The parameters to set when creating the Disk.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ created:
+ description: __Read-only__ When this disk was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ disk_encryption:
+ default: enabled
+ description: __Read-only__ Displays if encryption is enabled on
+ this disk. This setting is based on the `disk_encryption` setting
+ of the Linode.
+ example: disabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ filesystem:
+ description: "The disk's format or file system. A value of `raw`\
+ \ indicates no file system, just a raw binary stream. A value\
+ \ of `swap` indicates a Linux swap area. The values `ext3` or\
+ \ `ext4` represent these Linux journaling file systems. The\
+ \ value `ext2` is the deprecated ext2 Linux file system. Finally,\
+ \ `initrd` indicates the disk is formatted as an uncompressed\
+ \ initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system\
+ \ doesn't properly support timestamps and will be removed from\
+ \ Linux support in the near future. Also, `initrd` is a legacy\
+ \ format that no longer applies to most use cases. As a best\
+ \ practice, use the other supported formats or file systems\
+ \ instead."
+ enum:
+ - raw
+ - swap
+ - ext2
+ - ext3
+ - ext4
+ - initrd
+ example: ext4
+ type: string
+ x-linode-cli-display: 5
+ id:
+ description: __Read-only__ This disk's ID. You need this value
+ to run other operations that interact with the disk.
+ example: 25674
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: __Filterable__ The name of the disk. This is for
+ display purposes only.
+ example: Debian 9 Disk
+ maxLength: 48
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ size:
+ description: __Filterable__ The size of the disk in MB.
+ example: 48640
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ status:
+ description: __Read-only__ The current state of the disk.
+ enum:
+ - ready
+ - not ready
+ - deleting
+ example: ready
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ not ready: red
+ ready: green
+ x-linode-cli-display: 3
+ updated:
+ description: __Read-only__ When this disk was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/disk.yaml
+ x-example:
+ x-ref: ../examples/post-add-linode-disk-200.json
+ description: Disk created.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Create a disk
+ tags:
+ - Disks
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes disk-create 123 \\\n --size 1300 \\\n --authorized_keys\
+ \ \"ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer\"\
+ \ \\\n --authorized_users \"myUser\" \\\n --authorized_users \"secondaryUser\"\
+ \ \\\n --root_pass aComplex@Password \\\n --image \"linode/debian9\"\
+ \ \\\n --stackscript_id 10079 \\\n --stackscript_data '{\"gh_username\"\
+ : \"linode\"}'"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: disk-create
+ get:
+ description: 'View Disk information for Disks associated with this Linode.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-disks
+ operationId: get-linode-disks
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ properties:
+ created:
+ description: __Read-only__ When this disk was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ disk_encryption:
+ default: enabled
+ description: __Read-only__ Displays if encryption is enabled
+ on this disk. This setting is based on the `disk_encryption`
+ setting of the Linode.
+ example: disabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ filesystem:
+ description: "The disk's format or file system. A value\
+ \ of `raw` indicates no file system, just a raw binary\
+ \ stream. A value of `swap` indicates a Linux swap area.\
+ \ The values `ext3` or `ext4` represent these Linux journaling\
+ \ file systems. The value `ext2` is the deprecated ext2\
+ \ Linux file system. Finally, `initrd` indicates the disk\
+ \ is formatted as an uncompressed initial RAM disk.\n\n\
+ > \U0001F4D8\n>\n> The `ext2` file system doesn't properly\
+ \ support timestamps and will be removed from Linux support\
+ \ in the near future. Also, `initrd` is a legacy format\
+ \ that no longer applies to most use cases. As a best\
+ \ practice, use the other supported formats or file systems\
+ \ instead."
+ enum:
+ - raw
+ - swap
+ - ext2
+ - ext3
+ - ext4
+ - initrd
+ example: ext4
+ type: string
+ x-linode-cli-display: 5
+ id:
+ description: __Read-only__ This disk's ID. You need this
+ value to run other operations that interact with the disk.
+ example: 25674
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: __Filterable__ The name of the disk. This is
+ for display purposes only.
+ example: Debian 9 Disk
+ maxLength: 48
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ size:
+ description: __Filterable__ The size of the disk in MB.
+ example: 48640
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ status:
+ description: __Read-only__ The current state of the disk.
+ enum:
+ - ready
+ - not ready
+ - deleting
+ example: ready
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ not ready: red
+ ready: green
+ x-linode-cli-display: 3
+ updated:
+ description: __Read-only__ When this disk was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/disk.yaml
+ type: array
+ page:
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-linode-disks-200.yaml
+ x-example:
+ x-ref: ../examples/get-linode-disks-200.json
+ description: Returns a paginated list of disks associated with this Linode.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: List disks
+ tags:
+ - Disks
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes disks-list 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: disks-list
+ x-linode-grant: read_only
+ parameters:
+ - description: ID of the Linode to look up.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path.yaml
+ x-akamai:
+ file-path: paths/disks.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/disks
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/disks/{diskId}:
+ get:
+ description: 'View Disk information for a Disk associated with this Linode.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-disk
+ operationId: get-linode-disk
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ created:
+ description: __Read-only__ When this disk was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ disk_encryption:
+ default: enabled
+ description: __Read-only__ Displays if encryption is enabled on
+ this disk. This setting is based on the `disk_encryption` setting
+ of the Linode.
+ example: disabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ filesystem:
+ description: "The disk's format or file system. A value of `raw`\
+ \ indicates no file system, just a raw binary stream. A value\
+ \ of `swap` indicates a Linux swap area. The values `ext3` or\
+ \ `ext4` represent these Linux journaling file systems. The\
+ \ value `ext2` is the deprecated ext2 Linux file system. Finally,\
+ \ `initrd` indicates the disk is formatted as an uncompressed\
+ \ initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system\
+ \ doesn't properly support timestamps and will be removed from\
+ \ Linux support in the near future. Also, `initrd` is a legacy\
+ \ format that no longer applies to most use cases. As a best\
+ \ practice, use the other supported formats or file systems\
+ \ instead."
+ enum:
+ - raw
+ - swap
+ - ext2
+ - ext3
+ - ext4
+ - initrd
+ example: ext4
+ type: string
+ x-linode-cli-display: 5
+ id:
+ description: __Read-only__ This disk's ID. You need this value
+ to run other operations that interact with the disk.
+ example: 25674
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: __Filterable__ The name of the disk. This is for
+ display purposes only.
+ example: Debian 9 Disk
+ maxLength: 48
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ size:
+ description: __Filterable__ The size of the disk in MB.
+ example: 48640
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ status:
+ description: __Read-only__ The current state of the disk.
+ enum:
+ - ready
+ - not ready
+ - deleting
+ example: ready
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ not ready: red
+ ready: green
+ x-linode-cli-display: 3
+ updated:
+ description: __Read-only__ When this disk was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/disk.yaml
+ x-example:
+ x-ref: ../examples/get-linode-disk-200.json
+ description: Returns a single Disk object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: Get a disk
+ tags:
+ - Disks
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes disk-view 123 25674
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: disk-view
+ x-linode-grant: read_only
+ put:
+ description: 'Updates a Disk that you have permission to `read_write`.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-disk
+ operationId: put-disk
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ label:
+ description: __Filterable__ The name of the disk. This is for display
+ purposes only.
+ example: '{{label}}'
+ maxLength: 48
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-disk.yaml
+ x-example:
+ x-ref: ../examples/put-disk.json
+ description: Updates the parameters of a single Disk.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ created:
+ description: __Read-only__ When this disk was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ disk_encryption:
+ default: enabled
+ description: __Read-only__ Displays if encryption is enabled on
+ this disk. This setting is based on the `disk_encryption` setting
+ of the Linode.
+ example: disabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ filesystem:
+ description: "The disk's format or file system. A value of `raw`\
+ \ indicates no file system, just a raw binary stream. A value\
+ \ of `swap` indicates a Linux swap area. The values `ext3` or\
+ \ `ext4` represent these Linux journaling file systems. The\
+ \ value `ext2` is the deprecated ext2 Linux file system. Finally,\
+ \ `initrd` indicates the disk is formatted as an uncompressed\
+ \ initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system\
+ \ doesn't properly support timestamps and will be removed from\
+ \ Linux support in the near future. Also, `initrd` is a legacy\
+ \ format that no longer applies to most use cases. As a best\
+ \ practice, use the other supported formats or file systems\
+ \ instead."
+ enum:
+ - raw
+ - swap
+ - ext2
+ - ext3
+ - ext4
+ - initrd
+ example: ext4
+ type: string
+ x-linode-cli-display: 5
+ id:
+ description: __Read-only__ This disk's ID. You need this value
+ to run other operations that interact with the disk.
+ example: 25674
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: __Filterable__ The name of the disk. This is for
+ display purposes only.
+ example: Debian 9 Disk
+ maxLength: 48
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ size:
+ description: __Filterable__ The size of the disk in MB.
+ example: 48640
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ status:
+ description: __Read-only__ The current state of the disk.
+ enum:
+ - ready
+ - not ready
+ - deleting
+ example: ready
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ not ready: red
+ ready: green
+ x-linode-cli-display: 3
+ updated:
+ description: __Read-only__ When this disk was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/disk.yaml
+ x-example:
+ x-ref: ../examples/get-linode-disk-200.json
+ description: The updated Disk.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Update a disk
+ tags:
+ - Disks
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes disk-update 123 25674 \\\n --label \"Debian\
+ \ 9 Disk\""
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: disk-update
+ x-linode-grant: read_write
+ delete:
+ description: 'Deletes a Disk you have permission to `read_write`.
+
+
+ __Deleting a Disk is a destructive action and cannot be undone.__
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-disk
+ operationId: delete-disk
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-disk-200.json
+ description: Delete successful.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Delete a disk
+ tags:
+ - Disks
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes disk-delete 123 24674
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: disk-delete
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Linode to look up.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path.yaml
+ - description: ID of the Disk to look up.
+ example: '{{diskId}}'
+ in: path
+ name: diskId
+ required: true
+ schema:
+ example: 124458
+ type: integer
+ x-akamai:
+ file-path: parameters/disk-id-path-7d2fdd58.yaml
+ x-akamai:
+ file-path: paths/disk.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/disks/{diskId}
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/disks/{diskId}/clone:
+ post:
+ description: 'Copies a disk, byte-for-byte, into a new disk on the same Linode.
+ The operation fails if the target doesn''t have enough storage space. A Linode
+ can have up to 50 disks.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-clone-linode-disk
+ operationId: post-clone-linode-disk
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ created:
+ description: __Read-only__ When this disk was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ disk_encryption:
+ default: enabled
+ description: __Read-only__ Displays if encryption is enabled on
+ this disk. This setting is based on the `disk_encryption` setting
+ of the Linode.
+ example: disabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ filesystem:
+ description: "The disk's format or file system. A value of `raw`\
+ \ indicates no file system, just a raw binary stream. A value\
+ \ of `swap` indicates a Linux swap area. The values `ext3` or\
+ \ `ext4` represent these Linux journaling file systems. The\
+ \ value `ext2` is the deprecated ext2 Linux file system. Finally,\
+ \ `initrd` indicates the disk is formatted as an uncompressed\
+ \ initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system\
+ \ doesn't properly support timestamps and will be removed from\
+ \ Linux support in the near future. Also, `initrd` is a legacy\
+ \ format that no longer applies to most use cases. As a best\
+ \ practice, use the other supported formats or file systems\
+ \ instead."
+ enum:
+ - raw
+ - swap
+ - ext2
+ - ext3
+ - ext4
+ - initrd
+ example: ext4
+ type: string
+ x-linode-cli-display: 5
+ id:
+ description: __Read-only__ This disk's ID. You need this value
+ to run other operations that interact with the disk.
+ example: 25674
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: __Filterable__ The name of the disk. This is for
+ display purposes only.
+ example: Debian 9 Disk
+ maxLength: 48
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ size:
+ description: __Filterable__ The size of the disk in MB.
+ example: 48640
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ status:
+ description: __Read-only__ The current state of the disk.
+ enum:
+ - ready
+ - not ready
+ - deleting
+ example: ready
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ not ready: red
+ ready: green
+ x-linode-cli-display: 3
+ updated:
+ description: __Read-only__ When this disk was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/disk.yaml
+ x-example:
+ x-ref: ../examples/post-clone-linode-disk-200.json
+ description: Disk clone initiated.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Clone a disk
+ tags:
+ - Disks
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes disk-clone
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: disk-clone
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Linode to look up.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path.yaml
+ - description: ID of the Disk to clone.
+ example: '{{diskId}}'
+ in: path
+ name: diskId
+ required: true
+ schema:
+ example: 124458
+ type: integer
+ x-akamai:
+ file-path: parameters/disk-id-path-dee05ba9.yaml
+ x-akamai:
+ file-path: paths/disk-clone.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/disks/{diskId}/clone
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/disks/{diskId}/password:
+ post:
+ description: 'Resets the password of a Disk you have permission to `read_write`.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-reset-disk-password
+ operationId: post-reset-disk-password
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ password:
+ 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: '{{password}}'
+ type: string
+ required:
+ - password
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-reset-disk-password.yaml
+ x-example:
+ x-ref: ../examples/post-reset-disk-password.json
+ description: The new password.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-reset-disk-password-200.json
+ description: Returns a single Disk object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Reset a disk root password
+ tags:
+ - Disks
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes disk-reset-password \\\n 123 25674 \\\n --password\
+ \ aComplex@Password"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: disk-reset-password
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Linode to look up.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path.yaml
+ - description: ID of the Disk to look up.
+ example: '{{diskId}}'
+ in: path
+ name: diskId
+ required: true
+ schema:
+ example: 124458
+ type: integer
+ x-akamai:
+ file-path: parameters/disk-id-path.yaml
+ x-akamai:
+ file-path: paths/disk-password.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/disks/{diskId}/password
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/disks/{diskId}/resize:
+ post:
+ 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.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-resize-disk
+ operationId: post-resize-disk
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ size:
+ description: The desired size, in MB, of the disk.
+ example: '{{size}}'
+ minimum: 1
+ type: integer
+ required:
+ - size
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-resize-disk.yaml
+ x-example:
+ x-ref: ../examples/post-resize-disk.json
+ description: The new size of the Disk.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-resize-disk-200.json
+ description: Resize started.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Resize a disk
+ tags:
+ - Disks
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes disk-resize 123 25674 \\\n --size 2048"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: disk-resize
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Linode to look up.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path.yaml
+ - description: ID of the Disk to look up.
+ example: '{{diskId}}'
+ in: path
+ name: diskId
+ required: true
+ schema:
+ example: 124458
+ type: integer
+ x-akamai:
+ file-path: parameters/disk-id-path.yaml
+ x-akamai:
+ file-path: paths/disk-resize.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/disks/{diskId}/resize
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/firewalls:
+ get:
+ description: 'View Firewall information for Firewalls assigned to this Linode.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-firewalls
+ operationId: get-linode-firewalls
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: A resource that controls incoming and outgoing
+ network traffic to a compute service. Only one enabled Firewall
+ can be attached to a particular service at any given time.
+ [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device)
+ to assign a Firewall to a service. Currently, Firewalls can
+ assigned to Linode compute instances and NodeBalancers.
+ properties:
+ created:
+ description: __Filterable__, __Read-only__ When this Firewall
+ was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ id:
+ description: __Filterable__, __Read-only__ The Firewall's
+ unique ID.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: "__Filterable__ The Firewall's label, for display\
+ \ purposes only.\n\nFirewall labels have the following\
+ \ constraints:\n\n - Must begin and end with an alphanumeric\
+ \ character.\n - May only consist of alphanumeric characters,\
+ \ hyphens (`-`), underscores (`_`) or periods (`.`).\n\
+ \ - Cannot have two hyphens (`--`), underscores (`__`)\
+ \ or periods (`..`) in a row.\n - Must be between 3 and\
+ \ 32 characters.\n - Must be unique."
+ example: firewall123
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ rules:
+ additionalProperties: false
+ description: 'The inbound and outbound access rules to apply
+ to the Firewall.
+
+
+ A Firewall may have up to 25 rules across its inbound
+ and outbound rulesets.
+
+
+ Multiple rules are applied in order. If two rules conflict,
+ the first rule takes precedence. For example, if the first
+ rule accepts inbound traffic from an address, and the
+ second rule drops inbound traffic the same address, the
+ first rule applies and inbound traffic from that address
+ is accepted.'
+ properties:
+ fingerprint:
+ description: __Read-only__ The fingerprint is a 32-bit
+ hash. It represents the firewall rules as an 8 character
+ hex string. You can use `fingerprint` to compare rule
+ versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: The inbound rules for the firewall, as
+ a JSON array.
+ items:
+ additionalProperties: false
+ description: One of a Firewall's inbound or outbound
+ access rules. The `ports` property can be used to
+ allow traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: Controls whether traffic is accepted
+ or dropped by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule,
+ or the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: 'The IPv4 or IPv6 addresses affected
+ by this rule. A rule can have up to 255 total
+ addresses or networks listed across its `ipv4`
+ and `ipv6` arrays. A network and a single IP
+ are treated as equivalent when accounting for
+ this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.'
+ properties:
+ ipv4:
+ description: 'A list of IPv4 addresses or
+ networks. Addresses must be in IP/mask format.
+ Must not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.'
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: 'A list of IPv6 addresses or
+ networks. Addresses must be in IP/mask format
+ and must not include zone_id notation as
+ described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this rule.'
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: Used to describe this rule. For display
+ purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: Used to identify this rule. For display
+ purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: 'A string representing the port or
+ ports affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.'
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: The type of network traffic affected
+ by this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: The default behavior for inbound traffic.
+ This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: The outbound rules for the firewall, as
+ a JSON array.
+ items:
+ additionalProperties: false
+ description: One of a Firewall's inbound or outbound
+ access rules. The `ports` property can be used to
+ allow traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: Controls whether traffic is accepted
+ or dropped by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule,
+ or the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: 'The IPv4 or IPv6 addresses affected
+ by this rule. A rule can have up to 255 total
+ addresses or networks listed across its `ipv4`
+ and `ipv6` arrays. A network and a single IP
+ are treated as equivalent when accounting for
+ this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.'
+ properties:
+ ipv4:
+ description: 'A list of IPv4 addresses or
+ networks. Addresses must be in IP/mask format.
+ Must not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.'
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: 'A list of IPv6 addresses or
+ networks. Addresses must be in IP/mask format
+ and must not include zone_id notation as
+ described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this rule.'
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: Used to describe this rule. For display
+ purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: Used to identify this rule. For display
+ purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: 'A string representing the port or
+ ports affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.'
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: The type of network traffic affected
+ by this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: The default behavior for outbound traffic.
+ This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: __Read-only__ The firewall's rule version.
+ The first version is `1`. The version number is incremented
+ when the firewall's rules change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ status:
+ description: "__Read-only__ The status of this Firewall.\n\
+ \n - When a Firewall is first created its status is `enabled`.\n\
+ \ - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall)\
+ \ operation to set a Firewall's status to `enabled` or\
+ \ `disabled`.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall)\
+ \ operation to delete a Firewall."
+ enum:
+ - enabled
+ - disabled
+ - deleted
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ tags:
+ description: __Filterable__ An array of tags applied to
+ this object. Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Filterable__, __Read-only__ When this Firewall
+ was last updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall.yaml
+ type: array
+ page:
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-linode-firewalls-200.yaml
+ x-example:
+ x-ref: ../examples/get-linode-firewalls-200.json
+ description: Returns a paginated list of Firewalls assigned to this Linode.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: List a Linode's firewalls
+ tags:
+ - Firewalls
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes firewalls-list 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: firewalls-list
+ x-linode-grant: read_only
+ put:
+ description: 'Replace the current list of assigned firewalls with a new list,
+ or provide an empty list to remove all firewalls from this Linode.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-linode-firewalls
+ operationId: put-linode-firewalls
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Replace or remove firewalls IDs assigned to a Linode or
+ NodeBalancer.
+ properties:
+ firewall_ids:
+ description: A complete list of firewall IDs to assign to this Linode
+ or NodeBalancer. This operation replaces any existing assignments.
+ To remove all firewalls, pass an empty list, `[]`.
+ example: 1234
+ items:
+ type: integer
+ minItems: 0
+ type: array
+ required:
+ - firewall_ids
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-ids-request.yaml
+ x-example:
+ x-ref: ../examples/get-linode-firewalls-200.json
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: A resource that controls incoming and outgoing
+ network traffic to a compute service. Only one enabled Firewall
+ can be attached to a particular service at any given time.
+ [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device)
+ to assign a Firewall to a service. Currently, Firewalls can
+ assigned to Linode compute instances and NodeBalancers.
+ properties:
+ created:
+ description: __Filterable__, __Read-only__ When this Firewall
+ was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ id:
+ description: __Filterable__, __Read-only__ The Firewall's
+ unique ID.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: "__Filterable__ The Firewall's label, for display\
+ \ purposes only.\n\nFirewall labels have the following\
+ \ constraints:\n\n - Must begin and end with an alphanumeric\
+ \ character.\n - May only consist of alphanumeric characters,\
+ \ hyphens (`-`), underscores (`_`) or periods (`.`).\n\
+ \ - Cannot have two hyphens (`--`), underscores (`__`)\
+ \ or periods (`..`) in a row.\n - Must be between 3 and\
+ \ 32 characters.\n - Must be unique."
+ example: firewall123
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ rules:
+ additionalProperties: false
+ description: 'The inbound and outbound access rules to apply
+ to the Firewall.
+
+
+ A Firewall may have up to 25 rules across its inbound
+ and outbound rulesets.
+
+
+ Multiple rules are applied in order. If two rules conflict,
+ the first rule takes precedence. For example, if the first
+ rule accepts inbound traffic from an address, and the
+ second rule drops inbound traffic the same address, the
+ first rule applies and inbound traffic from that address
+ is accepted.'
+ properties:
+ fingerprint:
+ description: __Read-only__ The fingerprint is a 32-bit
+ hash. It represents the firewall rules as an 8 character
+ hex string. You can use `fingerprint` to compare rule
+ versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: The inbound rules for the firewall, as
+ a JSON array.
+ items:
+ additionalProperties: false
+ description: One of a Firewall's inbound or outbound
+ access rules. The `ports` property can be used to
+ allow traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: Controls whether traffic is accepted
+ or dropped by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule,
+ or the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: 'The IPv4 or IPv6 addresses affected
+ by this rule. A rule can have up to 255 total
+ addresses or networks listed across its `ipv4`
+ and `ipv6` arrays. A network and a single IP
+ are treated as equivalent when accounting for
+ this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.'
+ properties:
+ ipv4:
+ description: 'A list of IPv4 addresses or
+ networks. Addresses must be in IP/mask format.
+ Must not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.'
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: 'A list of IPv6 addresses or
+ networks. Addresses must be in IP/mask format
+ and must not include zone_id notation as
+ described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this rule.'
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: Used to describe this rule. For display
+ purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: Used to identify this rule. For display
+ purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: 'A string representing the port or
+ ports affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.'
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: The type of network traffic affected
+ by this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: The default behavior for inbound traffic.
+ This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: The outbound rules for the firewall, as
+ a JSON array.
+ items:
+ additionalProperties: false
+ description: One of a Firewall's inbound or outbound
+ access rules. The `ports` property can be used to
+ allow traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: Controls whether traffic is accepted
+ or dropped by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule,
+ or the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: 'The IPv4 or IPv6 addresses affected
+ by this rule. A rule can have up to 255 total
+ addresses or networks listed across its `ipv4`
+ and `ipv6` arrays. A network and a single IP
+ are treated as equivalent when accounting for
+ this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.'
+ properties:
+ ipv4:
+ description: 'A list of IPv4 addresses or
+ networks. Addresses must be in IP/mask format.
+ Must not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.'
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: 'A list of IPv6 addresses or
+ networks. Addresses must be in IP/mask format
+ and must not include zone_id notation as
+ described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this rule.'
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: Used to describe this rule. For display
+ purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: Used to identify this rule. For display
+ purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: 'A string representing the port or
+ ports affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.'
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: The type of network traffic affected
+ by this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: The default behavior for outbound traffic.
+ This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: __Read-only__ The firewall's rule version.
+ The first version is `1`. The version number is incremented
+ when the firewall's rules change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ status:
+ description: "__Read-only__ The status of this Firewall.\n\
+ \n - When a Firewall is first created its status is `enabled`.\n\
+ \ - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall)\
+ \ operation to set a Firewall's status to `enabled` or\
+ \ `disabled`.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall)\
+ \ operation to delete a Firewall."
+ enum:
+ - enabled
+ - disabled
+ - deleted
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ tags:
+ description: __Filterable__ An array of tags applied to
+ this object. Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Filterable__, __Read-only__ When this Firewall
+ was last updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall.yaml
+ type: array
+ page:
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-linode-firewalls-200.yaml
+ x-example:
+ x-ref: ../examples/get-linode-firewalls-200.json
+ description: Returns a paginated list of Firewalls assigned to this Linode.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Update a Linode's firewalls
+ tags:
+ - Firewalls
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes firewalls-update 123 \\\n --firewall_ids '[1234]'"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: firewalls-update
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Linode.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-177e235a.yaml
+ x-akamai:
+ file-path: paths/linode-firewalls.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/firewalls
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/firewalls/apply:
+ post:
+ description: 'Reapply assigned firewalls to a Linode in case they were not applied
+ successfully.
+
+
+ The `firewall_apply` event indicates if the firewalls were applied.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-apply-firewalls
+ operationId: post-apply-firewalls
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-apply-firewalls-linode-instance-200.json
+ description: Applying firewalls started.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Apply a Linode's firewalls
+ tags:
+ - Firewalls
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes apply-firewalls 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ parameters:
+ - description: The ID of the Linode.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-820d9f86.yaml
+ x-akamai:
+ file-path: paths/apply-firewalls.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/firewalls/apply
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/interfaces:
+ post:
+ description: "__Beta__ Creates an interface for the Linode. This interface links\
+ \ to the Linode, rather than to a configuration profile. You can create, delete,\
+ \ or update interfaces when the Linode is either powered off or in the process\
+ \ of being created.\n\nFirewalls are applied to the Linode interface, not\
+ \ directly to the Linode itself. You can add, delete, or update these firewalls\
+ \ at any time.\n\nThis operation requires the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)\
+ \ for the Linode.\n\nA successful request triggers an `interface_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\
+ \nYou need to set one interface type: `vpc`, `public`, or `vlan`. Omit the\
+ \ others or set them to `null`.\n\nA Linode can have up to three interfaces:\n\
+ \n- Only one `public` interface is allowed on a Linode.\n\n- Multiple `vlan`\
+ \ interfaces are allowed, provided that they belong to distinct VLANs, which\
+ \ have unique `vlan_labels`.\n\n- One `vpc` interface is allowed.\n\nThe Linode\
+ \ must be located in a region that supports Linode interfaces. Run [Get a\
+ \ region](https://techdocs.akamai.com/linode-api/reference/get-region) to\
+ \ see if interfaces are supported in that region. __CLI: Public interface__.\n\
+ \n ```\n linode-cli linodes interface-add $linodeId \\\n --firewall_id\
+ \ 123 \\\n --default_route.ipv4 true \\\n --default_route.ipv6 true \\\n\
+ \ --public.ipv4.addresses '[{\"address\": \"192.0.2.141\", \"primary\": true},\
+ \ {\"address\": \"auto\", \"primary\": false}]' \\\n --public.ipv6.ranges\
+ \ '[{\"range\": \"2001:0db8::1/64\"}, {\"range\": \"/64\"}]'\n ```\n\n\
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n- __CLI: VLAN interface__.\n\n ```\n linode-cli linodes interface-add\
+ \ $linodeId \\\n --vlan.vlan_label my-vlan \\\n --vlan.ipam_address 192.168.2.2/24\n\
+ \ ```\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n- __CLI: VPC interface__.\n\n ```\n linode-cli linodes interface-add\
+ \ $linodeId \\\n --firewall_id 123 \\\n --default_route.ipv4 true \\\n \
+ \ --vpc.subnet_id 321 \\\n --vpc.ipv4.addresses '[{\"address\": \"10.0.0.1\"\
+ , \"primary\": true, \"nat_1_1_address\": \"auto\"}, {\"address\": \"auto\"\
+ , \"primary\": false, \"nat_1_1_address\": null}]' \\\n --vpc.ipv4.ranges\
+ \ '[{\"range\": \"/28\"}, {\"range\": \"10.11.12.0/24\"}]'\n ```\n\n[Learn\
+ \ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-linode-interface
+ operationId: post-linode-interface
+ requestBody:
+ content:
+ application/json:
+ schema:
+ description: 'Defines Linode interfaces. You can configure interfaces
+ for one of the following types: `vpc`, `public`, or `vlan`. Any other
+ type must either be omitted or set to `null`.'
+ oneOf:
+ - additionalProperties: false
+ description: Defines a Linode public interface. Any other type must
+ either be omitted or set to `null`.
+ properties:
+ default_route:
+ additionalProperties: false
+ description: Indicates if the interface serves as the default
+ route when multiple interfaces are eligible for this role. A
+ public interface can have both an IPv4 `default_route` and an
+ IPv6 `default_route`, provided it has at least one IP address
+ of the corresponding type.
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: If set to `true`, the interface is used for the
+ IPv4 `default_route`. Only one interface per Linode can
+ be set as the IPv4 default route.
+ example: true
+ nullable: true
+ type: boolean
+ ipv6:
+ additionalProperties: false
+ description: If set to `true`, the interface is used for the
+ IPv6 `default_route`. Only one interface per Linode can
+ have the IPv6 default route.
+ example: true
+ nullable: true
+ type: boolean
+ type: object
+ firewall_id:
+ additionalProperties: false
+ description: The enabled firewall to secure a VPC or public interface.
+ Not allowed for VLAN interfaces. If a `firewall_id` is not provided
+ for a VPC or a public interface, then its [default interface
+ firewall](https://techdocs.akamai.com/linode-api/reference/get-linode-interface-firewalls)
+ is used. If a default firewall is not available, and `null`
+ is not specified, the request fails. Setting the `firewall_id`
+ as `null` indicates that no firewall device will be attached
+ to the interface.
+ example:
+ - 123
+ - null
+ nullable: true
+ type: integer
+ public:
+ additionalProperties: false
+ description: Public interface settings. A Linode can have only
+ one public interface. A public interface can have both IPv4
+ and IPv6 configurations.
+ nullable: true
+ properties:
+ ipv4:
+ description: IPv4 address settings for this public interface.
+ If omitted, a public IPv4 address is automatically allocated.
+ properties:
+ addresses:
+ description: List of IPv4 addresses to assign to this
+ interface. Setting any to `auto` allocates a public
+ IPv4 address. To create a public interface that uses
+ IPv6 and no IPv4, set the IPv4 address as an empty list
+ `[]`.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ anyOf:
+ - example: 192.0.2.141
+ format: ip
+ minLength: 1
+ title: User assigned IPv4
+ type: string
+ - enum:
+ - auto
+ title: Automatically assigned IPv4
+ type: string
+ - example: []
+ title: No IPv4 [empty list]
+ type: string
+ default: auto
+ description: "The interface's public IPv4 address.\
+ \ You can specify which public IPv4 address to\
+ \ configure for the interface. Setting this to\
+ \ `auto` automatically allocates a public address.\
+ \ To create a public interface that uses IPv6\
+ \ and no IPv4, set the IPv4 address as an empty\
+ \ list `[]`. If the address is a reserved or automatically\
+ \ assigned, it needs to be reserved or already\
+ \ assigned to a single Linode, and it can\u2019\
+ t be assigned to any other interface."
+ type: string
+ primary:
+ default: false
+ description: 'The IPv4 primary address configures
+ the source address for routes within the Linode
+ on the corresponding network interface.
+
+ - Don''t set this to `false` if there''s only
+ one address in the `addresses` array.
+
+ - If more than one address is provided, primary
+ can be set to `true` for one address.
+
+ - If only one address is present in the `addresses`
+ array, this address is automatically set as the
+ primary address.'
+ example: true
+ type: boolean
+ type: object
+ type: array
+ type: object
+ ipv6:
+ description: IPv6 address settings for the public interface.
+ properties:
+ ranges:
+ additionalProperties: false
+ description: IPv6 address ranges to assign to this interface.
+ If omitted, no ranges are assigned.
+ items:
+ properties:
+ range:
+ default: null
+ description: 'Your assigned IPv6 range in CIDR notation
+ (`2001:0db8::1/64`) or prefix (`/64`).
+
+ - The prefix of `/64` or `/56` block of IPv6 addresses.
+
+ - If provided in CIDR notation, the prefix must
+ be within the assigned ranges for the Linode.'
+ example:
+ - 2001:0a0a::1/64
+ - /64
+ type: string
+ required:
+ - range
+ type: object
+ type: array
+ type: object
+ type: object
+ title: Public interface
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-linode-interface-public.yaml
+ - additionalProperties: false
+ description: Defines a Linode VLAN interface. Any other type must
+ either be omitted or set to `null`.
+ properties:
+ vlan:
+ additionalProperties: false
+ description: VLAN interface settings. A Linode can have up to
+ three VLAN interfaces, with a unique `vlan_label` for each.
+ nullable: true
+ properties:
+ ipam_address:
+ description: This VLAN interface's private IPv4 address in
+ classless inter-domain routing (CIDR) notation.
+ example: 10.0.0.1/24
+ format: ip/netmask
+ type: string
+ x-linode-cli-display: 4
+ vlan_label:
+ description: The VLAN's unique label. VLAN interfaces on the
+ same Linode must have a unique `vlan_label`.
+ example: my-vlan
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ title: VLAN interface
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-linode-interface-vlan.yaml
+ - additionalProperties: false
+ description: Defines a Linode VPC interface. Any other type must either
+ be omitted or set to `null`.
+ properties:
+ default_route:
+ additionalProperties: false
+ description: Indicates if the interface is used as the default
+ route when multiple interfaces are eligible for this role. A
+ VPC interface can have an IPv4 `default_route`.
+ properties:
+ ipv4:
+ description: If set to `true`, the interface is used for the
+ IPv4 `default_route`. Only one interface per Linode can
+ be set as the IPv4 default route.
+ example: true
+ nullable: true
+ type: boolean
+ type: object
+ firewall_id:
+ additionalProperties: false
+ description: The enabled firewall to secure a VPC or public interface.
+ Not allowed for VLAN interfaces. If a `firewall_id` is not provided
+ for a VPC or a public interface, then its default interface
+ firewall is used. If a default firewall is not available, and
+ `null` is not specified, the request fails. Setting the `firewall_id`
+ as `null` indicates that no firewall device will be attached
+ to the interface.
+ example:
+ - 123
+ - null
+ nullable: true
+ type: integer
+ vpc:
+ additionalProperties: false
+ description: VPC interface settings. A Linode can have one VPC
+ interface. The maximum number of interfaces allowed on a Linode
+ is three.
+ nullable: true
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: Interfaces can be configured with IPv4 addresses
+ or ranges.
+ properties:
+ addresses:
+ description: IPv4 address settings for this VPC interface.
+ items:
+ properties:
+ address:
+ anyOf:
+ - example: 10.0.0.1
+ format: ip
+ minLength: 1
+ title: User assigned IPv4 from the VPC subnet
+ type: string
+ - enum:
+ - auto
+ title: Automatically assigned IPv4
+ type: string
+ default: auto
+ description: Specifies which IPv4 address to use
+ in the VPC subnet. You can specify which VPC Ipv4
+ address in the subnet to configure for the interface.
+ You can't use an IPv4 address taken from another
+ Linode or interface, or the first two or last
+ two addresses in the VPC subnet. When `address`
+ is set to `auto`, an IP address from the subnet
+ is automatically assigned.
+ type: string
+ nat_1_1_address:
+ anyOf:
+ - example: 203.0.113.2
+ format: ip
+ minLength: 1
+ title: User assigned public IPv4
+ type: string
+ - enum:
+ - auto
+ title: Automatically assigned public IPv4
+ type: string
+ default: null
+ description: 'The 1:1 NAT IPv4 address used to associate
+ a public IPv4 address with the interface''s VPC
+ subnet IPv4 address.
+
+ - You can set this to a specific public IPv4 address
+ that''s available on the Linode.
+
+ - If set to `auto`, a public IPv4 address is automatically
+ selected.
+
+ - If a public IPv4 address or `auto` is specified,
+ primary must be set to `true`.
+
+ - The address can''t be used on another Linode.
+
+ - If the address is a reserved or an automatically
+ assigned IP, the IP must be reserved or already
+ assigned to a single Linode, and not assigned
+ to an interface.
+
+ - If this property is omitted or set to `null`,
+ no 1:1 NAT configuration will be applied to the
+ VPC interface.'
+ nullable: true
+ type: string
+ primary:
+ default: false
+ description: 'The IPv4 primary address is used to
+ configure the source address for routes within
+ the Linode on the corresponding network interface.
+
+ Should not be set to `false` if there is only
+ one address present in the `addresses` array.
+
+ If more than one address is provided, primary
+ must be set to `true` for one address.
+
+ If only one address is present in the `addresses`
+ array, this address is automatically set as the
+ primary address.'
+ example: true
+ nullable: true
+ type: boolean
+ type: object
+ type: array
+ ranges:
+ description: VPC IPv4 ranges.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ default: null
+ description: 'CIDR notation of a range (`1.2.3.4/24`)
+ or prefix only (`/24`).
+
+ - When only the prefix is provided, then an available
+ range of that size within the VPC''s subnet is
+ automatically selected.
+
+ - If specified as CIDR notation, it must belong
+ to the VPC subnet. All addresses in the range
+ must not be taken by any other Linode or interfaces
+ in the VPC subnet and must not include any of
+ the first two or last two addresses of the VPC
+ subnet.'
+ example:
+ - 192.168.100.100/28
+ - 192.168.100.110/28
+ - /28
+ - 10.11.12.0/24
+ - auto
+ nullable: true
+ type: string
+ required:
+ - address
+ type: object
+ type: array
+ type: object
+ subnet_id:
+ description: "The VPC subnet identifier for this interface.\
+ \ Your subnet\u2019s VPC must be in the same data center\
+ \ (region) as the Linode."
+ example: 321
+ type: integer
+ required:
+ - subnet_id
+ type: object
+ title: VPC interface
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-linode-interface-vpc.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-linode-interface.yaml
+ x-example:
+ x-ref: ../examples/linode-interface.json
+ description: Create an interface for an existing Linode.
+ responses:
+ '200':
+ content:
+ application/json:
+ examples:
+ ex-public:
+ summary: Public interface
+ value:
+ created: '2025-01-01T00:01:01'
+ default_route:
+ ipv4: true
+ ipv6: true
+ id: 1234
+ mac_address: 22:00:AB:CD:EF:01
+ public:
+ ipv4:
+ addresses:
+ - address: 172.30.0.50
+ primary: true
+ shared:
+ - address: 172.30.0.51
+ linode_id: 12345
+ ipv6:
+ ranges:
+ - range: 2600:3c09:e001:59::/64
+ route_target: 2600:3c09::ff:feab:cdef
+ - range: 2600:3c09:e001:5a::/64
+ route_target: 2600:3c09::ff:feab:cdef
+ shared:
+ - range: 2600:3c09:e001:2a::/64
+ route_target: null
+ slaac:
+ - address: 2600:3c09::ff:feab:cdef
+ prefix: 64
+ updated: '2025-01-01T00:01:01'
+ version: 1
+ vlan: null
+ vpc: null
+ ex-vlan:
+ summary: VLAN interface
+ value:
+ created: '2025-01-01T00:01:01'
+ default_route: {}
+ id: 1234
+ mac_address: 22:00:AB:CD:EF:01
+ public: null
+ updated: '2025-01-01T00:01:01'
+ version: 1
+ vlan:
+ ipam_address: 10.0.0.1/24
+ vlan_label: my-vlan
+ vpc: null
+ ex-vpc:
+ summary: VPC interface
+ value:
+ created: '2025-01-01T00:01:01'
+ default_route:
+ ipv4: true
+ id: 1234
+ mac_address: 22:00:AB:CD:EF:01
+ public: null
+ updated: '2025-01-01T00:02:01'
+ version: 1
+ vlan: null
+ vpc:
+ ipv4:
+ addresses:
+ - address: 192.168.22.3
+ primary: true
+ ranges:
+ - range: 192.168.22.16/28
+ - range: 192.168.22.32/28
+ subnet_id: 1234
+ vpc_id: 1234
+ schema:
+ description: 'One of the following interface types: VPC, public, or
+ VLAN.'
+ oneOf:
+ - additionalProperties: false
+ description: A public interface configuration defines the properties
+ and settings for a specific public interface in the Linode network.
+ properties:
+ created:
+ description: When the interface was created.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ default_route:
+ additionalProperties: false
+ description: Indicates if the interface is used as a default
+ route.
+ nullable: true
+ properties:
+ ipv4:
+ default: false
+ description: Indicates if the interface is used for the
+ IPv4 default route. Only one interface per Linode can
+ have the IPv4 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ ipv6:
+ default: false
+ description: Indicates if the interface is used for the
+ IPv6 default route. Only one interface per Linode can
+ have the IPv6 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ type: object
+ id:
+ description: __Read-only__ The unique ID for this interface.
+ For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces),
+ a unique `id` is not generated for the interface and its value
+ is set to 0.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ mac_address:
+ description: "A 48-bit MAC address used to identify the Linode\u2019\
+ s interface. A public interface's `mac_address` does not change,\
+ \ even if the public interface is deleted and then recreated."
+ example: 22:00:AB:CD:EF:01
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ public:
+ additionalProperties: false
+ description: Public interface type.
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: The interface's public IPv4 `addresses`.
+ properties:
+ addresses:
+ description: The public IPv4 addresses and primary settings
+ for this public interface.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: The public IPv4 address assigned
+ to this interface.
+ example: 172.232.100.100
+ type: string
+ x-linode-cli-display: 8
+ primary:
+ description: Indicates if the public IPv4 address
+ serves as the source address for traffic routing
+ within the Linode and other corresponding network
+ interfaces and services.
+ example: true
+ type: boolean
+ x-linode-cli-display: 9
+ type: object
+ type: array
+ shared:
+ description: The IPv4 address assigned to this Linode
+ interface, which is also shared with another Linode.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: Shared IPv4 address.
+ example: 172.222.33.4
+ type: string
+ x-linode-cli-display: 10
+ linode_id:
+ description: The ID of the Linode this address
+ currently belongs to. For IPv4 addresses, by
+ default this is the Linode this address was
+ assigned when created.
+ example: 12345
+ type: string
+ x-linode-cli-display: 11
+ type: object
+ type: array
+ type: object
+ ipv6:
+ additionalProperties: false
+ description: The interface's public IPv6 configuration.
+ properties:
+ ranges:
+ description: List of IPv6 ranges assigned to this interface.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ description: IPv6 range in CIDR notation (`2600:0db8::1/64`)
+ or prefix-only (`/64`).
+ example: 2600:3c09:e001:59::/64
+ type: string
+ x-linode-cli-display: 16
+ route_target:
+ description: The public IPv6 address that the
+ `range` is routed to.
+ example: 2600:3c09::ff:feab:cdef
+ type: string
+ x-linode-cli-display: 17
+ type: object
+ type: array
+ shared:
+ description: The IPv6 address assigned to this Linode
+ interface, which is also shared with another Linode.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ description: The IPv6 address range.
+ example: 2600:3c09:e001:2a::/64
+ type: string
+ x-linode-cli-display: 14
+ route_target:
+ description: The public IPv6 address that the
+ `range` is routed to.
+ example: null
+ type: string
+ x-linode-cli-display: 15
+ type: object
+ type: array
+ slaac:
+ description: The public `slaac` and subnet prefix settings
+ for this public interface that is used to communicate
+ over the public internet, and with other services
+ in the same data center.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: Public IPv6 addresses assigned to
+ this interface.
+ example: 2600:3c09::ff:feab:cdef
+ type: string
+ x-linode-cli-display: 12
+ prefix:
+ description: The prefix length advertised for
+ SLAAC to use. Only the specific (`/128`) EUI-64
+ address derived from the interface's MAC address
+ is supported. To ensure the MAC-based EUI-64
+ address is used, privacy addressing needs to
+ be disabled. Network Helper automatically configures
+ the MAC-derived EUI-64 address. If you disable
+ Network Helper or use an unsupported operating
+ system, follow the specific instructions for
+ your OS.
+ example: 64
+ type: integer
+ x-linode-cli-display: 13
+ type: object
+ type: array
+ type: object
+ type: object
+ updated:
+ description: When the interface was last updated.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 4
+ version:
+ description: Interface version number that increments when the
+ interface updates.
+ example: 1
+ type: integer
+ x-linode-cli-display: 7
+ vlan:
+ description: The value is `null` if this is not a VLAN interface.
+ example: null
+ nullable: true
+ type: object
+ vpc:
+ additionalProperties: false
+ description: The value is `null` if this is not a VPC interface.
+ example: null
+ nullable: true
+ type: object
+ title: Public interface
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-public.yaml
+ - additionalProperties: false
+ description: A VLAN interface configuration defines the properties
+ and settings for a specific VLAN interface in the Linode network.
+ properties:
+ created:
+ description: When the interface was created.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ The unique ID for this interface.
+ For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces),
+ a unique `id` is not generated for the interface and its value
+ is set to 0.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ mac_address:
+ description: "A 48-bit MAC address used to identify the Linode\u2019\
+ s interface. The `mac_address` of an interface remains constant\
+ \ and does not change."
+ example: 22:00:AB:CD:EF:01
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ public:
+ description: The value is `null` if this isn't a public interface.
+ example: null
+ nullable: true
+ type: object
+ updated:
+ description: When the interface was last updated.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 4
+ version:
+ description: Interface version number that is incremented when
+ the interface is updated.
+ example: 1
+ type: integer
+ x-linode-cli-display: 5
+ vlan:
+ additionalProperties: false
+ description: VLAN interface type.
+ properties:
+ ipam_address:
+ description: This VLAN interface's private IPv4 address
+ in classless inter-domain routing (CIDR) notation.
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 7
+ vlan_label:
+ description: The VLAN's label. VLAN interfaces on the same
+ Linode must have a unique `vlan_label`.
+ example: my-vlan
+ type: string
+ x-linode-cli-display: 6
+ type: object
+ vpc:
+ description: The value is `null` if this isn't a VPC interface.
+ example: null
+ nullable: true
+ type: object
+ title: VLAN interface
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-vlan.yaml
+ - additionalProperties: false
+ description: A VPC interface configuration defines settings for
+ a specific VPC interface in the Linode network.
+ properties:
+ created:
+ description: When the interface was created.
+ example: '2025-01-01 00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ default_route:
+ additionalProperties: false
+ description: Indicates if the interface serves as a default
+ route.
+ properties:
+ ipv4:
+ default: false
+ description: Indicates if the interface serves as the IPv4
+ default route. Only one interface per Linode can have
+ the IPv4 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ type: object
+ id:
+ description: __Read-only__ The unique ID for this interface.
+ For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces),
+ a unique `id` is not generated for the interface and its value
+ is set to 0.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ mac_address:
+ description: "A 48-bit MAC address used to identify the Linode\u2019\
+ s interface. The `mac_address` of an interface remains constant\
+ \ and does not change."
+ example: 22:00:AB:CD:EF:01
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ public:
+ additionalProperties: false
+ description: The value is `null` if this is not a public interface.
+ example: null
+ nullable: true
+ type: object
+ updated:
+ description: When the interface last updated.
+ example: '2025-01-01 00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 4
+ version:
+ description: The version number of the interface configuration,
+ incremented each time the interface is updated.
+ example: 1
+ type: integer
+ x-linode-cli-display: 6
+ vlan:
+ additionalProperties: false
+ description: The value is `null` if this is not a VLAN interface.
+ example: null
+ nullable: true
+ type: object
+ vpc:
+ additionalProperties: false
+ description: VPC interface type.
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: The interface's IPv4 `addresses` and `ranges`
+ configuration.
+ properties:
+ addresses:
+ description: IPv4 address settings for this VPC interface.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: The VPC subnet IPv4 address.
+ example: 192.168.22.3
+ type: string
+ x-linode-cli-display: 9
+ nat_1_1_address:
+ description: The 1:1 NAT IPv4 address used to
+ associate a public IPv4 address with the interface's
+ VPC subnet IPv4 address.
+ example: null
+ nullable: true
+ type: string
+ x-linode-cli-display: 11
+ primary:
+ description: Indicates if the IPv4 address is
+ used to set up a source address for routes inside
+ the Linode for the corresponding network interface.
+ example: true
+ type: boolean
+ x-linode-cli-display: 10
+ type: object
+ type: array
+ ranges:
+ description: VPC IPv4 ranges.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ description: CIDR notation of a range (`1.2.3.4/24`)
+ or prefix only (`/24`).
+ example: 192.168.22.16/28
+ type: string
+ x-linode-cli-display: 12
+ type: object
+ type: array
+ type: object
+ subnet_id:
+ description: VPC subnet's unique identifier.
+ example: 1234
+ type: integer
+ x-linode-cli-display: 8
+ vpc_id:
+ description: VPC's unique identifier.
+ example: 1234
+ type: integer
+ x-linode-cli-display: 7
+ type: object
+ title: VPC interface
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-vpc.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface.yaml
+ description: The Linode interface was successfully added.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Add a Linode interface
+ tags:
+ - Linode interfaces
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: "linode-cli linodes interface-add $linodeId \\\n --firewall_id\
+ \ 123 \\\n --default_route.ipv4 true \\\n --default_route.ipv6 true\
+ \ \\\n --public.ipv4.addresses '[{\"address\": \"192.0.2.141\", \"primary\"\
+ : true}, {\"address\": \"auto\", \"primary\": false}]' \\\n --public.ipv6.ranges\
+ \ '[{\"range\": \"2001:0db8::1/64\"}, {\"range\": \"/64\"}]'"
+ title: 'CLI: Public interface'
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: "linode-cli linodes interface-add $linodeId \\\n --vlan.vlan_label\
+ \ my-vlan \\\n --vlan.ipam_address 192.168.2.2/24"
+ title: 'CLI: VLAN interface'
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: "linode-cli linodes interface-add $linodeId \\\n --firewall_id\
+ \ 123 \\\n --default_route.ipv4 true \\\n --vpc.subnet_id 321 \\\n \
+ \ --vpc.ipv4.addresses '[{\"address\": \"10.0.0.1\", \"primary\": true,\
+ \ \"nat_1_1_address\": \"auto\"}, {\"address\": \"auto\", \"primary\"\
+ : false, \"nat_1_1_address\": null}]' \\\n --vpc.ipv4.ranges '[{\"range\"\
+ : \"/28\"}, {\"range\": \"10.11.12.0/24\"}]'"
+ title: 'CLI: VPC interface'
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: interface-add
+ x-linode-grant: read_write
+ get:
+ description: '__Beta__ This operation returns all interfaces assigned to a specific
+ Linode. They list in the order they were created. On the Linode, interfaces
+ also list in this order, and are typically named `eth0`, `eth1`, `eth2`, and
+ so on. The MAC address is the most reliable method to identify an interface.
+ This operation requires the `read_only` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ for the Linode. The Linode needs to use `interfaces` and not configuration
+ profile interfaces. Run [Get account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings)
+ to see if Linode interfaces are supported.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-interfaces
+ operationId: get-linode-interfaces
+ responses:
+ '200':
+ content:
+ application/json:
+ examples:
+ ex-public:
+ summary: Public interface
+ value:
+ created: '2025-01-01T00:01:01'
+ default_route:
+ ipv4: true
+ ipv6: true
+ id: 1234
+ mac_address: 22:00:AB:CD:EF:01
+ public:
+ ipv4:
+ addresses:
+ - address: 172.30.0.50
+ primary: true
+ shared:
+ - address: 172.30.0.51
+ linode_id: 12345
+ ipv6:
+ ranges:
+ - range: 2600:3c09:e001:59::/64
+ route_target: 2600:3c09::ff:feab:cdef
+ - range: 2600:3c09:e001:5a::/64
+ route_target: 2600:3c09::ff:feab:cdef
+ shared:
+ - range: 2600:3c09:e001:2a::/64
+ route_target: null
+ slaac:
+ - address: 2600:3c09::ff:feab:cdef
+ prefix: 64
+ updated: '2025-01-01T00:01:01'
+ version: 1
+ vlan: null
+ vpc: null
+ ex-vlan:
+ summary: VLAN interface
+ value:
+ created: '2025-01-01T00:01:01'
+ default_route: {}
+ id: 1234
+ mac_address: 22:00:AB:CD:EF:01
+ public: null
+ updated: '2025-01-01T00:01:01'
+ version: 1
+ vlan:
+ ipam_address: 10.0.0.1/24
+ vlan_label: my-vlan
+ vpc: null
+ ex-vpc:
+ summary: VPC interface
+ value:
+ created: '2025-01-01T00:01:01'
+ default_route:
+ ipv4: true
+ id: 1234
+ mac_address: 22:00:AB:CD:EF:01
+ public: null
+ updated: '2025-01-01T00:02:01'
+ version: 1
+ vlan: null
+ vpc:
+ ipv4:
+ addresses:
+ - address: 192.168.22.3
+ primary: true
+ ranges:
+ - range: 192.168.22.16/28
+ - range: 192.168.22.32/28
+ subnet_id: 1234
+ vpc_id: 1234
+ schema:
+ description: 'One of the following interface types: VPC, public, or
+ VLAN.'
+ oneOf:
+ - additionalProperties: false
+ description: A public interface configuration defines the properties
+ and settings for a specific public interface in the Linode network.
+ properties:
+ created:
+ description: When the interface was created.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ default_route:
+ additionalProperties: false
+ description: Indicates if the interface is used as a default
+ route.
+ nullable: true
+ properties:
+ ipv4:
+ default: false
+ description: Indicates if the interface is used for the
+ IPv4 default route. Only one interface per Linode can
+ have the IPv4 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ ipv6:
+ default: false
+ description: Indicates if the interface is used for the
+ IPv6 default route. Only one interface per Linode can
+ have the IPv6 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ type: object
+ id:
+ description: __Read-only__ The unique ID for this interface.
+ For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces),
+ a unique `id` is not generated for the interface and its value
+ is set to 0.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ mac_address:
+ description: "A 48-bit MAC address used to identify the Linode\u2019\
+ s interface. A public interface's `mac_address` does not change,\
+ \ even if the public interface is deleted and then recreated."
+ example: 22:00:AB:CD:EF:01
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ public:
+ additionalProperties: false
+ description: Public interface type.
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: The interface's public IPv4 `addresses`.
+ properties:
+ addresses:
+ description: The public IPv4 addresses and primary settings
+ for this public interface.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: The public IPv4 address assigned
+ to this interface.
+ example: 172.232.100.100
+ type: string
+ x-linode-cli-display: 8
+ primary:
+ description: Indicates if the public IPv4 address
+ serves as the source address for traffic routing
+ within the Linode and other corresponding network
+ interfaces and services.
+ example: true
+ type: boolean
+ x-linode-cli-display: 9
+ type: object
+ type: array
+ shared:
+ description: The IPv4 address assigned to this Linode
+ interface, which is also shared with another Linode.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: Shared IPv4 address.
+ example: 172.222.33.4
+ type: string
+ x-linode-cli-display: 10
+ linode_id:
+ description: The ID of the Linode this address
+ currently belongs to. For IPv4 addresses, by
+ default this is the Linode this address was
+ assigned when created.
+ example: 12345
+ type: string
+ x-linode-cli-display: 11
+ type: object
+ type: array
+ type: object
+ ipv6:
+ additionalProperties: false
+ description: The interface's public IPv6 configuration.
+ properties:
+ ranges:
+ description: List of IPv6 ranges assigned to this interface.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ description: IPv6 range in CIDR notation (`2600:0db8::1/64`)
+ or prefix-only (`/64`).
+ example: 2600:3c09:e001:59::/64
+ type: string
+ x-linode-cli-display: 16
+ route_target:
+ description: The public IPv6 address that the
+ `range` is routed to.
+ example: 2600:3c09::ff:feab:cdef
+ type: string
+ x-linode-cli-display: 17
+ type: object
+ type: array
+ shared:
+ description: The IPv6 address assigned to this Linode
+ interface, which is also shared with another Linode.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ description: The IPv6 address range.
+ example: 2600:3c09:e001:2a::/64
+ type: string
+ x-linode-cli-display: 14
+ route_target:
+ description: The public IPv6 address that the
+ `range` is routed to.
+ example: null
+ type: string
+ x-linode-cli-display: 15
+ type: object
+ type: array
+ slaac:
+ description: The public `slaac` and subnet prefix settings
+ for this public interface that is used to communicate
+ over the public internet, and with other services
+ in the same data center.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: Public IPv6 addresses assigned to
+ this interface.
+ example: 2600:3c09::ff:feab:cdef
+ type: string
+ x-linode-cli-display: 12
+ prefix:
+ description: The prefix length advertised for
+ SLAAC to use. Only the specific (`/128`) EUI-64
+ address derived from the interface's MAC address
+ is supported. To ensure the MAC-based EUI-64
+ address is used, privacy addressing needs to
+ be disabled. Network Helper automatically configures
+ the MAC-derived EUI-64 address. If you disable
+ Network Helper or use an unsupported operating
+ system, follow the specific instructions for
+ your OS.
+ example: 64
+ type: integer
+ x-linode-cli-display: 13
+ type: object
+ type: array
+ type: object
+ type: object
+ updated:
+ description: When the interface was last updated.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 4
+ version:
+ description: Interface version number that increments when the
+ interface updates.
+ example: 1
+ type: integer
+ x-linode-cli-display: 7
+ vlan:
+ description: The value is `null` if this is not a VLAN interface.
+ example: null
+ nullable: true
+ type: object
+ vpc:
+ additionalProperties: false
+ description: The value is `null` if this is not a VPC interface.
+ example: null
+ nullable: true
+ type: object
+ title: Public interface
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-public.yaml
+ - additionalProperties: false
+ description: A VLAN interface configuration defines the properties
+ and settings for a specific VLAN interface in the Linode network.
+ properties:
+ created:
+ description: When the interface was created.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ The unique ID for this interface.
+ For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces),
+ a unique `id` is not generated for the interface and its value
+ is set to 0.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ mac_address:
+ description: "A 48-bit MAC address used to identify the Linode\u2019\
+ s interface. The `mac_address` of an interface remains constant\
+ \ and does not change."
+ example: 22:00:AB:CD:EF:01
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ public:
+ description: The value is `null` if this isn't a public interface.
+ example: null
+ nullable: true
+ type: object
+ updated:
+ description: When the interface was last updated.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 4
+ version:
+ description: Interface version number that is incremented when
+ the interface is updated.
+ example: 1
+ type: integer
+ x-linode-cli-display: 5
+ vlan:
+ additionalProperties: false
+ description: VLAN interface type.
+ properties:
+ ipam_address:
+ description: This VLAN interface's private IPv4 address
+ in classless inter-domain routing (CIDR) notation.
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 7
+ vlan_label:
+ description: The VLAN's label. VLAN interfaces on the same
+ Linode must have a unique `vlan_label`.
+ example: my-vlan
+ type: string
+ x-linode-cli-display: 6
+ type: object
+ vpc:
+ description: The value is `null` if this isn't a VPC interface.
+ example: null
+ nullable: true
+ type: object
+ title: VLAN interface
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-vlan.yaml
+ - additionalProperties: false
+ description: A VPC interface configuration defines settings for
+ a specific VPC interface in the Linode network.
+ properties:
+ created:
+ description: When the interface was created.
+ example: '2025-01-01 00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ default_route:
+ additionalProperties: false
+ description: Indicates if the interface serves as a default
+ route.
+ properties:
+ ipv4:
+ default: false
+ description: Indicates if the interface serves as the IPv4
+ default route. Only one interface per Linode can have
+ the IPv4 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ type: object
+ id:
+ description: __Read-only__ The unique ID for this interface.
+ For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces),
+ a unique `id` is not generated for the interface and its value
+ is set to 0.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ mac_address:
+ description: "A 48-bit MAC address used to identify the Linode\u2019\
+ s interface. The `mac_address` of an interface remains constant\
+ \ and does not change."
+ example: 22:00:AB:CD:EF:01
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ public:
+ additionalProperties: false
+ description: The value is `null` if this is not a public interface.
+ example: null
+ nullable: true
+ type: object
+ updated:
+ description: When the interface last updated.
+ example: '2025-01-01 00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 4
+ version:
+ description: The version number of the interface configuration,
+ incremented each time the interface is updated.
+ example: 1
+ type: integer
+ x-linode-cli-display: 6
+ vlan:
+ additionalProperties: false
+ description: The value is `null` if this is not a VLAN interface.
+ example: null
+ nullable: true
+ type: object
+ vpc:
+ additionalProperties: false
+ description: VPC interface type.
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: The interface's IPv4 `addresses` and `ranges`
+ configuration.
+ properties:
+ addresses:
+ description: IPv4 address settings for this VPC interface.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: The VPC subnet IPv4 address.
+ example: 192.168.22.3
+ type: string
+ x-linode-cli-display: 9
+ nat_1_1_address:
+ description: The 1:1 NAT IPv4 address used to
+ associate a public IPv4 address with the interface's
+ VPC subnet IPv4 address.
+ example: null
+ nullable: true
+ type: string
+ x-linode-cli-display: 11
+ primary:
+ description: Indicates if the IPv4 address is
+ used to set up a source address for routes inside
+ the Linode for the corresponding network interface.
+ example: true
+ type: boolean
+ x-linode-cli-display: 10
+ type: object
+ type: array
+ ranges:
+ description: VPC IPv4 ranges.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ description: CIDR notation of a range (`1.2.3.4/24`)
+ or prefix only (`/24`).
+ example: 192.168.22.16/28
+ type: string
+ x-linode-cli-display: 12
+ type: object
+ type: array
+ type: object
+ subnet_id:
+ description: VPC subnet's unique identifier.
+ example: 1234
+ type: integer
+ x-linode-cli-display: 8
+ vpc_id:
+ description: VPC's unique identifier.
+ example: 1234
+ type: integer
+ x-linode-cli-display: 7
+ type: object
+ title: VPC interface
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-vpc.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface.yaml
+ x-linode-cli-nested-list: interfaces
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ interfaces.created:
+ description: When the interface was created.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ interfaces.default_route:
+ additionalProperties: false
+ description: Indicates if the interface is used as a default route.
+ nullable: true
+ properties:
+ ipv4:
+ default: false
+ description: Indicates if the interface is used for the IPv4
+ default route. Only one interface per Linode can have the
+ IPv4 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ ipv6:
+ default: false
+ description: Indicates if the interface is used for the IPv6
+ default route. Only one interface per Linode can have the
+ IPv6 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ type: object
+ interfaces.id:
+ description: __Read-only__ The unique ID for this interface. For
+ `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces),
+ a unique `id` is not generated for the interface and its value
+ is set to 0.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ interfaces.mac_address:
+ description: "A 48-bit MAC address used to identify the Linode\u2019\
+ s interface. A public interface's `mac_address` does not change,\
+ \ even if the public interface is deleted and then recreated."
+ example: 22:00:AB:CD:EF:01
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ interfaces.updated:
+ description: When the interface was last updated.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 4
+ interfaces.version:
+ description: Interface version number that increments when the
+ interface updates.
+ example: 1
+ type: integer
+ x-linode-cli-display: 7
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-cli.yaml
+ description: A list of all the interfaces available for a Linode.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: List Linode interfaces
+ tags:
+ - Linode interfaces
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli linodes interfaces-list $linodeId
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: interfaces-list
+ x-linode-grant: read_write
+ parameters:
+ - description: The `id` of the Linode.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id.yaml
+ x-akamai:
+ file-path: paths/linode-interfaces.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/interfaces
+ status: BETA
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/interfaces/settings:
+ get:
+ description: '__Beta__ Lists a Linode''s interface settings, including Network
+ Helper and default route settings. This operation is for Linode interfaces,
+ not for legacy configuration profile interfaces.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-interface-settings
+ operationId: get-linode-interface-settings
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Linode interface settings.
+ properties:
+ default_route:
+ additionalProperties: false
+ description: Interfaces used for the IPv4 `default_route` and
+ IPv6 `default_route` when multiple interfaces are eligible for
+ the role.
+ properties:
+ ipv4_eligible_interface_ids:
+ description: The VPC or public interface IDs that are eligible
+ to be the IPv4 `default_route` for this Linode. If the `ipv4_eligible_interface_ids`
+ array is empty, this means there are no eligible interfaces
+ eligible for the IPv4 default route role.
+ items:
+ description: __Read-only__ Eligible IDs, or an empty array
+ if there are none.
+ example:
+ - 1
+ - 2
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 3
+ type: array
+ ipv4_interface_id:
+ default: null
+ description: The VPC or public interface ID assigned as the
+ IPv4 `default_route`. The [List Linode interface settings](https://techdocs.akamai.com/linode-api/reference/get-linode-interface-settings)
+ operation provides eligible IPv4 interface IDs.
+ example: 1
+ nullable: true
+ type: integer
+ x-linode-cli-display: 2
+ ipv6_eligible_interface_ids:
+ description: The public interface IDs that are eligible to
+ be the IPv6 `default_route` for this Linode. If the `ipv6_eligible_interface_ids`
+ array is empty, this means there are no eligible interfaces
+ eligible for the IPv6 default route role.
+ items:
+ description: __Read-only__ Eligible IDs, or an empty array
+ if there are none.
+ example:
+ - 2
+ - 3
+ readOnly: true
+ type: integer
+ type: array
+ x-linode-cli-display: 5
+ ipv6_interface_id:
+ default: null
+ description: The public interface ID assigned as the IPv6
+ `default_route`. The [List Linode interface settings](https://techdocs.akamai.com/linode-api/reference/get-linode-interface-settings)
+ operation provides eligible IPv6 interface IDs.
+ example: 1
+ nullable: true
+ type: integer
+ x-linode-cli-display: 4
+ type: object
+ network_helper:
+ description: Enables the Network Helper feature. The default value
+ is determined by the `network_helper` setting in the [account
+ settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings).
+ [Power off the Linode](https://techdocs.akamai.com/linode-api/reference/post-shutdown-linode-instance)
+ before disabling or enabling Network Helper.
+ example: false
+ type: boolean
+ x-linode-cli-display: 1
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-settings.yaml
+ x-example:
+ x-ref: ../examples/linode-interface-settings-200.json
+ description: Returns a single Linode interface settings object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linode:read_only
+ summary: List Linode interface settings
+ tags:
+ - Linode interfaces
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli linodes interfaces-settings-list $linodeId
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: 'linodes: read_only'
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: interfaces-settings-list
+ x-linode-grant: read_only
+ put:
+ description: "__Beta__ Updates Network Helper and default route settings on\
+ \ the Linode. __CLI: Public interface__.\n\n ```\n linode-cli linodes\
+ \ interface-settings-update $linodeId \\\n --network_helper true \\\n --default_route.ipv4_interface_id\
+ \ 4527 \\\n --default_route.ipv6_interface_id 4541 \\\n --default_route.ipv4_eligible_interface_ids\
+ \ 4527 \\\n --default_route.ipv4_eligible_interface_ids 4541 \\\n --default_route.ipv6_eligible_interface_ids\
+ \ 4527 \\\n --default_route.ipv6_eligible_interface_ids 4541\n ```\n\n\
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n- __CLI: VLAN interface__.\n\n ```\n linode-cli linodes interface-settings-update\
+ \ $linodeId \\\n --network_helper true\n ```\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n- __CLI: VPC interface__.\n\n ```\n linode-cli linodes interface-settings-update\
+ \ $linodeId \\\n --network_helper true \\\n --default_route.ipv4_interface_id\
+ \ 5527 \\\n --default_route.ipv4_eligible_interface_ids 5527 \\\n --default_route.ipv4_eligible_interface_ids\
+ \ 5541\n ```\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-linode-interface-settings
+ operationId: put-linode-interface-settings
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Linode interface settings.
+ properties:
+ default_route:
+ additionalProperties: false
+ description: Interfaces used for the IPv4 `default_route` and IPv6
+ `default_route` when multiple interfaces are eligible for the
+ role.
+ properties:
+ ipv4_eligible_interface_ids:
+ description: The VPC or public interface IDs that are eligible
+ to be the IPv4 `default_route` for this Linode. If the `ipv4_eligible_interface_ids`
+ array is empty, this means there are no eligible interfaces
+ eligible for the IPv4 default route role.
+ items:
+ description: __Read-only__ Eligible IDs, or an empty array
+ if there are none.
+ example:
+ - 1
+ - 2
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 3
+ type: array
+ ipv4_interface_id:
+ default: null
+ description: The VPC or public interface ID assigned as the
+ IPv4 `default_route`. The [List Linode interface settings](https://techdocs.akamai.com/linode-api/reference/get-linode-interface-settings)
+ operation provides eligible IPv4 interface IDs.
+ example: 1
+ nullable: true
+ type: integer
+ x-linode-cli-display: 2
+ ipv6_eligible_interface_ids:
+ description: The public interface IDs that are eligible to be
+ the IPv6 `default_route` for this Linode. If the `ipv6_eligible_interface_ids`
+ array is empty, this means there are no eligible interfaces
+ eligible for the IPv6 default route role.
+ items:
+ description: __Read-only__ Eligible IDs, or an empty array
+ if there are none.
+ example:
+ - 2
+ - 3
+ readOnly: true
+ type: integer
+ type: array
+ x-linode-cli-display: 5
+ ipv6_interface_id:
+ default: null
+ description: The public interface ID assigned as the IPv6 `default_route`.
+ The [List Linode interface settings](https://techdocs.akamai.com/linode-api/reference/get-linode-interface-settings)
+ operation provides eligible IPv6 interface IDs.
+ example: 1
+ nullable: true
+ type: integer
+ x-linode-cli-display: 4
+ type: object
+ network_helper:
+ description: Enables the Network Helper feature. The default value
+ is determined by the `network_helper` setting in the [account
+ settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings).
+ [Power off the Linode](https://techdocs.akamai.com/linode-api/reference/post-shutdown-linode-instance)
+ before disabling or enabling Network Helper.
+ example: '{{network_helper}}'
+ type: boolean
+ x-linode-cli-display: 1
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-settings.yaml
+ x-example:
+ x-ref: ../examples/linode-interface.json
+ description: Update Linode interface settings. Before enabling or disabling
+ Network Helper, you need to power off the Linode.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Linode interface settings.
+ properties:
+ default_route:
+ additionalProperties: false
+ description: Interfaces used for the IPv4 `default_route` and
+ IPv6 `default_route` when multiple interfaces are eligible for
+ the role.
+ properties:
+ ipv4_eligible_interface_ids:
+ description: The VPC or public interface IDs that are eligible
+ to be the IPv4 `default_route` for this Linode. If the `ipv4_eligible_interface_ids`
+ array is empty, this means there are no eligible interfaces
+ eligible for the IPv4 default route role.
+ items:
+ description: __Read-only__ Eligible IDs, or an empty array
+ if there are none.
+ example:
+ - 1
+ - 2
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 3
+ type: array
+ ipv4_interface_id:
+ default: null
+ description: The VPC or public interface ID assigned as the
+ IPv4 `default_route`. The [List Linode interface settings](https://techdocs.akamai.com/linode-api/reference/get-linode-interface-settings)
+ operation provides eligible IPv4 interface IDs.
+ example: 1
+ nullable: true
+ type: integer
+ x-linode-cli-display: 2
+ ipv6_eligible_interface_ids:
+ description: The public interface IDs that are eligible to
+ be the IPv6 `default_route` for this Linode. If the `ipv6_eligible_interface_ids`
+ array is empty, this means there are no eligible interfaces
+ eligible for the IPv6 default route role.
+ items:
+ description: __Read-only__ Eligible IDs, or an empty array
+ if there are none.
+ example:
+ - 2
+ - 3
+ readOnly: true
+ type: integer
+ type: array
+ x-linode-cli-display: 5
+ ipv6_interface_id:
+ default: null
+ description: The public interface ID assigned as the IPv6
+ `default_route`. The [List Linode interface settings](https://techdocs.akamai.com/linode-api/reference/get-linode-interface-settings)
+ operation provides eligible IPv6 interface IDs.
+ example: 1
+ nullable: true
+ type: integer
+ x-linode-cli-display: 4
+ type: object
+ network_helper:
+ description: Enables the Network Helper feature. The default value
+ is determined by the `network_helper` setting in the [account
+ settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings).
+ [Power off the Linode](https://techdocs.akamai.com/linode-api/reference/post-shutdown-linode-instance)
+ before disabling or enabling Network Helper.
+ example: false
+ type: boolean
+ x-linode-cli-display: 1
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-settings.yaml
+ x-example:
+ x-ref: ../examples/linode-interface-settings-200.json
+ description: The updated Linode interface settings.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Update Linode interface settings
+ tags:
+ - Linode interfaces
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: "linode-cli linodes interface-settings-update $linodeId \\\n --network_helper\
+ \ true \\\n --default_route.ipv4_interface_id 4527 \\\n --default_route.ipv6_interface_id\
+ \ 4541 \\\n --default_route.ipv4_eligible_interface_ids 4527 \\\n --default_route.ipv4_eligible_interface_ids\
+ \ 4541 \\\n --default_route.ipv6_eligible_interface_ids 4527 \\\n --default_route.ipv6_eligible_interface_ids\
+ \ 4541"
+ title: 'CLI: Public interface'
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: "linode-cli linodes interface-settings-update $linodeId \\\n --network_helper\
+ \ true"
+ title: 'CLI: VLAN interface'
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: "linode-cli linodes interface-settings-update $linodeId \\\n --network_helper\
+ \ true \\\n --default_route.ipv4_interface_id 5527 \\\n --default_route.ipv4_eligible_interface_ids\
+ \ 5527 \\\n --default_route.ipv4_eligible_interface_ids 5541 "
+ title: 'CLI: VPC interface'
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: interface-settings-update
+ x-linode-grant: read_write
+ parameters:
+ - description: The `id` of the Linode.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id.yaml
+ x-akamai:
+ file-path: paths/linode-interface-settings.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/interfaces/settings
+ status: BETA
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/interfaces/{interfaceId}:
+ get:
+ description: '__Beta__ Returns an interface assigned to a specific Linode. This
+ operation requires the `read_only` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ for the Linode.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-interface
+ operationId: get-linode-interface
+ responses:
+ '200':
+ content:
+ application/json:
+ examples:
+ ex-public:
+ summary: Public interface
+ value:
+ created: '2025-01-01T00:01:01'
+ default_route:
+ ipv4: true
+ ipv6: true
+ id: 1234
+ mac_address: 22:00:AB:CD:EF:01
+ public:
+ ipv4:
+ addresses:
+ - address: 172.30.0.50
+ primary: true
+ shared:
+ - address: 172.30.0.51
+ linode_id: 12345
+ ipv6:
+ ranges:
+ - range: 2600:3c09:e001:59::/64
+ route_target: 2600:3c09::ff:feab:cdef
+ - range: 2600:3c09:e001:5a::/64
+ route_target: 2600:3c09::ff:feab:cdef
+ shared:
+ - range: 2600:3c09:e001:2a::/64
+ route_target: null
+ slaac:
+ - address: 2600:3c09::ff:feab:cdef
+ prefix: 64
+ updated: '2025-01-01T00:01:01'
+ version: 1
+ vlan: null
+ vpc: null
+ ex-vlan:
+ summary: VLAN interface
+ value:
+ created: '2025-01-01T00:01:01'
+ default_route: {}
+ id: 1234
+ mac_address: 22:00:AB:CD:EF:01
+ public: null
+ updated: '2025-01-01T00:01:01'
+ version: 1
+ vlan:
+ ipam_address: 10.0.0.1/24
+ vlan_label: my-vlan
+ vpc: null
+ ex-vpc:
+ summary: VPC interface
+ value:
+ created: '2025-01-01T00:01:01'
+ default_route:
+ ipv4: true
+ id: 1234
+ mac_address: 22:00:AB:CD:EF:01
+ public: null
+ updated: '2025-01-01T00:02:01'
+ version: 1
+ vlan: null
+ vpc:
+ ipv4:
+ addresses:
+ - address: 192.168.22.3
+ primary: true
+ ranges:
+ - range: 192.168.22.16/28
+ - range: 192.168.22.32/28
+ subnet_id: 1234
+ vpc_id: 1234
+ schema:
+ description: Interface type can be VPC, public, or VLAN.
+ type: object
+ properties:
+ created:
+ description: When the interface was created.
+ example: '2025-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ default_route:
+ description: Indicates if the interface is used as a default route.
+ nullable: true
+ type: object
+ properties:
+ ipv4:
+ default: false
+ description: Indicates if the interface is used for the IPv4
+ default route. Only one interface per Linode can have the
+ IPv4 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ ipv6:
+ default: false
+ description: Indicates if the interface is used for the IPv6
+ default route. Only one interface per Linode can have the
+ IPv6 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ id:
+ description: __Read-only__ The unique ID for this interface. For
+ `dry_run` upgrades, a unique `id` is not generated for the interface
+ and its value is set to 0.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ mac_address:
+ description: A 48-bit MAC address used to identify the Linode's
+ interface. The `mac_address` of an interface remains constant
+ and does not change.
+ example: 22:00:AB:CD:EF:01
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ public:
+ description: Public interface configuration. Null if not a public
+ interface.
+ nullable: true
+ type: object
+ properties:
+ ipv4:
+ description: The interface's public IPv4 `addresses`.
+ type: object
+ properties:
+ addresses:
+ description: The public IPv4 addresses and primary settings
+ for this public interface.
+ items:
+ type: object
+ properties:
+ address:
+ description: The public IPv4 address assigned to
+ this interface.
+ example: 172.232.100.100
+ type: string
+ x-linode-cli-display: 8
+ primary:
+ description: Indicates if the public IPv4 address
+ serves as the source address for traffic routing
+ within the Linode.
+ example: true
+ type: boolean
+ x-linode-cli-display: 9
+ type: array
+ shared:
+ description: The IPv4 address assigned to this Linode
+ interface, which is also shared with another Linode.
+ items:
+ type: object
+ properties:
+ address:
+ description: Shared IPv4 address.
+ example: 172.222.33.4
+ type: string
+ x-linode-cli-display: 10
+ linode_id:
+ description: The ID of the Linode this address currently
+ belongs to.
+ example: 12345
+ type: string
+ x-linode-cli-display: 11
+ type: array
+ ipv6:
+ description: The interface's public IPv6 configuration.
+ type: object
+ properties:
+ ranges:
+ description: List of IPv6 ranges assigned to this interface.
+ items:
+ type: object
+ properties:
+ range:
+ description: IPv6 range in CIDR notation (`2600:0db8::1/64`)
+ or prefix-only (`/64`).
+ example: 2600:3c09:e001:59::/64
+ type: string
+ x-linode-cli-display: 16
+ route_target:
+ description: The public IPv6 address that the `range`
+ is routed to.
+ example: 2600:3c09::ff:feab:cdef
+ type: string
+ x-linode-cli-display: 17
+ type: array
+ shared:
+ description: The IPv6 address assigned to this Linode
+ interface, which is also shared with another Linode.
+ items:
+ type: object
+ properties:
+ range:
+ description: The IPv6 address range.
+ example: 2600:3c09:e001:2a::/64
+ type: string
+ x-linode-cli-display: 14
+ route_target:
+ description: The public IPv6 address that the `range`
+ is routed to.
+ example: null
+ type: string
+ x-linode-cli-display: 15
+ type: array
+ slaac:
+ description: The public `slaac` and subnet prefix settings
+ for this public interface.
+ items:
+ type: object
+ properties:
+ address:
+ description: Public IPv6 addresses assigned to this
+ interface.
+ example: 2600:3c09::ff:feab:cdef
+ type: string
+ x-linode-cli-display: 12
+ prefix:
+ description: The prefix length advertised for SLAAC
+ to use.
+ example: 64
+ type: integer
+ x-linode-cli-display: 13
+ type: array
+ updated:
+ description: When the interface was last updated.
+ example: '2025-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 4
+ version:
+ description: Interface version number that increments when the
+ interface updates.
+ example: 1
+ type: integer
+ x-linode-cli-display: 7
+ vlan:
+ description: VLAN interface configuration. Null if not a VLAN
+ interface.
+ nullable: true
+ type: object
+ properties:
+ ipam_address:
+ description: This VLAN interface's private IPv4 address in
+ classless inter-domain routing (CIDR) notation.
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 7
+ vlan_label:
+ description: The VLAN's label. VLAN interfaces on the same
+ Linode must have a unique `vlan_label`.
+ example: my-vlan
+ type: string
+ x-linode-cli-display: 6
+ vpc:
+ description: VPC interface configuration. Null if not a VPC interface.
+ nullable: true
+ type: object
+ properties:
+ ipv4:
+ description: The interface's IPv4 `addresses` and `ranges`
+ configuration.
+ type: object
+ properties:
+ addresses:
+ description: IPv4 address settings for this VPC interface.
+ items:
+ type: object
+ properties:
+ address:
+ description: The VPC subnet IPv4 address.
+ example: 192.168.22.3
+ type: string
+ x-linode-cli-display: 9
+ nat_1_1_address:
+ description: The 1:1 NAT IPv4 address used to associate
+ a public IPv4 address with the interface's VPC
+ subnet IPv4 address.
+ example: null
+ nullable: true
+ type: string
+ x-linode-cli-display: 11
+ primary:
+ description: Indicates if the IPv4 address is used
+ to set up a source address for routes inside the
+ Linode.
+ example: true
+ type: boolean
+ x-linode-cli-display: 10
+ type: array
+ ranges:
+ description: VPC IPv4 ranges.
+ items:
+ type: object
+ properties:
+ range:
+ description: CIDR notation of a range (`1.2.3.4/24`)
+ or prefix only (`/24`).
+ example: 192.168.22.16/28
+ type: string
+ x-linode-cli-display: 12
+ type: array
+ subnet_id:
+ description: VPC subnet's unique identifier.
+ example: 1234
+ type: integer
+ x-linode-cli-display: 8
+ vpc_id:
+ description: VPC's unique identifier.
+ example: 1234
+ type: integer
+ x-linode-cli-display: 7
+ description: Returns a single interface available for a Linode.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Get a Linode interface
+ tags:
+ - Linode interfaces
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli linodes interface-view $linodeId $interfaceId
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: interface-view
+ x-linode-grant: read_write
+ put:
+ description: "__Beta__ Update the configuration of a Linode interface. __CLI:\
+ \ Public interface__.\n\n ```\n linode-cli linodes interface-update\
+ \ $linodeId $interfaceId \\\n --default_route.ipv4 true \\\n --default_route.ipv6\
+ \ false \\\n --public.ipv4.addresses '[{\"address\": \"192.0.2.141\", \"\
+ primary\": true}, {\"address\": \"auto\", \"primary\": false}]' \\\n --public.ipv6.ranges\
+ \ '[{\"range\": \"2001:0db8\"::1/64\"}, {\"range\": \"/64\"}]'\n ```\n\n\
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n- __CLI: VLAN interface__.\n\n ```\n linode-cli linodes interface-update\
+ \ $linodeId $interfaceId \\\n --vlan.vlan_label my-vlan \\\n --vlan.ipam_address\
+ \ 192.168.2.2/24\n ```\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n- __CLI: VPC interface__.\n\n ```\n linode-cli linodes interface-update\
+ \ $linodeId $interfaceId \\\n --default_route.ipv4 true \\\n --vpc.subnet_id\
+ \ 321 \\\n --vpc.ipv4.addresses '[{\"address\": \"10.0.0.1\", \"primary\"\
+ : true, \"nat_1_1_address\": \"auto\"}, {\"address\": \"auto\", \"primary\"\
+ : false, \"nat_1_1_address\": null}]' \\\n --vpc.ipv4.ranges '[{\"range\"\
+ : \"/28\"}, {\"range\": \"10.11.12.0/24\"}]'\n ```\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-linode-interface
+ operationId: put-linode-interface
+ requestBody:
+ content:
+ application/json:
+ schema:
+ description: Modifies an existing Linode interface. The interface type
+ (`vpc`, `public`, `vlan`) can't be changed.
+ oneOf:
+ - additionalProperties: false
+ description: 'Modifies an existing Linode public interface. The public
+ interface can''t be changed to a VLAN or VPC interface type.
+
+
+ If Network Helper is enabled, the Linode must be shut down before
+ updating the `address`, or `primary` setting.'
+ properties:
+ default_route:
+ additionalProperties: false
+ description: Defines whether IPv4 and IPv6 default routes are
+ enabled for this interface. Public interfaces can have both
+ an IPv4 and IPv6 `default_route`, provided they have at least
+ one IP address of the corresponding type. If the `default_route`
+ is omitted, (or set to `null`), no changes are made to the `default_route`
+ configuration.
+ properties:
+ ipv4:
+ description: If set to `true`, and if the interface has at
+ least one IPv4 address after the PUT request, the `default_route`
+ role is assigned to the interface. If another interface
+ is already configured as the default route, this setting
+ removes that configuration. If the interface has an IPv4
+ address, the value cannot be set as `false`.
+ example: true
+ nullable: true
+ type: boolean
+ ipv6:
+ description: If set to `true`, and if the interface has at
+ least one IPv6 address after the PUT request, the `default_route`
+ role is assigned to the interface. If another interface
+ is already configured as the default route, this setting
+ removes that configuration. If the interface has an IPv6
+ address, the value cannot be set as `false`.
+ example: true
+ nullable: true
+ type: boolean
+ type: object
+ public:
+ additionalProperties: false
+ description: Public interface settings.
+ nullable: true
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: IPv4 address settings for this public interface.
+ properties:
+ addresses:
+ description: List of IPv4 addresses to assign to this
+ interface. When updating the addresses, all addresses
+ must be explicitly listed in the array, and any addresses
+ not included in the update are removed. If omitted or
+ set to `null`, no changes are made to the existing IPv4
+ configuration.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ default: auto
+ description: "The public IPv4 address configuration\
+ \ for the interface. If set to `auto`, a public\
+ \ IPv4 address is allocated. If the address is\
+ \ a reserved or an automatically assigned public\
+ \ IP, the IP must be reserved or already assigned\
+ \ to a single Linode, and it can\u2019t be already\
+ \ assigned to an interface."
+ example:
+ - 192.0.2.141
+ - auto
+ type: string
+ primary:
+ description: 'The IPv4 primary address for the interface
+ that is used to set up a source address for routes
+ inside the Linode for the corresponding network
+ interface.
+
+ Automatically set to `true` and should not be
+ set to `false` if there is only one address present
+ in the addresses array.
+
+ If more than one address is provided, primary
+ must be set to `true` for one address.'
+ example: true
+ nullable: true
+ type: boolean
+ type: object
+ type: array
+ type: object
+ ipv6:
+ additionalProperties: false
+ description: IPv6 address settings for the public interface.
+ properties:
+ ranges:
+ description: List of IPv6 address ranges to assign to
+ this interface. If range is omitted, or set to `null`,
+ no changes are made to the IPv6 ranges of the interface.
+ If range is updated, specify all ranges in this array,
+ otherwise, the currently assigned ranges will be removed.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ default: null
+ description: 'IPv6 range in CIDR notation (`2001:0db8::1/64`)
+ or prefix-only (`/64`).
+
+ - The prefix of /64 or /56 block of IPv6 addresses.
+
+ - CIDR notation ranges must be within your assigned
+ ranges.'
+ example:
+ - 2001:0db8::1/64
+ - /64
+ type: string
+ required:
+ - range
+ type: object
+ type: array
+ type: object
+ type: object
+ title: Public interface
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-linode-interface-public.yaml
+ - additionalProperties: false
+ description: Modifies an existing Linode VLAN interface. The VLAN
+ interface can't be changed to a VPC or public interface type.
+ properties:
+ vlan:
+ additionalProperties: false
+ description: VLAN interface settings.
+ properties:
+ ipam_address:
+ description: This VLAN interface's private IPv4 address in
+ classless inter-domain routing (CIDR) notation. The `ipam_address`
+ can't be updated. It needs to be the existing value, or
+ `null`.
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ vlan_label:
+ description: The VLAN's label. Once you specify it, you can't
+ update it.
+ example: my-vlan
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ type: object
+ title: VLAN interface
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-linode-interface-vlan.yaml
+ - additionalProperties: false
+ description: 'Modifies an existing Linode VPC interface. The VPC interface
+ can''t be changed to a VLAN or public interface type.
+
+ If Network Helper is enabled, shut down the Linode before updating
+ the `address`, or `primary` setting.'
+ properties:
+ default_route:
+ description: Indicates if the interface is used as the default
+ route. A VPC interface can have an IPv4 `default_route`.
+ properties:
+ ipv4:
+ description: If set to `true`, and if the interface has at
+ least one IPv4 address after the `PUT` request, the `default_route`
+ role is assigned to the interface. If another interface
+ is already configured as the default route, this setting
+ removes that configuration. If the interface has an IPv4
+ address, the value can't be set to `false`. If this is omitted,
+ or set to `null`, no changes are made to the interface's
+ IPv4 configuration.
+ example: true
+ nullable: true
+ type: boolean
+ type: object
+ vpc:
+ additionalProperties: false
+ description: VPC interface settings.
+ nullable: true
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: Interfaces can be configured with IPv4 `addresses`
+ or `ranges`. If this is omitted, or set to `null`, no changes
+ are made to the IPv4 configuration.
+ properties:
+ addresses:
+ description: IPv4 configuration for this VPC interface.
+ When updating the addresses, all addresses must be explicitly
+ listed in the array, and any addresses not included
+ in the update are removed. If omitted or set to `null`,
+ no changes are made to the existing IPv4 configuration.
+ However, if the `subnet_id` is updated, new default
+ address values are applied.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ default: auto
+ description: Specifies which IPv4 addresses to use
+ in the VPC subnet. You can't use an IPv4 address
+ taken from another Linode or interface, or the
+ first two or last two addresses in the VPC subnet.
+ Setting `address` to `auto` automatically assigns
+ an IP address from the subnet.
+ example:
+ - 192.168.22.3
+ - auto
+ type: string
+ nat_1_1_address:
+ default: null
+ description: 'The 1:1 NAT IPv4 address that links
+ a public IPv4 address with the interface''s VPC
+ subnet IPv4 address.
+
+
+ - You can set this to a specific public IPv4 address
+ that''s available on the Linode.
+
+
+ - If set to `auto`, a public IPv4 address is automatically
+ selected.
+
+
+ - If a public IPv4 address or `auto` is specified,
+ `primary` must be set to `true`.
+
+
+ - A specified address can''t be used on another
+ Linode.
+
+
+ - If the address is a reserved or an automatically
+ assigned public IP, the IP must be reserved or
+ already assigned to a single Linode, and not assigned
+ to an interface.
+
+
+ - Omitting this or setting it to `null` results
+ in no 1:1 NAT configuration for the VPC interface.'
+ example:
+ - null
+ - auto
+ - 192.0.2.141
+ type: string
+ primary:
+ description: 'The IPv4 primary address for the interface
+ that sets up a source address for routes inside
+ the Linode for the corresponding network interface.
+
+ Automatically sets to `true` and should not be
+ set to `false` if there is only one address present
+ in the `addresses` array.
+
+ If more than one `address` is provided, `primary`
+ must be set to `true` for one address.'
+ example: true
+ nullable: true
+ type: boolean
+ required:
+ - address
+ type: object
+ type: array
+ ranges:
+ description: VPC IPv4 ranges. If you omit `ranges` or
+ set it to `null`, the interface's IPv4 ranges remain
+ unchanged. But if you update `ranges`, you need to specify
+ all of them, otherwise currently assigned ranges are
+ removed.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ default: null
+ description: 'CIDR notation of a range (`1.2.3.4/28`)
+ or prefix only (`/28`):
+
+ - When only the prefix is provided, then an available
+ range of that size within the VPC''s subnet is
+ automatically selected.
+
+ - If specified as CIDR notation, it must belong
+ to the VPC subnet. All addresses in the range
+ must not be taken by any other Linode or interfaces
+ in the VPC subnet and must not include any of
+ the first two or last two addresses of the VPC
+ subnet.'
+ example:
+ - 192.168.22.16/28
+ - 192.168.22.32/28
+ - /28
+ - auto
+ nullable: true
+ type: string
+ type: object
+ type: array
+ type: object
+ subnet_id:
+ description: "The VPC subnet identifier for this interface.\
+ \ Your subnet\u2019s VPC must be in the same data center\
+ \ (region) as the Linode. If the subnet is updated, the\
+ \ IP configuration should also be updated. If the subnet\
+ \ is updated without updating the IP configuration, defaults\
+ \ are applied."
+ example: 321
+ type: integer
+ required:
+ - subnet_id
+ type: object
+ title: VPC interface
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-linode-interface-vpc.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-linode-interface.yaml
+ x-example:
+ x-ref: ../examples/linode-interface.json
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ examples:
+ ex-public:
+ summary: Public interface
+ value:
+ created: '2025-01-01T00:01:01'
+ default_route:
+ ipv4: true
+ ipv6: true
+ id: 1234
+ mac_address: 22:00:AB:CD:EF:01
+ public:
+ ipv4:
+ addresses:
+ - address: 172.30.0.50
+ primary: true
+ shared:
+ - address: 172.30.0.51
+ linode_id: 12345
+ ipv6:
+ ranges:
+ - range: 2600:3c09:e001:59::/64
+ route_target: 2600:3c09::ff:feab:cdef
+ - range: 2600:3c09:e001:5a::/64
+ route_target: 2600:3c09::ff:feab:cdef
+ shared:
+ - range: 2600:3c09:e001:2a::/64
+ route_target: null
+ slaac:
+ - address: 2600:3c09::ff:feab:cdef
+ prefix: 64
+ updated: '2025-01-01T00:01:01'
+ version: 1
+ vlan: null
+ vpc: null
+ ex-vlan:
+ summary: VLAN interface
+ value:
+ created: '2025-01-01T00:01:01'
+ default_route: {}
+ id: 1234
+ mac_address: 22:00:AB:CD:EF:01
+ public: null
+ updated: '2025-01-01T00:01:01'
+ version: 1
+ vlan:
+ ipam_address: 10.0.0.1/24
+ vlan_label: my-vlan
+ vpc: null
+ ex-vpc:
+ summary: VPC interface
+ value:
+ created: '2025-01-01T00:01:01'
+ default_route:
+ ipv4: true
+ id: 1234
+ mac_address: 22:00:AB:CD:EF:01
+ public: null
+ updated: '2025-01-01T00:02:01'
+ version: 1
+ vlan: null
+ vpc:
+ ipv4:
+ addresses:
+ - address: 192.168.22.3
+ primary: true
+ ranges:
+ - range: 192.168.22.16/28
+ - range: 192.168.22.32/28
+ subnet_id: 1234
+ vpc_id: 1234
+ schema:
+ description: 'One of the following interface types: VPC, public, or
+ VLAN.'
+ oneOf:
+ - additionalProperties: false
+ description: A public interface configuration defines the properties
+ and settings for a specific public interface in the Linode network.
+ properties:
+ created:
+ description: When the interface was created.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ default_route:
+ additionalProperties: false
+ description: Indicates if the interface is used as a default
+ route.
+ nullable: true
+ properties:
+ ipv4:
+ default: false
+ description: Indicates if the interface is used for the
+ IPv4 default route. Only one interface per Linode can
+ have the IPv4 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ ipv6:
+ default: false
+ description: Indicates if the interface is used for the
+ IPv6 default route. Only one interface per Linode can
+ have the IPv6 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ type: object
+ id:
+ description: __Read-only__ The unique ID for this interface.
+ For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces),
+ a unique `id` is not generated for the interface and its value
+ is set to 0.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ mac_address:
+ description: "A 48-bit MAC address used to identify the Linode\u2019\
+ s interface. A public interface's `mac_address` does not change,\
+ \ even if the public interface is deleted and then recreated."
+ example: 22:00:AB:CD:EF:01
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ public:
+ additionalProperties: false
+ description: Public interface type.
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: The interface's public IPv4 `addresses`.
+ properties:
+ addresses:
+ description: The public IPv4 addresses and primary settings
+ for this public interface.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: The public IPv4 address assigned
+ to this interface.
+ example: 172.232.100.100
+ type: string
+ x-linode-cli-display: 8
+ primary:
+ description: Indicates if the public IPv4 address
+ serves as the source address for traffic routing
+ within the Linode and other corresponding network
+ interfaces and services.
+ example: true
+ type: boolean
+ x-linode-cli-display: 9
+ type: object
+ type: array
+ shared:
+ description: The IPv4 address assigned to this Linode
+ interface, which is also shared with another Linode.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: Shared IPv4 address.
+ example: 172.222.33.4
+ type: string
+ x-linode-cli-display: 10
+ linode_id:
+ description: The ID of the Linode this address
+ currently belongs to. For IPv4 addresses, by
+ default this is the Linode this address was
+ assigned when created.
+ example: 12345
+ type: string
+ x-linode-cli-display: 11
+ type: object
+ type: array
+ type: object
+ ipv6:
+ additionalProperties: false
+ description: The interface's public IPv6 configuration.
+ properties:
+ ranges:
+ description: List of IPv6 ranges assigned to this interface.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ description: IPv6 range in CIDR notation (`2600:0db8::1/64`)
+ or prefix-only (`/64`).
+ example: 2600:3c09:e001:59::/64
+ type: string
+ x-linode-cli-display: 16
+ route_target:
+ description: The public IPv6 address that the
+ `range` is routed to.
+ example: 2600:3c09::ff:feab:cdef
+ type: string
+ x-linode-cli-display: 17
+ type: object
+ type: array
+ shared:
+ description: The IPv6 address assigned to this Linode
+ interface, which is also shared with another Linode.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ description: The IPv6 address range.
+ example: 2600:3c09:e001:2a::/64
+ type: string
+ x-linode-cli-display: 14
+ route_target:
+ description: The public IPv6 address that the
+ `range` is routed to.
+ example: null
+ type: string
+ x-linode-cli-display: 15
+ type: object
+ type: array
+ slaac:
+ description: The public `slaac` and subnet prefix settings
+ for this public interface that is used to communicate
+ over the public internet, and with other services
+ in the same data center.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: Public IPv6 addresses assigned to
+ this interface.
+ example: 2600:3c09::ff:feab:cdef
+ type: string
+ x-linode-cli-display: 12
+ prefix:
+ description: The prefix length advertised for
+ SLAAC to use. Only the specific (`/128`) EUI-64
+ address derived from the interface's MAC address
+ is supported. To ensure the MAC-based EUI-64
+ address is used, privacy addressing needs to
+ be disabled. Network Helper automatically configures
+ the MAC-derived EUI-64 address. If you disable
+ Network Helper or use an unsupported operating
+ system, follow the specific instructions for
+ your OS.
+ example: 64
+ type: integer
+ x-linode-cli-display: 13
+ type: object
+ type: array
+ type: object
+ type: object
+ updated:
+ description: When the interface was last updated.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 4
+ version:
+ description: Interface version number that increments when the
+ interface updates.
+ example: 1
+ type: integer
+ x-linode-cli-display: 7
+ vlan:
+ description: The value is `null` if this is not a VLAN interface.
+ example: null
+ nullable: true
+ type: object
+ vpc:
+ additionalProperties: false
+ description: The value is `null` if this is not a VPC interface.
+ example: null
+ nullable: true
+ type: object
+ title: Public interface
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-public.yaml
+ - additionalProperties: false
+ description: A VLAN interface configuration defines the properties
+ and settings for a specific VLAN interface in the Linode network.
+ properties:
+ created:
+ description: When the interface was created.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ The unique ID for this interface.
+ For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces),
+ a unique `id` is not generated for the interface and its value
+ is set to 0.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ mac_address:
+ description: "A 48-bit MAC address used to identify the Linode\u2019\
+ s interface. The `mac_address` of an interface remains constant\
+ \ and does not change."
+ example: 22:00:AB:CD:EF:01
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ public:
+ description: The value is `null` if this isn't a public interface.
+ example: null
+ nullable: true
+ type: object
+ updated:
+ description: When the interface was last updated.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 4
+ version:
+ description: Interface version number that is incremented when
+ the interface is updated.
+ example: 1
+ type: integer
+ x-linode-cli-display: 5
+ vlan:
+ additionalProperties: false
+ description: VLAN interface type.
+ properties:
+ ipam_address:
+ description: This VLAN interface's private IPv4 address
+ in classless inter-domain routing (CIDR) notation.
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 7
+ vlan_label:
+ description: The VLAN's label. VLAN interfaces on the same
+ Linode must have a unique `vlan_label`.
+ example: my-vlan
+ type: string
+ x-linode-cli-display: 6
+ type: object
+ vpc:
+ description: The value is `null` if this isn't a VPC interface.
+ example: null
+ nullable: true
+ type: object
+ title: VLAN interface
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-vlan.yaml
+ - additionalProperties: false
+ description: A VPC interface configuration defines settings for
+ a specific VPC interface in the Linode network.
+ properties:
+ created:
+ description: When the interface was created.
+ example: '2025-01-01 00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ default_route:
+ additionalProperties: false
+ description: Indicates if the interface serves as a default
+ route.
+ properties:
+ ipv4:
+ default: false
+ description: Indicates if the interface serves as the IPv4
+ default route. Only one interface per Linode can have
+ the IPv4 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ type: object
+ id:
+ description: __Read-only__ The unique ID for this interface.
+ For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces),
+ a unique `id` is not generated for the interface and its value
+ is set to 0.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ mac_address:
+ description: "A 48-bit MAC address used to identify the Linode\u2019\
+ s interface. The `mac_address` of an interface remains constant\
+ \ and does not change."
+ example: 22:00:AB:CD:EF:01
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ public:
+ additionalProperties: false
+ description: The value is `null` if this is not a public interface.
+ example: null
+ nullable: true
+ type: object
+ updated:
+ description: When the interface last updated.
+ example: '2025-01-01 00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 4
+ version:
+ description: The version number of the interface configuration,
+ incremented each time the interface is updated.
+ example: 1
+ type: integer
+ x-linode-cli-display: 6
+ vlan:
+ additionalProperties: false
+ description: The value is `null` if this is not a VLAN interface.
+ example: null
+ nullable: true
+ type: object
+ vpc:
+ additionalProperties: false
+ description: VPC interface type.
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: The interface's IPv4 `addresses` and `ranges`
+ configuration.
+ properties:
+ addresses:
+ description: IPv4 address settings for this VPC interface.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: The VPC subnet IPv4 address.
+ example: 192.168.22.3
+ type: string
+ x-linode-cli-display: 9
+ nat_1_1_address:
+ description: The 1:1 NAT IPv4 address used to
+ associate a public IPv4 address with the interface's
+ VPC subnet IPv4 address.
+ example: null
+ nullable: true
+ type: string
+ x-linode-cli-display: 11
+ primary:
+ description: Indicates if the IPv4 address is
+ used to set up a source address for routes inside
+ the Linode for the corresponding network interface.
+ example: true
+ type: boolean
+ x-linode-cli-display: 10
+ type: object
+ type: array
+ ranges:
+ description: VPC IPv4 ranges.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ description: CIDR notation of a range (`1.2.3.4/24`)
+ or prefix only (`/24`).
+ example: 192.168.22.16/28
+ type: string
+ x-linode-cli-display: 12
+ type: object
+ type: array
+ type: object
+ subnet_id:
+ description: VPC subnet's unique identifier.
+ example: 1234
+ type: integer
+ x-linode-cli-display: 8
+ vpc_id:
+ description: VPC's unique identifier.
+ example: 1234
+ type: integer
+ x-linode-cli-display: 7
+ type: object
+ title: VPC interface
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-vpc.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface.yaml
+ description: The Linode interface was successfully updated.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Update a Linode interface
+ tags:
+ - Linode interfaces
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: "linode-cli linodes interface-update $linodeId $interfaceId \\\n\
+ \ --default_route.ipv4 true \\\n --default_route.ipv6 false \\\n --public.ipv4.addresses\
+ \ '[{\"address\": \"192.0.2.141\", \"primary\": true}, {\"address\": \"\
+ auto\", \"primary\": false}]' \\\n --public.ipv6.ranges '[{\"range\"\
+ : \"2001:0db8\"::1/64\"}, {\"range\": \"/64\"}]'"
+ title: 'CLI: Public interface'
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: "linode-cli linodes interface-update $linodeId $interfaceId \\\n\
+ \ --vlan.vlan_label my-vlan \\\n --vlan.ipam_address 192.168.2.2/24"
+ title: 'CLI: VLAN interface'
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: "linode-cli linodes interface-update $linodeId $interfaceId \\\n\
+ \ --default_route.ipv4 true \\\n --vpc.subnet_id 321 \\\n --vpc.ipv4.addresses\
+ \ '[{\"address\": \"10.0.0.1\", \"primary\": true, \"nat_1_1_address\"\
+ : \"auto\"}, {\"address\": \"auto\", \"primary\": false, \"nat_1_1_address\"\
+ : null}]' \\\n --vpc.ipv4.ranges '[{\"range\": \"/28\"}, {\"range\":\
+ \ \"10.11.12.0/24\"}]'"
+ title: 'CLI: VPC interface'
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: interface-update
+ x-linode-grant: read_write
+ delete:
+ description: '__Beta__ Deletes a Linode interface on a specific Linode. To access
+ this operation, you need the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ for the Linode. You can''t delete an active interface. First, you need to
+ shut down the associated Linode.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-linode-interface
+ operationId: delete-linode-interface
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ created: '2024-01-01T00:01:01'
+ default_route:
+ ipv4: true
+ id: 1234
+ mac_address: 22:00:AB:CD:EF:01
+ public: null
+ updated: '2024-01-01T00:01:01'
+ version: 1
+ vlan: null
+ vpc:
+ ipv4:
+ addresses:
+ - address: 192.168.22.3
+ primary: true
+ ranges:
+ - range: 192.168.22.16/28
+ - range: 192.168.22.32/28
+ subnet_id: 1234
+ vpc_id: 1234
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ description: A Linode interface is successfully deleted.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Delete a Linode interface
+ tags:
+ - Linode interfaces
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli linodes interface-delete $linodeId $interfaceId
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: interface-delete
+ x-linode-grant: read_write
+ parameters:
+ - description: The `id` of the Linode.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id.yaml
+ - description: The `id` of the Linode interface.
+ example: '{{interfaceId}}'
+ in: path
+ name: interfaceId
+ required: true
+ schema:
+ example: 1234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-interface-id-path.yaml
+ x-akamai:
+ file-path: paths/linode-interface.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/interfaces/{interfaceId}
+ status: BETA
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/interfaces/{interfaceId}/firewalls:
+ get:
+ description: '__Beta__ Lists firewalls assigned to an interface.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-interface-firewalls
+ operationId: get-linode-interface-firewalls
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - created: '2025-01-01T00:01:01'
+ id: 123
+ label: firewall123
+ rules:
+ inbound:
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 192.0.2.0/24
+ - 192.0.2.148/24
+ ipv6:
+ - 2001:DB8::/128
+ description: An example firewall rule description.
+ label: firewallrule123
+ ports: 22-24, 80, 443
+ protocol: TCP
+ inbound_policy: DROP
+ outbound:
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 192.0.2.0/24
+ - 192.0.2.156/24
+ ipv6:
+ - 2001:DB8::/128
+ description: An example firewall rule description.
+ label: firewallrule123
+ ports: 22-24, 80, 443
+ protocol: TCP
+ outbound_policy: DROP
+ status: enabled
+ tags:
+ - example tag
+ - another example
+ updated: '2025-01-02T00:01:01'
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: An envelope for paginated response. When accessing
+ a collection through a GET endpoint, the results are wrapped in
+ this envelope which includes metadata about those results. Results
+ are presented within a `data` array. See [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: A resource that controls incoming and outgoing
+ network traffic to a compute service. Only one enabled Firewall
+ can be attached to a particular service at any given time.
+ [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device)
+ to assign a Firewall to a service. Currently, Firewalls
+ can assigned to Linode compute instances and NodeBalancers.
+ properties:
+ created:
+ description: __Filterable__, __Read-only__ When this Firewall
+ was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ id:
+ description: __Filterable__, __Read-only__ The Firewall's
+ unique ID.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: "__Filterable__ The Firewall's label, for\
+ \ display purposes only.\n\nFirewall labels have the\
+ \ following constraints:\n\n - Must begin and end with\
+ \ an alphanumeric character.\n - May only consist of\
+ \ alphanumeric characters, hyphens (`-`), underscores\
+ \ (`_`) or periods (`.`).\n - Cannot have two hyphens\
+ \ (`--`), underscores (`__`) or periods (`..`) in a\
+ \ row.\n - Must be between 3 and 32 characters.\n \
+ \ - Must be unique."
+ example: firewall123
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ rules:
+ additionalProperties: false
+ description: 'The inbound and outbound access rules to
+ apply to the Firewall.
+
+
+ A Firewall may have up to 25 rules across its inbound
+ and outbound rulesets.
+
+
+ Multiple rules are applied in order. If two rules conflict,
+ the first rule takes precedence. For example, if the
+ first rule accepts inbound traffic from an address,
+ and the second rule drops inbound traffic the same address,
+ the first rule applies and inbound traffic from that
+ address is accepted.'
+ properties:
+ fingerprint:
+ description: __Read-only__ The fingerprint is a 32-bit
+ hash. It represents the firewall rules as an 8 character
+ hex string. You can use `fingerprint` to compare
+ rule versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: The inbound rules for the firewall, as
+ a JSON array.
+ items:
+ additionalProperties: false
+ description: One of a Firewall's inbound or outbound
+ access rules. The `ports` property can be used
+ to allow traffic on a comma-separated list of
+ different ports.
+ properties:
+ action:
+ description: Controls whether traffic is accepted
+ or dropped by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule,
+ or the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: 'The IPv4 or IPv6 addresses affected
+ by this rule. A rule can have up to 255 total
+ addresses or networks listed across its `ipv4`
+ and `ipv6` arrays. A network and a single
+ IP are treated as equivalent when accounting
+ for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.'
+ properties:
+ ipv4:
+ description: 'A list of IPv4 addresses or
+ networks. Addresses must be in IP/mask
+ format. Must not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.'
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: 'A list of IPv6 addresses or
+ networks. Addresses must be in IP/mask
+ format and must not include zone_id notation
+ as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this rule.'
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: Used to describe this rule. For
+ display purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: Used to identify this rule. For
+ display purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: 'A string representing the port
+ or ports affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.'
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: The type of network traffic affected
+ by this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: The default behavior for inbound traffic.
+ This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: The outbound rules for the firewall,
+ as a JSON array.
+ items:
+ additionalProperties: false
+ description: One of a Firewall's inbound or outbound
+ access rules. The `ports` property can be used
+ to allow traffic on a comma-separated list of
+ different ports.
+ properties:
+ action:
+ description: Controls whether traffic is accepted
+ or dropped by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule,
+ or the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: 'The IPv4 or IPv6 addresses affected
+ by this rule. A rule can have up to 255 total
+ addresses or networks listed across its `ipv4`
+ and `ipv6` arrays. A network and a single
+ IP are treated as equivalent when accounting
+ for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.'
+ properties:
+ ipv4:
+ description: 'A list of IPv4 addresses or
+ networks. Addresses must be in IP/mask
+ format. Must not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.'
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: 'A list of IPv6 addresses or
+ networks. Addresses must be in IP/mask
+ format and must not include zone_id notation
+ as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this rule.'
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: Used to describe this rule. For
+ display purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: Used to identify this rule. For
+ display purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: 'A string representing the port
+ or ports affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.'
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: The type of network traffic affected
+ by this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: The default behavior for outbound traffic.
+ This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: __Read-only__ The firewall's rule version.
+ The first version is `1`. The version number is
+ incremented when the firewall's rules change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ status:
+ description: "__Read-only__ The status of this Firewall.\n\
+ \n - When a Firewall is first created its status is\
+ \ `enabled`.\n - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall)\
+ \ operation to set a Firewall's status to `enabled`\
+ \ or `disabled`.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall)\
+ \ operation to delete a Firewall."
+ enum:
+ - enabled
+ - disabled
+ - deleted
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ tags:
+ description: __Filterable__ An array of tags applied to
+ this object. Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Filterable__, __Read-only__ When this Firewall
+ was last updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-linode-interfaces-firewalls-200.yaml
+ description: Returns a paginated list of firewalls assigned to an interface.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_only
+ summary: List Linode interface firewalls
+ tags:
+ - Linode interfaces
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli linodes interface-firewalls-list $linodeId $interfaceId
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: interface-firewalls-list
+ x-linode-grant: read_only
+ parameters:
+ - description: The `id` of the Linode.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id.yaml
+ - description: The `id` of the Linode interface.
+ example: '{{interfaceId}}'
+ in: path
+ name: interfaceId
+ required: true
+ schema:
+ example: 1234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-interface-id-path.yaml
+ x-akamai:
+ file-path: paths/linode-interface-firewalls.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/interfaces/{interfaceId}/firewalls
+ status: BETA
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/ips:
+ post:
+ 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](https://techdocs.akamai.com/linode-api/reference/post-ticket).
+ You may not add more than one private IPv4 address to a single Linode.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-add-linode-ip
+ operationId: post-add-linode-ip
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ public:
+ description: Whether to create a public or private IPv4 address.
+ example: '{{public}}'
+ type: boolean
+ type:
+ description: The type of address you are allocating. Only IPv4 addresses
+ may be allocated through this operation.
+ enum:
+ - ipv4
+ example: '{{type}}'
+ type: string
+ required:
+ - type
+ - public
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-add-linode-ip.yaml
+ x-example:
+ x-ref: ../examples/post-add-linode-ip.json
+ description: Information about the address you are creating.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An IP address that exists in Linode's system, either
+ IPv4 or IPv6.
+ properties:
+ address:
+ description: __Read-only__ The IP address.
+ example: 97.107.143.141
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ gateway:
+ description: __Read-only__ The default gateway for this address.
+ example: 97.107.143.1
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ interface_id:
+ description: __Beta__, __Read-only__ The Linode interface ID that
+ this IP address is assigned to. This value is `null` if a Linode
+ interface is not assigned, or if the IP is assigned to a legacy
+ configuration profile interface.
+ example: 456
+ nullable: true
+ readOnly: true
+ type: integer
+ x-akamai:
+ status: BETA
+ x-linode-cli-display: 7
+ linode_id:
+ description: __Read-only__ The ID of the Linode this address currently
+ belongs to. For IPv4 addresses, this is by default the Linode
+ that this address was assigned to on creation, and these addresses
+ may be moved using the [Assign IPv4s to Linodes](https://techdocs.akamai.com/linode-api/reference/post-assign-ipv4s)
+ operation. For SLAAC and link-local addresses, this value can't
+ be changed.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 6
+ prefix:
+ description: __Read-only__ The number of bits set in the subnet
+ mask.
+ example: 24
+ readOnly: true
+ type: integer
+ public:
+ description: __Read-only__ Whether this is a public or private
+ IP address.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ rdns:
+ description: The reverse DNS assigned to this address. For public
+ IPv4 addresses, this will be set to a default value provided
+ by Linode if not explicitly set.
+ example: test.example.org
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ region:
+ description: __Read-only__ The Region this IP address resides
+ in.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ subnet_mask:
+ description: __Read-only__ The mask that separates host bits from
+ network bits for this address.
+ example: 255.255.255.0
+ format: ip
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of address this is.
+ enum:
+ - ipv4
+ - ipv6
+ - ipv6/pool
+ - ipv6/range
+ example: ipv4
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ vpc_nat_1_1:
+ additionalProperties: false
+ description: "IPv4 address configured as a 1:1 NAT for this Interface.\
+ \ If no address is configured as a 1:1 NAT, `null` is returned.\n\
+ \n> \U0001F4D8\n>\n> Only allowed for `vpc` type interfaces."
+ properties:
+ address:
+ description: The IPv4 address that is configured as a 1:1
+ NAT for this VPC interface.
+ example: 192.168.0.42
+ format: ipv4
+ type: string
+ subnet_id:
+ description: The `id` of the VPC Subnet for this interface.
+ example: 101
+ nullable: false
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured
+ for this interface.
+ example: 111
+ nullable: false
+ readOnly: true
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/ip-address.yaml
+ x-example:
+ x-ref: ../examples/post-add-linode-ip-200.json
+ description: IP address was successfully allocated.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Allocate an IPv4 address
+ tags:
+ - IP addresses
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes ip-add 123 \\\n --type ipv4 \\\n --public\
+ \ true"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: ip-add
+ x-linode-grant: read_write
+ get:
+ description: "Returns networking information for a single Linode.\n\n> \U0001F4D8\
+ \n>\n> If the target Linode has several configuration profiles that include\
+ \ a Virtual Private Cloud (VPC) interface, the response lists address information\
+ \ for all of the VPCs.\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-ips
+ operationId: get-linode-ips
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: __Read-only__ Information about this Linode's IPv4
+ addresses.
+ properties:
+ private:
+ description: __Read-only__ A list of private IP Address objects
+ belonging to this Linode.
+ items:
+ additionalProperties: false
+ description: A private IPv4 address that exists in Linode's
+ system.
+ properties:
+ address:
+ description: __Read-only__ The private IPv4 address.
+ example: 192.168.133.234
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ gateway:
+ description: __Read-only__ The default gateway for this
+ address.
+ example: null
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ linode_id:
+ description: __Read-only__ The ID of the Linode this
+ address currently belongs to.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 6
+ prefix:
+ description: __Read-only__ The number of bits set in
+ the subnet mask.
+ example: 17
+ readOnly: true
+ type: integer
+ public:
+ description: __Read-only__ Whether this is a public
+ or private IP address.
+ example: false
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ rdns:
+ description: The reverse DNS assigned to this address.
+ example: null
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ region:
+ description: __Read-only__ The Region this address resides
+ in.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ subnet_mask:
+ description: __Read-only__ The mask that separates host
+ bits from network bits for this address.
+ example: 255.255.128.0
+ format: ip
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of address this
+ is.
+ example: ipv4
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/ip-address-private.yaml
+ readOnly: true
+ type: array
+ public:
+ description: __Read-only__ A list of public IP Address objects
+ belonging to this Linode.
+ items:
+ additionalProperties: false
+ description: An IP address that exists in Linode's system,
+ either IPv4 or IPv6.
+ properties:
+ address:
+ description: __Read-only__ The IP address.
+ example: 97.107.143.141
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ gateway:
+ description: __Read-only__ The default gateway for this
+ address.
+ example: 97.107.143.1
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ interface_id:
+ description: __Beta__, __Read-only__ The Linode interface
+ ID that this IP address is assigned to. This value
+ is `null` if a Linode interface is not assigned, or
+ if the IP is assigned to a legacy configuration profile
+ interface.
+ example: 456
+ nullable: true
+ readOnly: true
+ type: integer
+ x-akamai:
+ status: BETA
+ x-linode-cli-display: 7
+ linode_id:
+ description: __Read-only__ The ID of the Linode this
+ address currently belongs to. For IPv4 addresses,
+ this is by default the Linode that this address was
+ assigned to on creation, and these addresses may be
+ moved using the [Assign IPv4s to Linodes](https://techdocs.akamai.com/linode-api/reference/post-assign-ipv4s)
+ operation. For SLAAC and link-local addresses, this
+ value can't be changed.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 6
+ prefix:
+ description: __Read-only__ The number of bits set in
+ the subnet mask.
+ example: 24
+ readOnly: true
+ type: integer
+ public:
+ description: __Read-only__ Whether this is a public
+ or private IP address.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ rdns:
+ description: The reverse DNS assigned to this address.
+ For public IPv4 addresses, this will be set to a default
+ value provided by Linode if not explicitly set.
+ example: test.example.org
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ region:
+ description: __Read-only__ The Region this IP address
+ resides in.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ subnet_mask:
+ description: __Read-only__ The mask that separates host
+ bits from network bits for this address.
+ example: 255.255.255.0
+ format: ip
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of address this
+ is.
+ enum:
+ - ipv4
+ - ipv6
+ - ipv6/pool
+ - ipv6/range
+ example: ipv4
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ vpc_nat_1_1:
+ additionalProperties: false
+ description: "IPv4 address configured as a 1:1 NAT for\
+ \ this Interface. If no address is configured as a\
+ \ 1:1 NAT, `null` is returned.\n\n> \U0001F4D8\n>\n\
+ > Only allowed for `vpc` type interfaces."
+ properties:
+ address:
+ description: The IPv4 address that is configured
+ as a 1:1 NAT for this VPC interface.
+ example: 192.168.0.42
+ format: ipv4
+ type: string
+ subnet_id:
+ description: The `id` of the VPC Subnet for this
+ interface.
+ example: 101
+ nullable: false
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured
+ for this interface.
+ example: 111
+ nullable: false
+ readOnly: true
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/ip-address.yaml
+ readOnly: true
+ type: array
+ reserved:
+ description: __Read-only__ A list of reserved IP Address objects
+ belonging to this Linode.
+ items:
+ additionalProperties: false
+ description: An IP address that exists in Linode's system,
+ either IPv4 or IPv6.
+ properties:
+ address:
+ description: __Read-only__ The IP address.
+ example: 97.107.143.141
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ gateway:
+ description: __Read-only__ The default gateway for this
+ address.
+ example: 97.107.143.1
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ interface_id:
+ description: __Beta__, __Read-only__ The Linode interface
+ ID that this IP address is assigned to. This value
+ is `null` if a Linode interface is not assigned, or
+ if the IP is assigned to a legacy configuration profile
+ interface.
+ example: 456
+ nullable: true
+ readOnly: true
+ type: integer
+ x-akamai:
+ status: BETA
+ x-linode-cli-display: 7
+ linode_id:
+ description: __Read-only__ The ID of the Linode this
+ address currently belongs to. For IPv4 addresses,
+ this is by default the Linode that this address was
+ assigned to on creation, and these addresses may be
+ moved using the [Assign IPv4s to Linodes](https://techdocs.akamai.com/linode-api/reference/post-assign-ipv4s)
+ operation. For SLAAC and link-local addresses, this
+ value can't be changed.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 6
+ prefix:
+ description: __Read-only__ The number of bits set in
+ the subnet mask.
+ example: 24
+ readOnly: true
+ type: integer
+ public:
+ description: __Read-only__ Whether this is a public
+ or private IP address.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ rdns:
+ description: The reverse DNS assigned to this address.
+ For public IPv4 addresses, this will be set to a default
+ value provided by Linode if not explicitly set.
+ example: test.example.org
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ region:
+ description: __Read-only__ The Region this IP address
+ resides in.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ subnet_mask:
+ description: __Read-only__ The mask that separates host
+ bits from network bits for this address.
+ example: 255.255.255.0
+ format: ip
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of address this
+ is.
+ enum:
+ - ipv4
+ - ipv6
+ - ipv6/pool
+ - ipv6/range
+ example: ipv4
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ vpc_nat_1_1:
+ additionalProperties: false
+ description: "IPv4 address configured as a 1:1 NAT for\
+ \ this Interface. If no address is configured as a\
+ \ 1:1 NAT, `null` is returned.\n\n> \U0001F4D8\n>\n\
+ > Only allowed for `vpc` type interfaces."
+ properties:
+ address:
+ description: The IPv4 address that is configured
+ as a 1:1 NAT for this VPC interface.
+ example: 192.168.0.42
+ format: ipv4
+ type: string
+ subnet_id:
+ description: The `id` of the VPC Subnet for this
+ interface.
+ example: 101
+ nullable: false
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured
+ for this interface.
+ example: 111
+ nullable: false
+ readOnly: true
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/ip-address.yaml
+ readOnly: true
+ type: array
+ shared:
+ description: __Read-only__ A list of shared IP Address objects
+ assigned to this Linode.
+ items:
+ additionalProperties: false
+ description: An IP address that exists in Linode's system,
+ either IPv4 or IPv6.
+ properties:
+ address:
+ description: __Read-only__ The IP address.
+ example: 97.107.143.141
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ gateway:
+ description: __Read-only__ The default gateway for this
+ address.
+ example: 97.107.143.1
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ interface_id:
+ description: __Beta__, __Read-only__ The Linode interface
+ ID that this IP address is assigned to. This value
+ is `null` if a Linode interface is not assigned, or
+ if the IP is assigned to a legacy configuration profile
+ interface.
+ example: 456
+ nullable: true
+ readOnly: true
+ type: integer
+ x-akamai:
+ status: BETA
+ x-linode-cli-display: 7
+ linode_id:
+ description: __Read-only__ The ID of the Linode this
+ address currently belongs to. For IPv4 addresses,
+ this is by default the Linode that this address was
+ assigned to on creation, and these addresses may be
+ moved using the [Assign IPv4s to Linodes](https://techdocs.akamai.com/linode-api/reference/post-assign-ipv4s)
+ operation. For SLAAC and link-local addresses, this
+ value can't be changed.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 6
+ prefix:
+ description: __Read-only__ The number of bits set in
+ the subnet mask.
+ example: 24
+ readOnly: true
+ type: integer
+ public:
+ description: __Read-only__ Whether this is a public
+ or private IP address.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ rdns:
+ description: The reverse DNS assigned to this address.
+ For public IPv4 addresses, this will be set to a default
+ value provided by Linode if not explicitly set.
+ example: test.example.org
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ region:
+ description: __Read-only__ The Region this IP address
+ resides in.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ subnet_mask:
+ description: __Read-only__ The mask that separates host
+ bits from network bits for this address.
+ example: 255.255.255.0
+ format: ip
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of address this
+ is.
+ enum:
+ - ipv4
+ - ipv6
+ - ipv6/pool
+ - ipv6/range
+ example: ipv4
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ vpc_nat_1_1:
+ additionalProperties: false
+ description: "IPv4 address configured as a 1:1 NAT for\
+ \ this Interface. If no address is configured as a\
+ \ 1:1 NAT, `null` is returned.\n\n> \U0001F4D8\n>\n\
+ > Only allowed for `vpc` type interfaces."
+ properties:
+ address:
+ description: The IPv4 address that is configured
+ as a 1:1 NAT for this VPC interface.
+ example: 192.168.0.42
+ format: ipv4
+ type: string
+ subnet_id:
+ description: The `id` of the VPC Subnet for this
+ interface.
+ example: 101
+ nullable: false
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured
+ for this interface.
+ example: 111
+ nullable: false
+ readOnly: true
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/ip-address.yaml
+ readOnly: true
+ type: array
+ vpc:
+ description: __Read-only__ A list of Virtual Private Cloud
+ (VPC)-specific addresses or ranges for the Linode.
+ items:
+ additionalProperties: false
+ description: A VPC IP address that exists in Linode's system,
+ specific to the response for the [List VPC IP addresses](https://techdocs.akamai.com/linode-api/reference/get-vpcs-ips)
+ operation. Returned as an empty set for Linodes that are
+ not part of a VPC.
+ properties:
+ active:
+ description: __Filterable__, __Read-only__ Returns `true`
+ if the VPC interface is in use, meaning that the Linode
+ was powered on using the `config_id` to which the
+ interface belongs. Otherwise returns `false`.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ address:
+ description: __Read-only__ An IPv4 address configured
+ for this VPC interface. These follow the [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918)
+ private address format. Displayed as `null` if an
+ `address_range`.
+ example: 192.0.2.141
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ address_range:
+ description: __Read-only__ A range of IPv4 addresses
+ configured for this VPC interface. Displayed as `null`
+ if a single `address`.
+ nullable: true
+ readOnly: true
+ type: string
+ config_id:
+ description: __Filterable__, __Read-only__ The globally
+ general entity identifier for the Linode configuration
+ profile that includes the VPC. If this is a VPC Linode
+ interface, the value is `null`.
+ example: 4567
+ nullable: true
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ gateway:
+ description: __Read-only__ The default gateway for the
+ VPC subnet that the IP or IP range belongs to.
+ example: 192.0.2.1
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ interface_id:
+ description: __Beta__, __Read-only__ The globally general
+ API entity identifier for the Linode interface.
+ example: 2435
+ readOnly: true
+ type: integer
+ x-akamai:
+ status: BETA
+ linode_id:
+ description: __Filterable__, __Read-only__ The identifier
+ for the Linode the VPC interface currently belongs
+ to.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ nat_1_1:
+ description: __Read-only__ The public IP address used
+ for NAT 1:1 with the VPC. This is empty if NAT 1:1
+ isn't used.
+ example: 192.168.0.42
+ format: ip
+ readOnly: true
+ type: string
+ prefix:
+ description: __Read-only__ The number of bits set in
+ the `subnet_mask`.
+ example: 24
+ nullable: true
+ readOnly: true
+ type: integer
+ region:
+ description: __Filterable__, __Read-only__ The region
+ of the VPC.
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ subnet_id:
+ description: The `id` of the VPC Subnet for this interface.
+ example: 101
+ nullable: false
+ type: integer
+ x-linode-cli-display: 7
+ subnet_mask:
+ description: __Read-only__ The mask that separates host
+ bits from network bits for the `address` or `address_range`.
+ example: 255.255.255.0
+ format: ip
+ readOnly: true
+ type: string
+ vpc_id:
+ description: __Filterable__, __Read-only__ The unique
+ globally general API entity identifier for the VPC.
+ example: 7654
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/ip-addresses-vpc.yaml
+ readOnly: true
+ type: array
+ readOnly: true
+ type: object
+ ipv6:
+ additionalProperties: false
+ description: __Read-only__ Information about this Linode's IPv6
+ addresses.
+ properties:
+ global:
+ description: A list of IPv6 range objects assigned to this
+ Linode.
+ items:
+ additionalProperties: false
+ description: An object representing an IPv6 range.
+ properties:
+ prefix:
+ description: The prefix length of the address. The total
+ number of addresses that can be assigned from this
+ range is calculated as 2(128 - prefix length) .
+ example: 64
+ type: integer
+ x-linode-cli-display: 2
+ range:
+ description: __Read-only__ The IPv6 address of this
+ range.
+ example: '2600:3c01::'
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ region:
+ description: __Read-only__ The region for this range
+ of IPv6 addresses.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ route_target:
+ description: The IPv6 SLAAC address.
+ example: 2600:3c01::ffff:ffff:ffff:ffff
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/ipv6-range.yaml
+ type: array
+ link_local:
+ additionalProperties: false
+ description: A link-local IPv6 address that exists in Linode's
+ system.
+ properties:
+ address:
+ description: __Read-only__ The IPv6 link-local address.
+ example: fe80::f03c:91ff:fe24:3a2f
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ gateway:
+ description: __Read-only__ The default gateway for this
+ address.
+ example: fe80::1
+ readOnly: true
+ type: string
+ linode_id:
+ description: __Read-only__ The ID of the Linode this address
+ currently belongs to.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 6
+ prefix:
+ description: __Read-only__ The network prefix.
+ example: 64
+ readOnly: true
+ type: integer
+ public:
+ description: __Read-only__ Whether this is a public or
+ private IP address.
+ example: false
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ rdns:
+ description: The reverse DNS assigned to this address.
+ example: null
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ region:
+ description: __Filterable__, __Read-only__ The Region
+ this address resides in.
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ subnet_mask:
+ description: __Read-only__ The subnet mask.
+ example: 'ffff:ffff:ffff:ffff::'
+ format: ip
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of address this is.
+ example: ipv6
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/ip-address-v6-link-local.yaml
+ slaac:
+ additionalProperties: false
+ description: A SLAAC IPv6 address that exists in Linode's
+ system.
+ properties:
+ address:
+ description: __Read-only__ The address.
+ example: 2600:3c03::f03c:91ff:fe24:3a2f
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ gateway:
+ description: __Read-only__ The default gateway for this
+ address.
+ example: fe80::1
+ readOnly: true
+ type: string
+ linode_id:
+ description: __Read-only__ The ID of the Linode this address
+ currently belongs to.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 6
+ prefix:
+ description: __Read-only__ The network prefix.
+ example: 64
+ readOnly: true
+ type: integer
+ public:
+ description: __Read-only__ Whether this is a public or
+ private IP address.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ rdns:
+ description: The reverse DNS assigned to this address.
+ example: null
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ region:
+ description: __Filterable__, __Read-only__ The Region
+ this address resides in.
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ subnet_mask:
+ description: __Read-only__ The subnet mask.
+ example: 'ffff:ffff:ffff:ffff::'
+ format: ip
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of address this is.
+ example: ipv6
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/ip-address-v6-slaac.yaml
+ readOnly: true
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-linode-ips-200.yaml
+ x-example:
+ x-ref: ../examples/get-linode-ips-200.json
+ x-linode-cli-subtables:
+ - ipv4.public
+ - ipv4.private
+ - ipv4.shared
+ - ipv4.reserved
+ - ipv4.vpc
+ - ipv6.link_local
+ - ipv6.slaac
+ - ipv6.global
+ description: Requested Linode's networking configuration.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: Get networking information
+ tags:
+ - IP addresses
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes ips-list 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: ips-list
+ x-linode-grant: read_only
+ parameters:
+ - description: ID of the Linode to look up.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path.yaml
+ x-akamai:
+ file-path: paths/linode-ips.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/ips
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/ips/{address}:
+ get:
+ description: 'View information for a Linode''s set of IPs, its Linode interfaces
+ and VPC IPs and ranges.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-ip
+ operationId: get-linode-ip
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An IP address that exists in Linode's system, either
+ IPv4 or IPv6.
+ properties:
+ address:
+ description: __Read-only__ The IP address.
+ example: 97.107.143.141
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ gateway:
+ description: __Read-only__ The default gateway for this address.
+ example: 97.107.143.1
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ interface_id:
+ description: __Beta__, __Read-only__ The Linode interface ID that
+ this IP address is assigned to. This value is `null` if a Linode
+ interface is not assigned, or if the IP is assigned to a legacy
+ configuration profile interface.
+ example: 456
+ nullable: true
+ readOnly: true
+ type: integer
+ x-akamai:
+ status: BETA
+ x-linode-cli-display: 7
+ linode_id:
+ description: __Read-only__ The ID of the Linode this address currently
+ belongs to. For IPv4 addresses, this is by default the Linode
+ that this address was assigned to on creation, and these addresses
+ may be moved using the [Assign IPv4s to Linodes](https://techdocs.akamai.com/linode-api/reference/post-assign-ipv4s)
+ operation. For SLAAC and link-local addresses, this value can't
+ be changed.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 6
+ prefix:
+ description: __Read-only__ The number of bits set in the subnet
+ mask.
+ example: 24
+ readOnly: true
+ type: integer
+ public:
+ description: __Read-only__ Whether this is a public or private
+ IP address.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ rdns:
+ description: The reverse DNS assigned to this address. For public
+ IPv4 addresses, this will be set to a default value provided
+ by Linode if not explicitly set.
+ example: test.example.org
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ region:
+ description: __Read-only__ The Region this IP address resides
+ in.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ subnet_mask:
+ description: __Read-only__ The mask that separates host bits from
+ network bits for this address.
+ example: 255.255.255.0
+ format: ip
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of address this is.
+ enum:
+ - ipv4
+ - ipv6
+ - ipv6/pool
+ - ipv6/range
+ example: ipv4
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ vpc_nat_1_1:
+ additionalProperties: false
+ description: "IPv4 address configured as a 1:1 NAT for this Interface.\
+ \ If no address is configured as a 1:1 NAT, `null` is returned.\n\
+ \n> \U0001F4D8\n>\n> Only allowed for `vpc` type interfaces."
+ properties:
+ address:
+ description: The IPv4 address that is configured as a 1:1
+ NAT for this VPC interface.
+ example: 192.168.0.42
+ format: ipv4
+ type: string
+ subnet_id:
+ description: The `id` of the VPC Subnet for this interface.
+ example: 101
+ nullable: false
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured
+ for this interface.
+ example: 111
+ nullable: false
+ readOnly: true
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/ip-address.yaml
+ x-example:
+ x-ref: ../examples/get-linode-ip-200.json
+ description: A single IP address.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: Get a Linode's IP address
+ tags:
+ - IP addresses
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes ip-view 123 97.107.143.141
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: ip-view
+ x-linode-grant: read_only
+ put:
+ description: 'Updates the reverse DNS (RDNS) for a Linode''s IP Address. This
+ may be done for both IPv4 and IPv6 addresses.
+
+
+ Setting the RDNS to `null` for a public IPv4 address, resets it to the default
+ `ip.linodeusercontent.com` RDNS value.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-linode-ip
+ operationId: put-linode-ip
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ rdns:
+ description: The reverse DNS assigned to this address. For public
+ IPv4 addresses, this will be set to a default value provided by
+ Linode if not explicitly set.
+ example: '{{rdns}}'
+ nullable: true
+ type: string
+ required:
+ - rdns
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-linode-ip.yaml
+ x-example:
+ x-ref: ../examples/put-linode-ip.json
+ description: The information to update for the IP address.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An IP address that exists in Linode's system, either
+ IPv4 or IPv6.
+ properties:
+ address:
+ description: __Read-only__ The IP address.
+ example: 97.107.143.141
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ gateway:
+ description: __Read-only__ The default gateway for this address.
+ example: 97.107.143.1
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ interface_id:
+ description: __Beta__, __Read-only__ The Linode interface ID that
+ this IP address is assigned to. This value is `null` if a Linode
+ interface is not assigned, or if the IP is assigned to a legacy
+ configuration profile interface.
+ example: 456
+ nullable: true
+ readOnly: true
+ type: integer
+ x-akamai:
+ status: BETA
+ x-linode-cli-display: 7
+ linode_id:
+ description: __Read-only__ The ID of the Linode this address currently
+ belongs to. For IPv4 addresses, this is by default the Linode
+ that this address was assigned to on creation, and these addresses
+ may be moved using the [Assign IPv4s to Linodes](https://techdocs.akamai.com/linode-api/reference/post-assign-ipv4s)
+ operation. For SLAAC and link-local addresses, this value can't
+ be changed.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 6
+ prefix:
+ description: __Read-only__ The number of bits set in the subnet
+ mask.
+ example: 24
+ readOnly: true
+ type: integer
+ public:
+ description: __Read-only__ Whether this is a public or private
+ IP address.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ rdns:
+ description: The reverse DNS assigned to this address. For public
+ IPv4 addresses, this will be set to a default value provided
+ by Linode if not explicitly set.
+ example: test.example.org
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ region:
+ description: __Read-only__ The Region this IP address resides
+ in.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ subnet_mask:
+ description: __Read-only__ The mask that separates host bits from
+ network bits for this address.
+ example: 255.255.255.0
+ format: ip
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of address this is.
+ enum:
+ - ipv4
+ - ipv6
+ - ipv6/pool
+ - ipv6/range
+ example: ipv4
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ vpc_nat_1_1:
+ additionalProperties: false
+ description: "IPv4 address configured as a 1:1 NAT for this Interface.\
+ \ If no address is configured as a 1:1 NAT, `null` is returned.\n\
+ \n> \U0001F4D8\n>\n> Only allowed for `vpc` type interfaces."
+ properties:
+ address:
+ description: The IPv4 address that is configured as a 1:1
+ NAT for this VPC interface.
+ example: 192.168.0.42
+ format: ipv4
+ type: string
+ subnet_id:
+ description: The `id` of the VPC Subnet for this interface.
+ example: 101
+ nullable: false
+ type: integer
+ vpc_id:
+ description: __Read-only__ The `id` of the VPC configured
+ for this interface.
+ example: 111
+ nullable: false
+ readOnly: true
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/ip-address.yaml
+ x-example:
+ x-ref: ../examples/get-linode-ip-200.json
+ description: The updated IP address record.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Update an IP address's RDNS for a Linode
+ tags:
+ - IP addresses
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes ip-update 123 \\\n 203.0.113.1 \\\n --rdns\
+ \ test.example.org"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: ip-update
+ x-linode-grant: read_write
+ delete:
+ description: "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, or if the address has a 1:1 NAT with an active VPC Subnet address.\n\
+ \n> \U0001F4D8\n>\n> You can't use this operation to delete an IP assigned\
+ \ to a Linode interface. Run the [update the Linode interface](https://techdocs.akamai.com/linode-api/reference/put-linode-interface)\
+ \ operation instead.\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-linode-ip
+ operationId: delete-linode-ip
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-linode-ip-200.json
+ description: IP address successfully removed.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Delete an IPv4 address
+ tags:
+ - IP addresses
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes ip-delete 97.107.143.141
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: ip-delete
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the Linode.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-820d9f86.yaml
+ - description: The IP address.
+ example: '{{address}}'
+ in: path
+ name: address
+ required: true
+ schema:
+ format: ip
+ type: string
+ x-akamai:
+ file-path: parameters/address-path-59ea51e6.yaml
+ x-akamai:
+ file-path: paths/linode-ip-address.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/ips/{address}
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/migrate:
+ post:
+ 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 [List notifications](https://techdocs.akamai.com/linode-api/reference/get-notifications).
+ 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 [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions).
+ See our [Pricing Page](https://www.linode.com/pricing/) for Region-specific
+ pricing, which applies after migration is complete. 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.
+
+
+ `vpc` details
+
+
+ - Cross DC migrations don''t work for Linodes that have a `vpc` purpose legacy
+ configuration interface or a VPC Linode interface. They work for host migrations
+ within the same DC.
+
+ - See the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications)
+ guide for its specifications and limitations.
+
+
+ `vlan` details:
+
+
+ - Only Next Generation Network (NGN) data centers support VLANs. Run the [List
+ regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation
+ 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
+ or cloned because of an incompatibility, you will be prompted to select a
+ different data center or contact support.
+
+ - 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.
+
+ - See the [VLANs Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications)
+ guide to view additional specifications and limitations.
+
+
+ `public` details:
+
+
+ - If the Linode is using Linode interfaces, the destination region needs to
+ also support Linode interfaces.
+
+ - After migrating to a different data center, Linode public interfaces retain
+ the same number of IP addresses, but the IP addresses themselves change.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-migrate-linode-instance
+ operationId: post-migrate-linode-instance
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ placement_group:
+ additionalProperties: false
+ description: 'Include this to assign this Linode to an existing
+ [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/)
+ in the data center you''re migrating to. These constraints apply:
+
+
+ - If the target Linode is in a placement group, it will be removed
+ from it when migrating.
+
+ - The target placement group needs to be in the same `region`
+ you''re migrating to.
+
+ - The placement group needs to have capacity. Run the [Get a region](https://techdocs.akamai.com/linode-api/reference/get-region)
+ operation and note either the `maximum_linodes_per_pg` (strict)
+ or `maximum_linodes_per_flexible_pg` (flexible), based on your
+ selected `placement_group_policy`. These represent the Linode
+ limit per placement group, for each `placement_group_policy` type.
+ You can then run the [Get a placement group](https://techdocs.akamai.com/linode-api/reference/get-placement-group)
+ operation to review the Linodes in that group.'
+ properties:
+ id:
+ description: The placement group's ID. You need to provide it
+ for all operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: 1
+ required:
+ - id
+ type: object
+ region:
+ description: The region to which the Linode will be migrated. Must
+ be a valid region slug. A list of regions can be viewed by running
+ the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ operation. 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: '{{region}}'
+ type: string
+ type:
+ default: cold
+ description: 'Type of migration used in moving to a new host or
+ Linode type.
+
+
+ `warm`: the Linode will not power down until the migration is
+ complete.
+
+ Warm migrations are not available for DC migrations.
+
+
+ `cold`: the Linode will be powered down and migrated. When the
+ migration
+
+ is complete, the Linode will be powered on.'
+ enum:
+ - warm
+ - cold
+ example: '{{type}}'
+ type: string
+ upgrade:
+ default: false
+ 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: '{{upgrade}}'
+ type: boolean
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-migrate-linode-instance.yaml
+ x-example:
+ x-ref: ../examples/post-migrate-linode-instance.json
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-migrate-linode-instance-200.json
+ description: Scheduled migration started.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Launch a DC migration/pending host migration
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes migrate 123 \\\n --region us-central \\\n \
+ \ --placement_group.id 528"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: migrate
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Linode to migrate.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-1510d8f8.yaml
+ x-akamai:
+ file-path: paths/migrate.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/migrate
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/mutate:
+ post:
+ 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.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-mutate-linode-instance
+ operationId: post-mutate-linode-instance
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ allow_auto_disk_resize:
+ default: true
+ 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: '{{allow_auto_disk_resize}}'
+ type: boolean
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-mutate-linode-instance.yaml
+ x-example:
+ x-ref: ../examples/post-mutate-linode-instance.json
+ description: Whether to automatically resize disks or not.
+ required: false
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-mutate-linode-instance-200.json
+ description: Mutate started.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Upgrade a Linode
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes upgrade 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: upgrade
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Linode to mutate.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-ddb4b8aa.yaml
+ x-akamai:
+ file-path: paths/mutate.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/mutate
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/nodebalancers:
+ get:
+ description: 'Returns a list of NodeBalancers that are assigned to this Linode
+ and readable by the requesting User.
+
+
+ Read permission to a NodeBalancer can be given to a User by accessing the
+ [Update a user''s grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants)
+ operation.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-node-balancers
+ operationId: get-linode-node-balancers
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: Linode's load balancing solution. Can handle multiple
+ ports, SSL termination, and any number of backends. NodeBalancer
+ ports are configured with NodeBalancer configs, and each config
+ is given one or more NodeBalancer nodes that accepts traffic. The
+ traffic should be routed to the NodeBalancer's IP address,
+ for the NodeBalancer to handle routing individual requests
+ to backends.
+ properties:
+ client_conn_throttle:
+ description: Throttle TCP connections per second for TCP,
+ HTTP, and HTTPS configurations. Set to `0` (zero) to
+ disable throttling.
+ example: 10
+ maximum: 20
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 9
+ created:
+ description: __Read-only__ When this NodeBalancer was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ hostname:
+ description: __Read-only__ This NodeBalancer's hostname,
+ beginning with its IP address and ending with _.ip.linodeusercontent.com_.
+ example: 192.0.2.1.ip.linodeusercontent.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ id:
+ description: __Read-only__ This NodeBalancer's unique ID.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ipv4:
+ description: __Filterable__, __Read-only__ This NodeBalancer's
+ public IPv4 address.
+ example: 203.0.113.1
+ format: ip
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ ipv6:
+ description: __Read-only__ This NodeBalancer's public IPv6
+ address.
+ example: null
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ label:
+ description: __Filterable__ This NodeBalancer's label. These
+ must be unique on your Account.
+ example: balancer12345
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_]{3,32}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster:
+ additionalProperties: false
+ description: __Read-only__ This NodeBalancer's related LKE
+ cluster, if any. The value is `null` if this NodeBalancer
+ isn't related to an LKE cluster.
+ nullable: true
+ properties:
+ id:
+ description: The ID of the related LKE cluster.
+ example: 12345
+ type: string
+ label:
+ description: The label of the related LKE cluster.
+ example: lkecluster12345
+ type: string
+ type:
+ description: __Read-only__ The type for LKE clusters.
+ example: lkecluster
+ readOnly: true
+ type: string
+ url:
+ description: The URL where you can access the related
+ LKE cluster.
+ example: /v4/lke/clusters/12345
+ type: string
+ readOnly: true
+ type: object
+ x-linode-cli-display: 8
+ region:
+ description: __Filterable__, __Read-only__ The Region where
+ this NodeBalancer is located. NodeBalancers only support
+ backends in the same Region.
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ tags:
+ description: __Filterable__ An array of Tags applied to
+ this object. Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ transfer:
+ additionalProperties: false
+ description: __Read-only__ Information about the amount
+ of transfer this NodeBalancer has had so far this month.
+ properties:
+ in:
+ description: __Read-only__ The total outbound transfer,
+ in MB, used for this NodeBalancer this month.
+ example: 28.91200828552246
+ nullable: true
+ readOnly: true
+ type: number
+ out:
+ description: __Read-only__ The total inbound transfer,
+ in MB, used for this NodeBalancer this month.
+ example: 3.5487728118896484
+ nullable: true
+ readOnly: true
+ type: number
+ total:
+ description: __Read-only__ The total transfer, in MB,
+ used by this NodeBalancer this month.
+ example: 32.46078109741211
+ nullable: true
+ readOnly: true
+ type: number
+ readOnly: true
+ type: object
+ type:
+ description: __Read-only__ The type of NodeBalancer.
+ enum:
+ - common
+ - premium
+ example: premium
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this NodeBalancer was last
+ updated.
+ example: '2018-03-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: NodeBalancer
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer.yaml
+ type: array
+ page:
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-linode-node-balancers-200.yaml
+ x-example:
+ x-ref: ../examples/get-linode-node-balancers-200.json
+ description: Returns a paginated list of NodeBalancers.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: List Linode NodeBalancers
+ tags:
+ - NodeBalancers
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes nodebalancers 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: nodebalancers
+ x-linode-grant: read_only
+ parameters:
+ - description: ID of the Linode to look up.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-32b5e821.yaml
+ x-akamai:
+ file-path: paths/linode-node-balancers.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/nodebalancers
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/password:
+ post:
+ description: 'Resets the root password for this Linode.
+
+
+ - Your Linode must be [shut down](https://techdocs.akamai.com/linode-api/reference/post-shutdown-linode-instance)
+ for a password reset to complete.
+
+ - If your Linode has more than one disk (not counting its swap disk), run
+ the [Reset a disk root password](https://techdocs.akamai.com/linode-api/reference/post-reset-disk-password)
+ operation to update a specific disk''s root password.
+
+ - A `password_reset` event is generated when a root password reset is successful.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-reset-linode-password
+ operationId: post-reset-linode-password
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ root_pass:
+ 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: '{{root_pass}}'
+ type: string
+ required:
+ - root_pass
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-reset-linode-password.yaml
+ x-example:
+ x-ref: ../examples/post-reset-linode-password.json
+ description: This Linode's new root password.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-reset-linode-password-200.json
+ description: Password Reset.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Reset a Linode's root password
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes linode-reset-password 123 a$eCure4assw0rd!43v51
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: linode-reset-password
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Linode for which to reset its root password.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-9dcaaf12.yaml
+ x-akamai:
+ file-path: paths/linode-password.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/password
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/reboot:
+ post:
+ 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.
+
+
+ If the Linode is using Linode interfaces, where `interface_generation` is
+ set as `linode`, an error is returned if the Linode has to reboot without
+ any interface defined.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-reboot-linode-instance
+ operationId: post-reboot-linode-instance
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ config_id:
+ 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: '{{config_id}}'
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-reboot-linode-instance.yaml
+ x-example:
+ x-ref: ../examples/post-reboot-linode-instance.json
+ description: Optional reboot parameters.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-reboot-linode-instance-200.json
+ description: Reboot started.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Reboot a Linode
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes reboot 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: reboot
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the linode to reboot.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-84c49e3c.yaml
+ x-akamai:
+ file-path: paths/reboot.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/reboot
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/rebuild:
+ post:
+ description: "Rebuilds a Linode you have the `read_write` permission to modify.\n\
+ \nA rebuild first shuts down the Linode, deletes all disks and configuration\
+ \ profiles on the Linode, then deploys a new `image` to the Linode with the\
+ \ given attributes. Additionally:\n\n - Requires an `image` be supplied.\n\
+ \ - Requires a `root_pass` be supplied to use for the root User's Account.\n\
+ \ - It is recommended to supply SSH keys for the root User using the `authorized_keys`\
+ \ field.\n - Linodes utilizing Metadata (`\"has_user_data\": true`) should\
+ \ include `metadata.user_data` in the rebuild request to continue using the\
+ \ service.\n\nLinode interfaces don't change during a rebuild.\n\nDuring a\
+ \ rebuild, you can `enable` or `disable` local disk encryption. If disk encryption\
+ \ is not included in the request, the previous `disk_encryption` value is\
+ \ used. Disk encryption cannot be disabled if the compute instance is attached\
+ \ to a LKE nodepool.\n\nYou also have the option to resize the Linode to a\
+ \ different plan by including the `type` parameter with your request. Note\
+ \ that resizing involves migrating the Linode to a new hardware host, while\
+ \ rebuilding without resizing maintains the same hardware host. Resizing also\
+ \ requires significantly more time for completion of this operation. The following\
+ \ additional conditions apply:\n\n - The Linode must not have a pending migration.\n\
+ \ - Your Account cannot have an outstanding balance.\n - The Linode must\
+ \ not have more disk allocation than the new Type allows.\n - In that situation,\
+ \ you must first delete or resize the disk to be smaller.\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance
+ operationId: post-rebuild-linode-instance
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: Common properties for creating and rebuilding Linodes.
+ properties:
+ authorized_keys:
+ description: __Write-only__ A list of public SSH keys that will
+ be automatically appended to the root user's `~/.ssh/authorized_keys`
+ file when deploying from an Image.
+ example:
+ - ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer
+ items:
+ type: string
+ type: array
+ writeOnly: true
+ authorized_users:
+ description: __Write-only__ A list of usernames. If the usernames
+ have associated SSH keys, the keys will be appended to the root
+ users `~/.ssh/authorized_keys` file automatically when deploying
+ from an Image.
+ example:
+ - myUser
+ - secondaryUser
+ items:
+ type: string
+ type: array
+ writeOnly: true
+ booted:
+ default: true
+ description: __Write-only__ This field defaults to `true` if the
+ Linode is created with an Image or from a Backup. If it is deployed
+ from an Image or a Backup and you wish it to remain `offline`
+ after deployment, set this to `false`.
+ type: boolean
+ writeOnly: true
+ disk_encryption:
+ description: 'Local disk encryption ensures that your data stored
+ on Linodes is secured. Disk encryption protects against unauthorized
+ data access by keeping the data encrypted if the disk is ever
+ removed from the data center, decommissioned, or disposed of.
+ The platform manages the encryption and decryption for you.
+
+
+ By default, encryption is `enabled` on all Linodes. If you opted
+ out of encryption or if the Linode was created prior to local
+ disk encryption support, you can encrypt your data using [Rebuild](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance).'
+ enum:
+ - enabled
+ - disabled
+ type: string
+ x-linode-cli-display: 8
+ image:
+ description: 'An Image ID to deploy the Linode Disk from.
+
+
+ Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images)
+ operation with authentication to view all available Images.
+ Official Linode Images start with `linode/`, while your Account''s
+ Images start with `private/`. Creating a disk from a Private
+ Image requires `read_only` or `read_write` permissions for that
+ Image. Run the [Update a user''s grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants)
+ operation to adjust permissions for an Account Image.'
+ example: linode/debian9
+ type: string
+ metadata:
+ additionalProperties: false
+ description: __Write-only__ An object containing user-defined
+ data relevant to the creation of Linodes.
+ properties:
+ user_data:
+ description: 'Base64-encoded [cloud-config](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata-cloud-config/)
+ data.
+
+
+ Cannot be modified after provisioning. To update, use either
+ the [Clone a Linode](https://techdocs.akamai.com/linode-api/reference/post-clone-linode-instance)
+ or [Rebuild a Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance)
+ operations.
+
+
+ Must not be included when cloning to an existing Linode.
+
+
+ Unencoded data must not exceed 65535 bytes, or about 16kb
+ encoded.'
+ example: I2Nsb3VkLWNvbmZpZwpwYWNrYWdlX3VwZGF0ZTogdHJ1ZQpwYWNrYWdlX3VwZ3JhZGU6IHRydWU=
+ format: byte
+ type: string
+ type: object
+ writeOnly: true
+ root_pass:
+ description: '__Write-only__ This sets the root user''s password
+ on a newly created Linode Disk when deploying from an Image.
+
+
+ - __Required__ when creating a Linode Disk from an Image, including
+ when using a StackScript.
+
+
+ - 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: aComplexP@ssword
+ format: password
+ maxLength: 128
+ minLength: 7
+ type: string
+ writeOnly: true
+ stackscript_data:
+ description: 'This field is required only if the StackScript being
+ deployed requires input data from the User for successful completion.
+ See [User Defined Fields (UDFs)](https://www.linode.com/docs/products/tools/stackscripts/guides/write-a-custom-script/#declare-user-defined-fields-udfs)
+ for more details.
+
+
+ This field is required to be valid JSON.
+
+
+ Total length cannot exceed 65,535 characters.'
+ example:
+ gh_username: linode
+ maxLength: 65535
+ type: object
+ stackscript_id:
+ description: A StackScript ID that will cause the referenced StackScript
+ to be run during deployment of this Linode. A compatible `image`
+ is required to use a StackScript. To get a list of available
+ StackScript and their permitted Images, run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts).
+ This field cannot be used when deploying from a Backup or a
+ Private Image.
+ example: 10079
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/linode-request.yaml
+ - additionalProperties: false
+ properties:
+ type:
+ description: The ID of the [Linode type](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ to resize to with this request.
+ example: g6-standard-2
+ type: string
+ type: object
+ required:
+ - image
+ - root_pass
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-rebuild-linode-instance.yaml
+ x-example:
+ x-ref: ../examples/post-rebuild-linode-instance.json
+ description: The requested state your Linode will be rebuilt into.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ alerts:
+ additionalProperties: false
+ properties:
+ cpu:
+ description: 'The percentage of CPU usage required to trigger
+ an alert. If the average CPU usage over two hours exceeds
+ this value, we''ll send you an alert. Your Linode''s total
+ CPU capacity is represented as 100%, multiplied by its number
+ of cores.
+
+
+ For example, a two core Linode''s CPU capacity is represented
+ as 200%. If you want to be alerted at 90% of a two core
+ Linode''s CPU capacity, set the alert value to `180`.
+
+
+ The default value is 90% multiplied by the number of cores.
+
+
+ If the value is set to `0` (zero), the alert is disabled.'
+ example: 180
+ type: integer
+ io:
+ description: The amount of disk IO operation per second required
+ to trigger an alert. If the average disk IO over two hours
+ exceeds this value, we'll send you an alert. If set to `0`
+ (zero), this alert is disabled.
+ example: 10000
+ type: integer
+ network_in:
+ description: The amount of incoming traffic, in Mbit/s, required
+ to trigger an alert. If the average incoming traffic over
+ two hours exceeds this value, we'll send you an alert. If
+ this is set to `0` (zero), the alert is disabled.
+ example: 10
+ type: integer
+ network_out:
+ description: The amount of outbound traffic, in Mbit/s, required
+ to trigger an alert. If the average outbound traffic over
+ two hours exceeds this value, we'll send you an alert. If
+ this is set to `0` (zero), the alert is disabled.
+ example: 10
+ type: integer
+ transfer_quota:
+ description: The percentage of network transfer that may be
+ used before an alert is triggered. When this value is exceeded,
+ we'll alert you. If this is set to `0` (zero), the alert
+ is disabled.
+ example: 80
+ type: integer
+ type: object
+ backups:
+ additionalProperties: false
+ description: Information about this Linode's backups status. For
+ information about available backups, run [List backups](https://techdocs.akamai.com/linode-api/reference/get-backups).
+ properties:
+ available:
+ description: '__Read-only__ Whether Backups for this Linode
+ are available for restoration.
+
+
+ Backups undergoing maintenance are not available for restoration.'
+ example: true
+ readOnly: true
+ type: boolean
+ enabled:
+ description: __Read-only__ If this Linode has the Backup service
+ enabled. To enable backups, run [Enable backups](https://techdocs.akamai.com/linode-api/reference/post-enable-backups).
+ example: true
+ readOnly: true
+ type: boolean
+ last_successful:
+ description: __Read-only__ The last successful backup time.
+ Displayed as `null` if there was no previous backup.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ schedule:
+ additionalProperties: false
+ properties:
+ day:
+ description: 'The day of the week that your Linode''s
+ weekly backup is taken. If not set manually, a day will
+ be chosen for you. Backups are taken every day, but
+ backups taken on this day are preferred when selecting
+ backups to retain for a longer period.
+
+
+ If not set manually, then when backups are initially
+ enabled, this may come back as `Scheduling` until the
+ `day` is automatically selected.'
+ enum:
+ - Scheduling
+ - Sunday
+ - Monday
+ - Tuesday
+ - Wednesday
+ - Thursday
+ - Friday
+ - Saturday
+ example: Saturday
+ nullable: true
+ type: string
+ window:
+ description: 'When your backups will be taken, in UTC.
+ A backups window is a two-hour span of time in which
+ the backup may occur.
+
+
+ For example, `W10` indicates that your backups should
+ be taken between 10:00 and 12:00. If you don''t choose
+ a backup window, the API automatically assigns one.
+
+
+ If not set manually, when backups are initially enabled
+ this may come back as `Scheduling` until the `window`
+ is automatically selected.'
+ enum:
+ - Scheduling
+ - W0
+ - W2
+ - W4
+ - W6
+ - W8
+ - W10
+ - W12
+ - W14
+ - W16
+ - W18
+ - W20
+ - W22
+ example: W22
+ nullable: true
+ type: string
+ type: object
+ type: object
+ capabilities:
+ description: __Limited availability__, __Read-only__ A list of
+ capabilities this compute instance supports.
+ example:
+ - Block Storage Encryption
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ status: LA
+ created:
+ description: __Read-only__ When this Linode was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ disk_encryption:
+ default: enabled
+ description: __Read-only__ Indicates the local disk encryption
+ setting for this Linode. If the Linode is part of an LKE cluster,
+ the value is `null`.
+ example: disabled
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ group:
+ deprecated: true
+ description: __Deprecated__, __Filterable__ The group label for
+ this Linode.
+ example: Linode-Group
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ status: DEPRECATED
+ x-linode-filterable: true
+ has_user_data:
+ description: __Read-only__ Whether this compute instance was provisioned
+ with `user_data` provided via the Metadata service. See the
+ [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+ description for more information on Metadata.
+ example: true
+ readOnly: true
+ type: boolean
+ host_uuid:
+ description: __Read-only__ The Linode's host machine, as a UUID.
+ example: 3a3ddd59d9a78bb8de041391075df44de62bfec8
+ format: uuid
+ readOnly: true
+ type: string
+ hypervisor:
+ description: __Read-only__ The virtualization software powering
+ this Linode.
+ enum:
+ - kvm
+ example: kvm
+ readOnly: true
+ type: string
+ id:
+ description: __Filterable__, __Read-only__ This Linode's ID which
+ must be provided for all operations impacting this Linode.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ image:
+ allOf:
+ - description: 'An Image ID to deploy the Linode Disk from.
+
+
+ Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images)
+ operation with authentication to view all available Images.
+ Official Linode Images start with `linode/`, while your Account''s
+ Images start with `private/`. Creating a disk from a Private
+ Image requires `read_only` or `read_write` permissions for
+ that Image. Run the [Update a user''s grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants)
+ operation to adjust permissions for an Account Image.'
+ example: linode/debian9
+ type: string
+ example: linode/debian10
+ nullable: true
+ readOnly: true
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ interface_generation:
+ description: __Filterable__, __Read-only__ Indicates if the Linode
+ is configured to use Linode interfaces (`linode`) or legacy
+ configuration profile interfaces (`legacy_config`).
+ enum:
+ - legacy_config
+ - linode
+ example: linode
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 9
+ x-linode-filterable: true
+ ipv4:
+ description: '__Filterable__, __Read-only__ This Linode''s IPv4
+ Addresses. Each Linode is assigned a single public IPv4 address
+ upon creation, and may get a single private IPv4 address if
+ needed. You may need to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ to get additional IPv4 addresses.
+
+
+ IPv4 addresses may be reassigned between your Linodes, or shared
+ with other Linodes. See the [networking](https://techdocs.akamai.com/linode-api/reference/post-firewalls)
+ operations for details.'
+ example:
+ - 203.0.113.1
+ - 192.0.2.1
+ format: ipv4
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ ipv6:
+ description: __Read-only__ This Linode's IPv6 SLAAC address. This
+ address is specific to a Linode, and may not be shared. If the
+ Linode has not been assigned an IPv6 address, the return value
+ will be `null`.
+ example: c001:d00d::1337/128
+ format: ipv6/128
+ nullable: true
+ readOnly: true
+ type: string
+ label:
+ description: '__Filterable__ Provides a name for the Linode. If
+ not provided, the API generates one for it.
+
+
+ Linode labels have the following constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens (`-`),
+ underscores (`_`) or periods (`.`).
+
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods
+ (`..`) in a row.'
+ example: linode123
+ maxLength: 64
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster_id:
+ description: __Read-only__ The ID of the Kubernetes cluster if
+ the Linode is part of cluster.
+ example: 1
+ nullable: true
+ readOnly: true
+ type: integer
+ placement_group:
+ additionalProperties: false
+ description: __Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/)
+ that this Linode belongs to. Empty if the Linode isn't in a
+ placement group.
+ nullable: true
+ properties:
+ id:
+ description: The placement group's ID. You need to provide
+ it for all operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: null
+ label:
+ description: '__Filterable__ The unique name set for the placement
+ group. A label has these constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens
+ (`-`), underscores (`_`) or periods (`.`).'
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ placement_group_policy:
+ description: "How requests to add future compute instances\
+ \ to your placement group are handled, and whether it remains\
+ \ compliant:\n\n- `strict`. Don't assign a new compute instance\
+ \ if it breaks the grouped-together or spread-apart model\
+ \ set by the `placement_group_type`. Use this to ensure\
+ \ the placement group stays compliant (`is_compliant: true`).\n\
+ - `flexible`. Assign a new compute instance, even if it\
+ \ breaks the grouped-together or spread-apart model set\
+ \ by the `placement_group_type`. This makes the group non-compliant\
+ \ (`is_compliant: false`). You need to wait for Akamai to\
+ \ move the offending compute instance to make it compliant\
+ \ again, once the necessary capacity is available in the\
+ \ region. Offers flexibility to add future compute instances\
+ \ if compliance isn't an immediate concern.\n\n<>\n\n\
+ > \U0001F4D8\n>\n> In rare cases, non-compliance can occur\
+ \ with a `strict` placement group if Akamai needs to failover\
+ \ or migrate your compute instances for maintenance. Fixing\
+ \ non-compliance for a `strict` placement group is prioritized\
+ \ over a `flexible` group."
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ x-linode-cli-display: null
+ placement_group_type:
+ description: "__Filterable__, __Read-only__ How compute instances\
+ \ are distributed in your placement group. A `placement_group_type`\
+ \ using anti-affinity (`anti-affinity:local`) places compute\
+ \ instances in separate hosts, but still in the same region.\
+ \ This best supports the spread-apart model for high availability.\
+ \ A `placement_group_type` using affinity places compute\
+ \ instances physically close together, possibly on the same\
+ \ host. This supports the grouped-together model for low-latency.\n\
+ \n> \U0001F4D8\n>\n> Currently, only `anti_affinity:local`\
+ \ is available for `placement_group_type`."
+ enum:
+ - anti_affinity:local
+ example: anti-affinity:local
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: null
+ x-linode-filterable: true
+ readOnly: true
+ type: object
+ region:
+ description: __Filterable__, __Read-only__ The [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the Linode deployed. A Linode's region can only be changed
+ by initiating a [cross data center migration](https://techdocs.akamai.com/linode-api/reference/post-migrate-linode-instance).
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ specs:
+ additionalProperties: false
+ description: __Read-only__ Information about the resources available
+ to this Linode.
+ properties:
+ disk:
+ description: __Read-only__ The amount of storage space, in
+ MB, this Linode has access to. A typical Linode divides
+ this space between a primary disk with an `image` deployed
+ to it, and a swap disk, usually 512 MB. This is the default
+ configuration created when deploying a Linode with an `image`
+ through [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance).
+ While this configuration is suitable for 99% of use cases,
+ if you need finer control over your Linode's disks, see
+ the [List disks](https://techdocs.akamai.com/linode-api/reference/get-linode-disks)
+ operations.
+ example: 81920
+ readOnly: true
+ type: integer
+ gpus:
+ description: __Read-only__ The number of GPUs this Linode
+ has access to.
+ example: 0
+ readOnly: true
+ type: integer
+ memory:
+ description: '__Read-only__ The amount of RAM, in MB, this
+ Linode has access to.
+
+
+ Typically, a Linode boots with all of its available RAM,
+ but this can be configured in a config profile. See the
+ [List config profiles](https://techdocs.akamai.com/linode-api/reference/get-linode-configs)
+ operation for more information.'
+ example: 4096
+ readOnly: true
+ type: integer
+ transfer:
+ description: __Read-only__ The amount of network transfer
+ this Linode is allotted each month.
+ example: 4000
+ readOnly: true
+ type: integer
+ vcpus:
+ description: __Read-only__ The number of VCPUs this Linode
+ has access to.
+ example: 2
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ status:
+ description: '__Read-only__ A brief description of this Linode''s
+ current state. This field may change without direct action from
+ you. For example, when a compute instance goes into maintenance
+ mode, its status is `stopped`. Status is generally self-explanatory,
+ based on its name.
+
+
+ - `busy` indicates you''ve assigned the compute instance to
+ a [placement group](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups),
+ but the compute instance is currently booting. Once the boot
+ completes, the API completes the assignment and updates the
+ compute instance''s `status` accordingly.
+
+ - `provisioning` indicates that the API is applying operating
+ system or Marketplace applications on the compute instance.
+
+ - `billing_suspension` indicates that payment is past due on
+ the compute instance, so we''ve suspended its use.'
+ enum:
+ - running
+ - offline
+ - booting
+ - busy
+ - rebooting
+ - shutting_down
+ - provisioning
+ - deleting
+ - migrating
+ - rebuilding
+ - cloning
+ - restoring
+ - stopped
+ - billing_suspension
+ example: running
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ billing_suspension: red
+ default_: yellow
+ offline: red
+ running: green
+ x-linode-cli-display: 6
+ tags:
+ description: __Filterable__ Tags to help you organize your content.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type:
+ description: __Read-only__ This is the [Linode type](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ that this Linode was deployed with. To change a Linode's type,
+ use [Resize a Linode](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance).
+ example: g6-standard-1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this Linode was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ watchdog_enabled:
+ description: The watchdog, named Lassie, is a Shutdown Watchdog
+ that monitors your Linode and reboots it if it powers off unexpectedly.
+ It works by issuing a boot job when your Linode powers off without
+ a shutdown job being responsible. To prevent a loop, Lassie
+ gives up if there have been more than 5 boot jobs issued within
+ 15 minutes.
+ example: true
+ type: boolean
+ title: Linode
+ type: object
+ x-akamai:
+ file-path: schemas/linode.yaml
+ x-example:
+ x-ref: ../examples/post-rebuild-linode-instance-200.json
+ description: Rebuild started.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Rebuild a Linode
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes rebuild 123 \\\n --image \"linode/debian9\"\
+ \ \\\n --root_pass aComplex@Password \\\n --disk_encryption disabled\
+ \ \\\n --authorized_keys \"ssh-rsa AAAA_valid_public_ssh_key_123456785==\
+ \ user@their-computer\" \\\n --authorized_users \"myUsername\" \\\n \
+ \ --authorized_users \"secondaryUsername\" \\\n --booted true \\\n --stackscript_id\
+ \ 10079 \\\n --stackscript_data '{\"gh_username\": \"linode\"}' \\\n\
+ \ --type \"g6-standard-2\" \\\n --metadata.userdata \"I2Nsb3VkLWNvbmZpZw==\""
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: rebuild
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Linode to rebuild.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-2816c8d8.yaml
+ x-akamai:
+ file-path: paths/linode-rebuild.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/rebuild
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/rescue:
+ post:
+ 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.
+
+
+ Linodes with legacy configuration interfaces receive a public IP and boot
+ into the recovery Linux distribution. Linodes with Linode interfaces still
+ boot into recovery mode with the recovery Linux distribution, but they retain
+ their original network interfaces and settings from before entering rescue
+ mode.
+
+
+ - Note that `sdh` is reserved and unavailable during rescue.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-rescue-linode-instance
+ operationId: post-rescue-linode-instance
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ devices:
+ additionalProperties: false
+ properties:
+ sda:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdb:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdc:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdd:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sde:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdf:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ sdg:
+ additionalProperties: false
+ description: Device can be either a Disk or Volume identified
+ by `disk_id` or `volume_id`. Only one type per slot allowed.
+ Can be `null`. Devices mapped from _sde_ through _sdh_ are
+ unavailable in `fullvirt` virt_mode.
+ properties:
+ disk_id:
+ description: The Disk ID, or `null` if a Volume is assigned
+ to this slot.
+ example: 124458
+ type: integer
+ volume_id:
+ description: The Volume ID, or `null` if a Disk is assigned
+ to this slot.
+ example: null
+ nullable: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/device.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/rescue-devices.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-rescue-linode-instance.yaml
+ x-example:
+ x-ref: ../examples/post-rescue-linode-instance.json
+ description: Optional object of devices to be mounted.
+ required: false
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-rescue-linode-instance-200.json
+ description: Rescue started.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Boot a Linode into rescue mode
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes rescue 123 \\\n --devices.sda.disk_id 124458"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: rescue
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Linode to rescue.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-7f941cb9.yaml
+ x-akamai:
+ file-path: paths/rescue.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/rescue
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/resize:
+ post:
+ 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:\n\n - The Linode must\
+ \ not have a pending migration.\n - Your Account cannot have an outstanding\
+ \ balance.\n - The Linode must not have more disk allocation than the new\
+ \ Type allows.\n - In that situation, you must first delete or resize the\
+ \ disk to be smaller.\n\nYou can also resize a Linode when using the [Rebuild\
+ \ a Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance)\
+ \ operation.\n\n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance
+ operationId: post-resize-linode-instance
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ allow_auto_disk_resize:
+ default: true
+ 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: '{{allow_auto_disk_resize}}'
+ type: boolean
+ migration_type:
+ default: cold
+ description: 'Type of migration used in moving to a new host or
+ Linode type.
+
+
+ `warm`: the Linode will not power down until the migration is
+ complete.
+
+ Warm migrations are not available for DC migrations.
+
+
+ `cold`: the Linode will be powered down and migrated. When the
+ migration
+
+ is complete, the Linode will be powered on.'
+ enum:
+ - warm
+ - cold
+ example: '{{migration_type}}'
+ type: string
+ type:
+ description: The ID representing the Linode Type.
+ example: '{{type}}'
+ type: string
+ x-linode-cli-display: 1
+ required:
+ - type
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-resize-linode-instance.yaml
+ x-example:
+ x-ref: ../examples/post-resize-linode-instance.json
+ description: The Type your current Linode will resize to, and whether to attempt
+ to automatically resize the Linode's disks.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-resize-linode-instance-200.json
+ description: Resize started.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Resize a Linode
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli linodes resize 123 \\\n --type g6-standard-2"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: resize
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Linode to resize.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-0d41ac92.yaml
+ x-akamai:
+ file-path: paths/linode-resize.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/resize
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/shutdown:
+ post:
+ 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.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-shutdown-linode-instance
+ operationId: post-shutdown-linode-instance
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-shutdown-linode-instance-200.yaml
+ x-example:
+ x-ref: ../examples/post-shutdown-linode-instance-200.json
+ description: Shutdown started.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Shut down a Linode
+ tags:
+ - Linode instances
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes shutdown 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: shutdown
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Linode to shutdown.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-d40d3cd2.yaml
+ x-akamai:
+ file-path: paths/shutdown.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/shutdown
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/stats:
+ get:
+ description: "Returns CPU, IO, IPv4, and IPv6 statistics for your Linode for\
+ \ the past 24 hours. __OAuth scopes__.\n\n ```\n linodes:read_only\n\
+ \ ```\n\n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-stats
+ operationId: get-linode-stats
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: __Read-only__ CPU, IO, IPv4, and IPv6 statistics. Graph
+ data, if available, is in `[timestamp, reading]` array format. Timestamp
+ is a UNIX timestamp in EST.
+ properties:
+ cpu:
+ description: Percentage of CPU used.
+ items:
+ items:
+ example:
+ - 1521483600000
+ - 0.42
+ type: number
+ type: array
+ type: array
+ io:
+ additionalProperties: false
+ description: Input/Output statistics.
+ properties:
+ io:
+ description: Block/s written.
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 0.19
+ type: number
+ type: array
+ type: array
+ swap:
+ description: Block/s written.
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 0
+ type: number
+ type: array
+ type: array
+ type: object
+ netv4:
+ additionalProperties: false
+ description: IPv4 statistics.
+ properties:
+ in:
+ description: Input stats for IPv4, measured in bits/s (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 2004.36
+ type: number
+ type: array
+ type: array
+ out:
+ description: Output stats for IPv4, measured in bits/s (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 3928.91
+ type: number
+ type: array
+ type: array
+ private_in:
+ description: Private IPv4 input statistics, measured in bits/s
+ (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 0
+ type: number
+ type: array
+ type: array
+ private_out:
+ description: Private IPv4 output statistics, measured in bits/s
+ (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 5.6
+ type: number
+ type: array
+ type: array
+ type: object
+ netv6:
+ additionalProperties: false
+ description: IPv6 statistics.
+ properties:
+ in:
+ description: Input stats for IPv6, measured in bits/s (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 0
+ type: number
+ type: array
+ type: array
+ out:
+ description: Output stats for IPv6, measured in bits/s (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 0
+ type: number
+ type: array
+ type: array
+ private_in:
+ description: Private IPv6 input statistics, measured in bits/s
+ (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 195.18
+ type: number
+ type: array
+ type: array
+ private_out:
+ description: Private IPv6 output statistics, measured in bits/s
+ (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 5.6
+ type: number
+ type: array
+ type: array
+ type: object
+ title:
+ description: The title for this data set.
+ example: linode.com - my-linode (linode123456) - day (5 min avg)
+ type: string
+ readOnly: true
+ type: object
+ x-akamai:
+ file-path: schemas/linode-stats.yaml
+ x-example:
+ x-ref: ../examples/get-linode-stats-200.json
+ description: The Linode's stats for the past 24 hours.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: Get Linode statistics
+ tags:
+ - Statistics
+ x-akamai:
+ tabs:
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: stats
+ x-linode-cli-skip: true
+ parameters:
+ - description: ID of the Linode to look up.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path.yaml
+ x-akamai:
+ file-path: paths/linode-stats.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/stats
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/stats/{year}/{month}:
+ get:
+ 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. __OAuth scopes__.\n\
+ \n ```\n linodes:read_only\n ```\n\n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-stats-by-year-month
+ operationId: get-linode-stats-by-year-month
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: __Read-only__ CPU, IO, IPv4, and IPv6 statistics. Graph
+ data, if available, is in `[timestamp, reading]` array format. Timestamp
+ is a UNIX timestamp in EST.
+ properties:
+ cpu:
+ description: Percentage of CPU used.
+ items:
+ items:
+ example:
+ - 1521483600000
+ - 0.42
+ type: number
+ type: array
+ type: array
+ io:
+ additionalProperties: false
+ description: Input/Output statistics.
+ properties:
+ io:
+ description: Block/s written.
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 0.19
+ type: number
+ type: array
+ type: array
+ swap:
+ description: Block/s written.
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 0
+ type: number
+ type: array
+ type: array
+ type: object
+ netv4:
+ additionalProperties: false
+ description: IPv4 statistics.
+ properties:
+ in:
+ description: Input stats for IPv4, measured in bits/s (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 2004.36
+ type: number
+ type: array
+ type: array
+ out:
+ description: Output stats for IPv4, measured in bits/s (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 3928.91
+ type: number
+ type: array
+ type: array
+ private_in:
+ description: Private IPv4 input statistics, measured in bits/s
+ (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 0
+ type: number
+ type: array
+ type: array
+ private_out:
+ description: Private IPv4 output statistics, measured in bits/s
+ (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 5.6
+ type: number
+ type: array
+ type: array
+ type: object
+ netv6:
+ additionalProperties: false
+ description: IPv6 statistics.
+ properties:
+ in:
+ description: Input stats for IPv6, measured in bits/s (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 0
+ type: number
+ type: array
+ type: array
+ out:
+ description: Output stats for IPv6, measured in bits/s (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 0
+ type: number
+ type: array
+ type: array
+ private_in:
+ description: Private IPv6 input statistics, measured in bits/s
+ (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 195.18
+ type: number
+ type: array
+ type: array
+ private_out:
+ description: Private IPv6 output statistics, measured in bits/s
+ (bits/second).
+ items:
+ items:
+ example:
+ - 1521484800000
+ - 5.6
+ type: number
+ type: array
+ type: array
+ type: object
+ title:
+ description: The title for this data set.
+ example: linode.com - my-linode (linode123456) - day (5 min avg)
+ type: string
+ readOnly: true
+ type: object
+ x-akamai:
+ file-path: schemas/linode-stats.yaml
+ x-example:
+ x-ref: ../examples/get-linode-stats-by-year-month-200.json
+ description: The Linode's statistics for the requested period.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: Get monthly statistics
+ tags:
+ - Statistics
+ x-akamai:
+ tabs:
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: stats-month
+ x-linode-cli-skip: true
+ parameters:
+ - description: ID of the Linode to look up.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path.yaml
+ - description: Numeric value representing the year to look up.
+ example: '{{year}}'
+ in: path
+ name: year
+ required: true
+ schema:
+ example: 2024
+ type: integer
+ x-akamai:
+ file-path: parameters/year-path-6f345986.yaml
+ - description: Numeric value representing the month to look up.
+ example: '{{month}}'
+ in: path
+ name: month
+ required: true
+ schema:
+ example: 8
+ maximum: 12
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/month-path.yaml
+ x-akamai:
+ file-path: paths/linode-stats-month.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/stats/{year}/{month}
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/transfer:
+ get:
+ description: 'Returns a Linode''s network transfer pool statistics for the current
+ month.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-transfer
+ operationId: get-linode-transfer
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ billable:
+ description: __Read-only__ The amount of network transfer this
+ Linode has used, in GB, past your monthly quota.
+ example: 0
+ readOnly: true
+ type: integer
+ quota:
+ description: __Read-only__ 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
+ type: integer
+ used:
+ description: __Read-only__ The amount of network transfer used
+ by this Linode, in bytes, for the current month's billing cycle.
+ example: 22956600198
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-linode-transfer-200.yaml
+ x-example:
+ x-ref: ../examples/get-linode-transfer-200.json
+ description: A collection of the specified Linode's network transfer statistics.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: Get a network transfer
+ tags:
+ - Network transfers
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes transfer-view 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: transfer-view
+ x-linode-grant: read_only
+ parameters:
+ - description: ID of the Linode to look up.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-dc17dce5.yaml
+ x-akamai:
+ file-path: paths/linode-transfer.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/transfer
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/transfer/{year}/{month}:
+ get:
+ 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. __OAuth scopes__.\n\n ```\n linodes:read_only\n ```\n\n\
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-transfer-by-year-month
+ operationId: get-linode-transfer-by-year-month
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ bytes_in:
+ description: __Read-only__ The amount of inbound public network
+ traffic received by this Linode, in bytes, for a specific year/month.
+ example: 30471077120
+ readOnly: true
+ type: integer
+ bytes_out:
+ description: __Read-only__ The amount of outbound public network
+ traffic sent by this Linode, in bytes, for a specific year/month.
+ example: 22956600198
+ readOnly: true
+ type: integer
+ bytes_total:
+ description: __Read-only__ The total amount of public network
+ traffic sent and received by this Linode, in bytes, for a specific
+ year/month.
+ example: 53427677318
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-linode-transfer-by-year-month-200.yaml
+ x-example:
+ x-ref: ../examples/get-linode-transfer-by-year-month-200.json
+ description: A collection of the specified Linode's network transfer statistics
+ for the requested month.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: Get monthly network transfer stats
+ tags:
+ - Network transfer statistics
+ x-akamai:
+ tabs:
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: transfer-month
+ x-linode-cli-skip: true
+ x-linode-grant: read_only
+ parameters:
+ - description: ID of the Linode to look up.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path.yaml
+ - description: Numeric value representing the year to look up.
+ example: '{{year}}'
+ in: path
+ name: year
+ required: true
+ schema:
+ example: 2024
+ maximum: 2037
+ minimum: 2000
+ type: integer
+ x-akamai:
+ file-path: parameters/year-path-dda8c8e5.yaml
+ - description: Numeric value representing the month to look up.
+ example: '{{month}}'
+ in: path
+ name: month
+ required: true
+ schema:
+ example: 8
+ maximum: 12
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/month-path.yaml
+ x-akamai:
+ file-path: paths/linode-transfer-month.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/transfer/{year}/{month}
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/upgrade-interfaces:
+ post:
+ description: "__Beta__ Automatically upgrades all legacy config interfaces of\
+ \ a single configuration profile to Linode interfaces. A Linode interface\
+ \ is directly associated with the Linode, rather than being tied to a configuration\
+ \ profile.\n\nFirewalls are applied to the Linode interface, not directly\
+ \ to the Linode itself.\n\n> \u2757\uFE0F This upgrade is irreversible\n>\n\
+ > Once you upgrade a Linode to use Linode interfaces, you can't use legacy\
+ \ config interfaces. This means you can no longer use the Linode with any\
+ \ Linode products that require private IPs, such as NodeBalancer. You can\
+ \ use `dry_run` to preview the upgrade.\n\nBefore upgrading interfaces, you\
+ \ can check the new Linode interface configuration by performing a dry run,\
+ \ where you set `dry_run` to `true` or omit it. A `dry_run` runs the upgrade\
+ \ logic and returns a JSON representation of what the interface configuration\
+ \ will be after the upgrade without committing any changes.\n\nWhen you run\
+ \ this operation with `dry_run` set to `false`, the following occurs:\n -\
+ \ It creates matching interfaces on the Linode based on the interfaces present\
+ \ on the `config_id`.\n - All firewalls are removed from the Linode. Any\
+ \ firewalls that were originally attached to the Linode are now applied to\
+ \ the public and VPC interfaces. If the Linode has no firewalls attached,\
+ \ then default firewalls are not used.\n - If no legacy config interfaces\
+ \ are defined (`legacy_config`) in the `config_id`, a public interface is\
+ \ created using the public IPv4 assigned to the Linode. The same is the case\
+ \ if the Linode has no config defined.\n - For public interfaces, the Linode's\
+ \ current MAC address and SLAAC address are conserved. The MAC address won't\
+ \ change.\n - It deletes all legacy config interfaces from all configs.\n\
+ \ - It returns the list of interfaces for the Linode.\n\nRequirements:\n\
+ \ - The `config_id` for the legacy config interfaces can't use a public interface\
+ \ private IPv4 address.\n - The Linode needs a MAC address in the database\
+ \ if it's IPv6 enabled. If it doesn't, an error message tells you what to\
+ \ do.\n - The Linode must be in a region that supports Linode interfaces.\
+ \ Run [Get a region](https://techdocs.akamai.com/linode-api/reference/get-region).\n\
+ \ - Your account must allow creation of Linodes with Linode interfaces, run\
+ \ [Get account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings).\n\
+ \ - If the Linode has a user with a non-standard username, it can't be upgraded.\n\
+ \n[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\
+ \n[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)"
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces
+ operationId: post-upgrade-linode-interfaces
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Upgrades a legacy configuration interface on a Linode to
+ a matching Linode interface.
+ nullable: true
+ properties:
+ config_id:
+ default: null
+ description: 'The Linode''s `config_id`. Only one `config_id` can
+ be specified:
+
+ - If there are no legacy configuration interfaces or configurations
+ defined in the config_id, a public interface is created using
+ the Linode''s automatically assigned public IPv4 address.
+
+ - If a config_id is not provided and the Linode has only one configuration,
+ the upgrade automatically uses that config_id.
+
+ - If the Linode has multiple configurations and a config_id is
+ not specified, an error is returned.'
+ example: '{{config_id}}'
+ nullable: true
+ type: integer
+ dry_run:
+ default: true
+ description: 'Before you upgrade interfaces, you can preview the
+ new Linode interface by performing a `dry_run`:
+
+ - Either omit `dry_run` or set it to `true` to simulate the upgrade
+ process. The response data shows what the Linode interface will
+ look like after the upgrade, but without committing any changes.
+ Since the interface doesn''t exist yet, the interface `id` value
+ is 0.
+
+ - If `dry_run` is set to `false`, the Linode undergoes the actual
+ upgrade, but note you need to first shut down the Linode.'
+ example: '{{dry_run}}'
+ type: boolean
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-linode-interface-upgrade.yaml
+ x-example:
+ x-ref: ../examples/linode-interface.json
+ description: Upgrade to a Linode interface or perform a dry run upgrade.
+ responses:
+ '200':
+ content:
+ application/json:
+ examples:
+ ex-public:
+ summary: Public interface
+ value:
+ config_id: 4567
+ dry_run: true
+ interfaces:
+ - created: '2024-01-01T00:01:01'
+ default_route:
+ ipv4: true
+ ipv6: true
+ id: 0
+ mac_address: 22:00:AB:CD:EF:01
+ public:
+ ipv4:
+ addresses:
+ - address: 172.30.0.50
+ primary: true
+ shared:
+ - address: 172.30.0.51
+ linode_id: 12345
+ ipv6:
+ ranges:
+ - range: 2600:3c09:e001:59::/64
+ route_target: 2600:3c09::ff:feab:cdef
+ - range: 2600:3c09:e001:5a::/64
+ route_target: 2600:3c09::ff:feab:cdef
+ shared:
+ - range: 2600:3c09:e001:2a::/64
+ route_target: null
+ slaac:
+ - address: 2600:3c09::ff:feab:cdef
+ prefix: 64
+ updated: '2024-01-01T00:01:01'
+ version: 1
+ vlan: null
+ vpc: null
+ ex-vlan:
+ summary: VLAN interface
+ value:
+ config_id: 4567
+ dry_run: true
+ interfaces:
+ - created: '2024-01-01T00:01:01'
+ default_route: {}
+ id: 0
+ mac_address: 22:00:AB:CD:EF:01
+ public: null
+ updated: '2024-01-01T00:01:01'
+ version: 1
+ vlan:
+ ipam_address: 10.0.0.1/24
+ vlan_label: my-vlan
+ vpc: null
+ ex-vpc:
+ summary: VPC interface
+ value:
+ config_id: 4567
+ dry_run: true
+ interfaces:
+ - created: '2024-01-01T00:01:01'
+ default_route:
+ ipv4: true
+ id: 0
+ mac_address: 22:00:AB:CD:EF:01
+ public: null
+ updated: '2024-01-01T00:01:01'
+ version: 1
+ vlan: null
+ vpc:
+ ipv4:
+ addresses:
+ - address: 192.168.22.3
+ nat_1_1_address: null
+ primary: true
+ ranges:
+ - range: 192.168.22.16/28
+ - range: 192.168.32.16/28
+ subnet_id: 1234
+ vpc_id: 1234
+ schema:
+ additionalProperties: false
+ description: Upgraded interfaces
+ properties:
+ config_id:
+ description: The Linode's `config_id` that was upgraded.
+ example: 4567
+ type: integer
+ x-linode-cli-display: 2
+ dry_run:
+ description: Indicates if this was a `dry_run` upgrade that didn't
+ commit any changes and didn't generate a unique interface ID.
+ If `dry_run` is `false`, the upgrade completed.
+ example: true
+ type: boolean
+ x-linode-cli-display: 1
+ interfaces:
+ items:
+ description: 'One of the following interface types: VPC, public,
+ or VLAN.'
+ oneOf:
+ - additionalProperties: false
+ description: A public interface configuration defines the
+ properties and settings for a specific public interface
+ in the Linode network.
+ properties:
+ created:
+ description: When the interface was created.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ default_route:
+ additionalProperties: false
+ description: Indicates if the interface is used as a default
+ route.
+ nullable: true
+ properties:
+ ipv4:
+ default: false
+ description: Indicates if the interface is used for
+ the IPv4 default route. Only one interface per Linode
+ can have the IPv4 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ ipv6:
+ default: false
+ description: Indicates if the interface is used for
+ the IPv6 default route. Only one interface per Linode
+ can have the IPv6 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ type: object
+ id:
+ description: __Read-only__ The unique ID for this interface.
+ For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces),
+ a unique `id` is not generated for the interface and
+ its value is set to 0.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ mac_address:
+ description: "A 48-bit MAC address used to identify the\
+ \ Linode\u2019s interface. A public interface's `mac_address`\
+ \ does not change, even if the public interface is deleted\
+ \ and then recreated."
+ example: 22:00:AB:CD:EF:01
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ public:
+ additionalProperties: false
+ description: Public interface type.
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: The interface's public IPv4 `addresses`.
+ properties:
+ addresses:
+ description: The public IPv4 addresses and primary
+ settings for this public interface.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: The public IPv4 address assigned
+ to this interface.
+ example: 172.232.100.100
+ type: string
+ x-linode-cli-display: 8
+ primary:
+ description: Indicates if the public IPv4
+ address serves as the source address for
+ traffic routing within the Linode and
+ other corresponding network interfaces
+ and services.
+ example: true
+ type: boolean
+ x-linode-cli-display: 9
+ type: object
+ type: array
+ shared:
+ description: The IPv4 address assigned to this
+ Linode interface, which is also shared with
+ another Linode.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: Shared IPv4 address.
+ example: 172.222.33.4
+ type: string
+ x-linode-cli-display: 10
+ linode_id:
+ description: The ID of the Linode this address
+ currently belongs to. For IPv4 addresses,
+ by default this is the Linode this address
+ was assigned when created.
+ example: 12345
+ type: string
+ x-linode-cli-display: 11
+ type: object
+ type: array
+ type: object
+ ipv6:
+ additionalProperties: false
+ description: The interface's public IPv6 configuration.
+ properties:
+ ranges:
+ description: List of IPv6 ranges assigned to this
+ interface.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ description: IPv6 range in CIDR notation
+ (`2600:0db8::1/64`) or prefix-only (`/64`).
+ example: 2600:3c09:e001:59::/64
+ type: string
+ x-linode-cli-display: 16
+ route_target:
+ description: The public IPv6 address that
+ the `range` is routed to.
+ example: 2600:3c09::ff:feab:cdef
+ type: string
+ x-linode-cli-display: 17
+ type: object
+ type: array
+ shared:
+ description: The IPv6 address assigned to this
+ Linode interface, which is also shared with
+ another Linode.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ description: The IPv6 address range.
+ example: 2600:3c09:e001:2a::/64
+ type: string
+ x-linode-cli-display: 14
+ route_target:
+ description: The public IPv6 address that
+ the `range` is routed to.
+ example: null
+ type: string
+ x-linode-cli-display: 15
+ type: object
+ type: array
+ slaac:
+ description: The public `slaac` and subnet prefix
+ settings for this public interface that is used
+ to communicate over the public internet, and
+ with other services in the same data center.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: Public IPv6 addresses assigned
+ to this interface.
+ example: 2600:3c09::ff:feab:cdef
+ type: string
+ x-linode-cli-display: 12
+ prefix:
+ description: The prefix length advertised
+ for SLAAC to use. Only the specific (`/128`)
+ EUI-64 address derived from the interface's
+ MAC address is supported. To ensure the
+ MAC-based EUI-64 address is used, privacy
+ addressing needs to be disabled. Network
+ Helper automatically configures the MAC-derived
+ EUI-64 address. If you disable Network
+ Helper or use an unsupported operating
+ system, follow the specific instructions
+ for your OS.
+ example: 64
+ type: integer
+ x-linode-cli-display: 13
+ type: object
+ type: array
+ type: object
+ type: object
+ updated:
+ description: When the interface was last updated.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 4
+ version:
+ description: Interface version number that increments
+ when the interface updates.
+ example: 1
+ type: integer
+ x-linode-cli-display: 7
+ vlan:
+ description: The value is `null` if this is not a VLAN
+ interface.
+ example: null
+ nullable: true
+ type: object
+ vpc:
+ additionalProperties: false
+ description: The value is `null` if this is not a VPC
+ interface.
+ example: null
+ nullable: true
+ type: object
+ title: Public interface
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-public.yaml
+ - additionalProperties: false
+ description: A VLAN interface configuration defines the properties
+ and settings for a specific VLAN interface in the Linode
+ network.
+ properties:
+ created:
+ description: When the interface was created.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ The unique ID for this interface.
+ For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces),
+ a unique `id` is not generated for the interface and
+ its value is set to 0.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ mac_address:
+ description: "A 48-bit MAC address used to identify the\
+ \ Linode\u2019s interface. The `mac_address` of an interface\
+ \ remains constant and does not change."
+ example: 22:00:AB:CD:EF:01
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ public:
+ description: The value is `null` if this isn't a public
+ interface.
+ example: null
+ nullable: true
+ type: object
+ updated:
+ description: When the interface was last updated.
+ example: '2024-01-01T00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 4
+ version:
+ description: Interface version number that is incremented
+ when the interface is updated.
+ example: 1
+ type: integer
+ x-linode-cli-display: 5
+ vlan:
+ additionalProperties: false
+ description: VLAN interface type.
+ properties:
+ ipam_address:
+ description: This VLAN interface's private IPv4 address
+ in classless inter-domain routing (CIDR) notation.
+ example: 10.0.0.1/24
+ format: ip/netmask
+ nullable: true
+ type: string
+ x-linode-cli-display: 7
+ vlan_label:
+ description: The VLAN's label. VLAN interfaces on
+ the same Linode must have a unique `vlan_label`.
+ example: my-vlan
+ type: string
+ x-linode-cli-display: 6
+ type: object
+ vpc:
+ description: The value is `null` if this isn't a VPC interface.
+ example: null
+ nullable: true
+ type: object
+ title: VLAN interface
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-vlan.yaml
+ - additionalProperties: false
+ description: A VPC interface configuration defines settings
+ for a specific VPC interface in the Linode network.
+ properties:
+ created:
+ description: When the interface was created.
+ example: '2025-01-01 00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 3
+ default_route:
+ additionalProperties: false
+ description: Indicates if the interface serves as a default
+ route.
+ properties:
+ ipv4:
+ default: false
+ description: Indicates if the interface serves as
+ the IPv4 default route. Only one interface per Linode
+ can have the IPv4 default route.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ type: object
+ id:
+ description: __Read-only__ The unique ID for this interface.
+ For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces),
+ a unique `id` is not generated for the interface and
+ its value is set to 0.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ mac_address:
+ description: "A 48-bit MAC address used to identify the\
+ \ Linode\u2019s interface. The `mac_address` of an interface\
+ \ remains constant and does not change."
+ example: 22:00:AB:CD:EF:01
+ maxLength: 64
+ minLength: 1
+ pattern: '[a-zA-Z0-9-]+'
+ type: string
+ x-linode-cli-display: 2
+ public:
+ additionalProperties: false
+ description: The value is `null` if this is not a public
+ interface.
+ example: null
+ nullable: true
+ type: object
+ updated:
+ description: When the interface last updated.
+ example: '2025-01-01 00:01:01'
+ format: date-time
+ type: string
+ x-linode-cli-display: 4
+ version:
+ description: The version number of the interface configuration,
+ incremented each time the interface is updated.
+ example: 1
+ type: integer
+ x-linode-cli-display: 6
+ vlan:
+ additionalProperties: false
+ description: The value is `null` if this is not a VLAN
+ interface.
+ example: null
+ nullable: true
+ type: object
+ vpc:
+ additionalProperties: false
+ description: VPC interface type.
+ properties:
+ ipv4:
+ additionalProperties: false
+ description: The interface's IPv4 `addresses` and
+ `ranges` configuration.
+ properties:
+ addresses:
+ description: IPv4 address settings for this VPC
+ interface.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ description: The VPC subnet IPv4 address.
+ example: 192.168.22.3
+ type: string
+ x-linode-cli-display: 9
+ nat_1_1_address:
+ description: The 1:1 NAT IPv4 address used
+ to associate a public IPv4 address with
+ the interface's VPC subnet IPv4 address.
+ example: null
+ nullable: true
+ type: string
+ x-linode-cli-display: 11
+ primary:
+ description: Indicates if the IPv4 address
+ is used to set up a source address for
+ routes inside the Linode for the corresponding
+ network interface.
+ example: true
+ type: boolean
+ x-linode-cli-display: 10
+ type: object
+ type: array
+ ranges:
+ description: VPC IPv4 ranges.
+ items:
+ additionalProperties: false
+ properties:
+ range:
+ description: CIDR notation of a range (`1.2.3.4/24`)
+ or prefix only (`/24`).
+ example: 192.168.22.16/28
+ type: string
+ x-linode-cli-display: 12
+ type: object
+ type: array
+ type: object
+ subnet_id:
+ description: VPC subnet's unique identifier.
+ example: 1234
+ type: integer
+ x-linode-cli-display: 8
+ vpc_id:
+ description: VPC's unique identifier.
+ example: 1234
+ type: integer
+ x-linode-cli-display: 7
+ type: object
+ title: VPC interface
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-vpc.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/linode-interface-upgrade.yaml
+ description: Upgrade or `dry_run` upgrade completed.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Upgrade to Linode interfaces
+ tags:
+ - Linode interfaces
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli linodes interfaces-upgrade $linodeId
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: interfaces-upgrade
+ x-linode-grant: read_write
+ parameters:
+ - description: The `id` of the Linode.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id.yaml
+ x-akamai:
+ file-path: paths/linode-interface-upgrade.yaml
+ path-info: /{apiVersion}/linode/{linodeId}/upgrade-interfaces
+ status: BETA
+ x-linode-cli-command: linodes
+ /linode/instances/{linodeId}/volumes:
+ get:
+ description: 'View Block Storage Volumes attached to this Linode.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-volumes
+ operationId: get-linode-volumes
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: A Block Storage volume on your account.
+ properties:
+ created:
+ description: __Read-only__ When this volume was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encryption:
+ description: __Read-only__ Whether encryption is enabled
+ on this volume.
+ enum:
+ - enabled
+ - disabled
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ filesystem_path:
+ description: __Read-only__ The full file system path for
+ the volume, based on its `label`. The path is `/dev/disk/by-id/scsi-0Linode_Volume_label`.
+ example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
+ readOnly: true
+ type: string
+ hardware_type:
+ description: __Read-only__ The storage type of this volume.
+ This can be either `hdd` to emulate a hard disk drive
+ for the volume, or `nvme` to emulate a non-volatile memory
+ express solid state drive.
+ enum:
+ - hdd
+ - nvme
+ example: nvme
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for the
+ volume.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: __Filterable__ The name of the volume. A `label`
+ can be up to 32 characters long and contain alphanumeric
+ characters, hyphens, and underscores. This value is also
+ used in the volume's `filesystem_path`.
+ example: my-volume
+ maxLength: 32
+ minLength: 1
+ pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linode_id:
+ description: The unique identifier of the Linode this volume
+ is attached to, if applicable.
+ example: 12346
+ nullable: true
+ type: integer
+ x-linode-cli-display: 6
+ linode_label:
+ description: __Read-only__ The name of the Linode this volume
+ is attached to, if applicable.
+ example: linode123
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ region:
+ description: The unique ID of this Region.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ size:
+ description: The Volume's size, in GiB.
+ example: 30
+ maximum: 10240
+ type: integer
+ x-linode-cli-display: 4
+ status:
+ description: '__Read-only__ The current status of the volume.
+ This can be one of:
+
+
+ - `creating`. The API is creating the volume and it''s
+ not ready for use.
+
+
+ - `active`. The volume is online and ready for use.
+
+
+ - `resizing`. The volume''s capacity is being upgraded.
+
+
+ - `key_rotating`. The volume''s encryption keys are being
+ rotated to new values. Requests to resize, delete, or
+ clone a volume fail during encryption key rotation.'
+ enum:
+ - creating
+ - active
+ - resizing
+ - key_rotating
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ active: green
+ contact_support: red
+ default_: yellow
+ x-linode-cli-display: 3
+ tags:
+ description: __Filterable__ Any tags applied to this object.
+ Use [tags](https://techdocs.akamai.com/linode-api/reference/post-tag)
+ to label and organize your cloud computing resources.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this volume was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: Volume
+ type: object
+ x-akamai:
+ file-path: schemas/volume.yaml
+ type: array
+ page:
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-linode-volumes-200.yaml
+ x-example:
+ x-ref: ../examples/get-linode-volumes-200.json
+ description: Returns an array of Block Storage Volumes attached to this
+ Linode.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: List a Linode's volumes
+ tags:
+ - Volumes
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes volumes 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: volumes
+ parameters:
+ - description: ID of the Linode to look up.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-dc17dce5.yaml
+ x-akamai:
+ file-path: paths/linode-volumes.yaml
+ path-info: /{apiVersion}/linode/instances/{linodeId}/volumes
+ x-linode-cli-command: linodes
+ /linode/kernels:
+ get:
+ description: 'Lists available Kernels.
+
+
+ Due to the extensive list of available kernels, please keep [pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ controls in mind when managing responses to this operation.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-kernels
+ operationId: get-kernels
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: Linux kernel object.
+ properties:
+ architecture:
+ description: __Filterable__, __Read-only__ The architecture
+ of this Kernel.
+ enum:
+ - x86_64
+ - i386
+ example: x86_64
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ built:
+ description: __Read-only__ The date on which this Kernel
+ was built.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ deprecated:
+ description: __Filterable__, __Read-only__ If this Kernel
+ is marked as deprecated, this field has a value of `true`;
+ otherwise, this field is `false`.
+ example: false
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ The unique ID of this Kernel.
+ example: linode/latest-64bit
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ kvm:
+ description: __Filterable__, __Read-only__ If this Kernel
+ is suitable for KVM Linodes.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ label:
+ description: __Filterable__, __Read-only__ The friendly
+ name of this Kernel.
+ example: Latest 64 bit (4.15.7-x86_64-linode102)
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ pvops:
+ description: __Filterable__, __Read-only__ If this Kernel
+ is suitable for paravirtualized operations.
+ example: false
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ version:
+ description: __Filterable__, __Read-only__ Linux Kernel
+ version.
+ example: 4.15.7
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/kernel.yaml
+ type: array
+ page:
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-kernels-200.yaml
+ x-example:
+ x-ref: ../examples/get-kernels-200.json
+ description: Returns an array of Kernels.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: List kernels
+ tags:
+ - Kernels
+ x-akamai:
+ tabs:
+ - syntax: linode-cli kernels list
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action:
+ - list
+ - ls
+ parameters: []
+ x-akamai:
+ file-path: paths/kernels.yaml
+ path-info: /{apiVersion}/linode/kernels
+ x-linode-cli-command: kernels
+ /linode/kernels/{kernelId}:
+ get:
+ description: 'Returns information about a single Kernel.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-kernel
+ operationId: get-kernel
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Linux kernel object.
+ properties:
+ architecture:
+ description: __Filterable__, __Read-only__ The architecture of
+ this Kernel.
+ enum:
+ - x86_64
+ - i386
+ example: x86_64
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ built:
+ description: __Read-only__ The date on which this Kernel was built.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ deprecated:
+ description: __Filterable__, __Read-only__ If this Kernel is marked
+ as deprecated, this field has a value of `true`; otherwise,
+ this field is `false`.
+ example: false
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ The unique ID of this Kernel.
+ example: linode/latest-64bit
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ kvm:
+ description: __Filterable__, __Read-only__ If this Kernel is suitable
+ for KVM Linodes.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ label:
+ description: __Filterable__, __Read-only__ The friendly name of
+ this Kernel.
+ example: Latest 64 bit (4.15.7-x86_64-linode102)
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ pvops:
+ description: __Filterable__, __Read-only__ If this Kernel is suitable
+ for paravirtualized operations.
+ example: false
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ version:
+ description: __Filterable__, __Read-only__ Linux Kernel version.
+ example: 4.15.7
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/kernel.yaml
+ x-example:
+ x-ref: ../examples/get-kernel-200.json
+ description: A single Kernel object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: Get a kernel
+ tags:
+ - Kernels
+ x-akamai:
+ tabs:
+ - syntax: linode-cli kernels view latest-64bit
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: view
+ parameters:
+ - description: ID of the Kernel to look up.
+ example: '{{kernelId}}'
+ in: path
+ name: kernelId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/kernel-id-path.yaml
+ x-akamai:
+ file-path: paths/kernel.yaml
+ path-info: /{apiVersion}/linode/kernels/{kernelId}
+ x-linode-cli-command: kernels
+ /linode/stackscripts:
+ post:
+ description: 'Creates a StackScript in your Account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-add-stack-script
+ operationId: post-add-stack-script
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: A StackScript enables you to quickly deploy a fully configured
+ application in an automated manner.
+ properties:
+ created:
+ description: __Read-only__ The date this StackScript was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ deployments_active:
+ description: __Read-only__ Count of currently active, deployed
+ Linodes created from this StackScript.
+ example: 1
+ readOnly: true
+ type: integer
+ deployments_total:
+ description: __Filterable__, __Read-only__ The total number of
+ times this StackScript has been deployed.
+ example: 12
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: __Filterable__ A description for the StackScript.
+ example: This StackScript installs and configures MySQL
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ The unique ID of this StackScript.
+ example: 10079
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ images:
+ description: 'An array of Image IDs. These are the Images that
+ can be deployed with this StackScript.
+
+
+ `any/all` indicates that all available Images, including private
+ Images, are accepted.'
+ example:
+ - linode/debian9
+ - linode/debian8
+ items:
+ type: string
+ type: array
+ x-linode-cli-display: 4
+ is_public:
+ description: __Filterable__ This determines whether other users
+ can use your StackScript. __Once a StackScript is made public,
+ it cannot be made private.__
+ example: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ label:
+ description: __Filterable__ The StackScript's label is for display
+ purposes only.
+ example: a-stackscript
+ maxLength: 128
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ mine:
+ description: __Filterable__, __Read-only__ Returns `true` if this
+ StackScript is owned by the account of the user making the request,
+ and the user making the request is unrestricted or has access
+ to this StackScript.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ rev_note:
+ description: __Filterable__ This field allows you to add notes
+ for the set of revisions made to this StackScript.
+ example: Set up MySQL
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ script:
+ description: The script to execute when provisioning a new Linode
+ with this StackScript.
+ example: \"#!/bin/bash\"
+ type: string
+ x-linode-cli-format: file
+ updated:
+ description: __Read-only__ The date this StackScript was last
+ updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ user_defined_fields:
+ description: __Read-only__ This is a list of fields defined with
+ a special syntax inside this StackScript that allow for supplying
+ customized parameters during deployment. See [Declare User-Defined
+ Fields (UDFs)](https://www.linode.com/docs/products/tools/stackscripts/guides/write-a-custom-script/#declare-user-defined-fields-udfs)
+ for more information.
+ example:
+ example: hunter2
+ label: Enter the DB password
+ name: DB_PASSWORD
+ items:
+ additionalProperties: false
+ description: A custom field defined by the User with a special
+ syntax within a StackScript. Derived from the contents of
+ the script.
+ properties:
+ default:
+ description: __Read-only__ The default value. If not specified,
+ this value will be used.
+ readOnly: true
+ type: string
+ example:
+ description: __Read-only__ An example value for the field.
+ example: hunter2
+ readOnly: true
+ type: string
+ label:
+ description: __Read-only__ A human-readable label for the
+ field that will serve as the input prompt for entering
+ the value during deployment.
+ example: Enter the password
+ readOnly: true
+ type: string
+ manyOf:
+ description: __Read-only__ A list of acceptable values for
+ the field in any quantity, combination or order.
+ example: avalue,anothervalue,thirdvalue
+ readOnly: true
+ type: string
+ name:
+ description: __Read-only__ The name of the field.
+ example: DB_PASSWORD
+ readOnly: true
+ type: string
+ oneOf:
+ description: __Read-only__ A list of acceptable single values
+ for the field.
+ example: avalue,anothervalue,thirdvalue
+ readOnly: true
+ type: string
+ required:
+ - label
+ - name
+ - example
+ type: object
+ x-akamai:
+ file-path: schemas/user-defined-field.yaml
+ readOnly: true
+ type: array
+ user_gravatar_id:
+ description: __Read-only__ The Gravatar ID for the User who created
+ the StackScript.
+ example: a445b305abda30ebc766bc7fda037c37
+ readOnly: true
+ type: string
+ username:
+ description: __Read-only__ The User who created the StackScript.
+ example: myuser
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/stack-script.yaml
+ required:
+ - script
+ - label
+ - images
+ x-akamai:
+ file-path: schemas/added-post-add-stack-script.yaml
+ x-example:
+ x-ref: ../examples/post-add-stack-script.json
+ description: The properties to set for the new StackScript.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A StackScript enables you to quickly deploy a fully configured
+ application in an automated manner.
+ properties:
+ created:
+ description: __Read-only__ The date this StackScript was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ deployments_active:
+ description: __Read-only__ Count of currently active, deployed
+ Linodes created from this StackScript.
+ example: 1
+ readOnly: true
+ type: integer
+ deployments_total:
+ description: __Filterable__, __Read-only__ The total number of
+ times this StackScript has been deployed.
+ example: 12
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: __Filterable__ A description for the StackScript.
+ example: This StackScript installs and configures MySQL
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ The unique ID of this StackScript.
+ example: 10079
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ images:
+ description: 'An array of Image IDs. These are the Images that
+ can be deployed with this StackScript.
+
+
+ `any/all` indicates that all available Images, including private
+ Images, are accepted.'
+ example:
+ - linode/debian9
+ - linode/debian8
+ items:
+ type: string
+ type: array
+ x-linode-cli-display: 4
+ is_public:
+ description: __Filterable__ This determines whether other users
+ can use your StackScript. __Once a StackScript is made public,
+ it cannot be made private.__
+ example: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ label:
+ description: __Filterable__ The StackScript's label is for display
+ purposes only.
+ example: a-stackscript
+ maxLength: 128
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ mine:
+ description: __Filterable__, __Read-only__ Returns `true` if this
+ StackScript is owned by the account of the user making the request,
+ and the user making the request is unrestricted or has access
+ to this StackScript.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ rev_note:
+ description: __Filterable__ This field allows you to add notes
+ for the set of revisions made to this StackScript.
+ example: Set up MySQL
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ script:
+ description: The script to execute when provisioning a new Linode
+ with this StackScript.
+ example: \"#!/bin/bash\"
+ type: string
+ x-linode-cli-format: file
+ updated:
+ description: __Read-only__ The date this StackScript was last
+ updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ user_defined_fields:
+ description: __Read-only__ This is a list of fields defined with
+ a special syntax inside this StackScript that allow for supplying
+ customized parameters during deployment. See [Declare User-Defined
+ Fields (UDFs)](https://www.linode.com/docs/products/tools/stackscripts/guides/write-a-custom-script/#declare-user-defined-fields-udfs)
+ for more information.
+ example:
+ example: hunter2
+ label: Enter the DB password
+ name: DB_PASSWORD
+ items:
+ additionalProperties: false
+ description: A custom field defined by the User with a special
+ syntax within a StackScript. Derived from the contents of
+ the script.
+ properties:
+ default:
+ description: __Read-only__ The default value. If not specified,
+ this value will be used.
+ readOnly: true
+ type: string
+ example:
+ description: __Read-only__ An example value for the field.
+ example: hunter2
+ readOnly: true
+ type: string
+ label:
+ description: __Read-only__ A human-readable label for the
+ field that will serve as the input prompt for entering
+ the value during deployment.
+ example: Enter the password
+ readOnly: true
+ type: string
+ manyOf:
+ description: __Read-only__ A list of acceptable values for
+ the field in any quantity, combination or order.
+ example: avalue,anothervalue,thirdvalue
+ readOnly: true
+ type: string
+ name:
+ description: __Read-only__ The name of the field.
+ example: DB_PASSWORD
+ readOnly: true
+ type: string
+ oneOf:
+ description: __Read-only__ A list of acceptable single values
+ for the field.
+ example: avalue,anothervalue,thirdvalue
+ readOnly: true
+ type: string
+ required:
+ - label
+ - name
+ - example
+ type: object
+ x-akamai:
+ file-path: schemas/user-defined-field.yaml
+ readOnly: true
+ type: array
+ user_gravatar_id:
+ description: __Read-only__ The Gravatar ID for the User who created
+ the StackScript.
+ example: a445b305abda30ebc766bc7fda037c37
+ readOnly: true
+ type: string
+ username:
+ description: __Read-only__ The User who created the StackScript.
+ example: myuser
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/stack-script.yaml
+ x-example:
+ x-ref: ../examples/post-add-stack-script-200.json
+ description: StackScript successfully created.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - stackscripts:read_write
+ summary: Create a StackScript
+ tags:
+ - StackScripts
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli stackscripts create \\\n --label a-stackscript \\\n\
+ \ --description \"This StackScript install and configures MySQL\" \\\n\
+ \ --images \"linode/debian9\" \\\n --images \"linode/debian8\" \\\n\
+ \ --is_public true \\\n --rev_note \"Set up MySQL\" \\\n --script '#!/bin/bash'"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: stackscripts:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: create
+ x-linode-grant: add_stackscripts
+ get:
+ description: 'If the request is not authenticated, only public StackScripts
+ are returned.
+
+
+ For more information on StackScripts, please read our [StackScripts documentation](https://www.linode.com/docs/products/tools/stackscripts/).
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-stack-scripts
+ operationId: get-stack-scripts
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: A StackScript enables you to quickly deploy a fully
+ configured application in an automated manner.
+ properties:
+ created:
+ description: __Read-only__ The date this StackScript was
+ created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ deployments_active:
+ description: __Read-only__ Count of currently active, deployed
+ Linodes created from this StackScript.
+ example: 1
+ readOnly: true
+ type: integer
+ deployments_total:
+ description: __Filterable__, __Read-only__ The total number
+ of times this StackScript has been deployed.
+ example: 12
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: __Filterable__ A description for the StackScript.
+ example: This StackScript installs and configures MySQL
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ The unique ID of this StackScript.
+ example: 10079
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ images:
+ description: 'An array of Image IDs. These are the Images
+ that can be deployed with this StackScript.
+
+
+ `any/all` indicates that all available Images, including
+ private Images, are accepted.'
+ example:
+ - linode/debian9
+ - linode/debian8
+ items:
+ type: string
+ type: array
+ x-linode-cli-display: 4
+ is_public:
+ description: __Filterable__ This determines whether other
+ users can use your StackScript. __Once a StackScript is
+ made public, it cannot be made private.__
+ example: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ label:
+ description: __Filterable__ The StackScript's label is for
+ display purposes only.
+ example: a-stackscript
+ maxLength: 128
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ mine:
+ description: __Filterable__, __Read-only__ Returns `true`
+ if this StackScript is owned by the account of the user
+ making the request, and the user making the request is
+ unrestricted or has access to this StackScript.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ rev_note:
+ description: __Filterable__ This field allows you to add
+ notes for the set of revisions made to this StackScript.
+ example: Set up MySQL
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ script:
+ description: The script to execute when provisioning a new
+ Linode with this StackScript.
+ example: \"#!/bin/bash\"
+ type: string
+ x-linode-cli-format: file
+ updated:
+ description: __Read-only__ The date this StackScript was
+ last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ user_defined_fields:
+ description: __Read-only__ This is a list of fields defined
+ with a special syntax inside this StackScript that allow
+ for supplying customized parameters during deployment.
+ See [Declare User-Defined Fields (UDFs)](https://www.linode.com/docs/products/tools/stackscripts/guides/write-a-custom-script/#declare-user-defined-fields-udfs)
+ for more information.
+ example:
+ example: hunter2
+ label: Enter the DB password
+ name: DB_PASSWORD
+ items:
+ additionalProperties: false
+ description: A custom field defined by the User with a
+ special syntax within a StackScript. Derived from the
+ contents of the script.
+ properties:
+ default:
+ description: __Read-only__ The default value. If
+ not specified, this value will be used.
+ readOnly: true
+ type: string
+ example:
+ description: __Read-only__ An example value for the
+ field.
+ example: hunter2
+ readOnly: true
+ type: string
+ label:
+ description: __Read-only__ A human-readable label
+ for the field that will serve as the input prompt
+ for entering the value during deployment.
+ example: Enter the password
+ readOnly: true
+ type: string
+ manyOf:
+ description: __Read-only__ A list of acceptable values
+ for the field in any quantity, combination or order.
+ example: avalue,anothervalue,thirdvalue
+ readOnly: true
+ type: string
+ name:
+ description: __Read-only__ The name of the field.
+ example: DB_PASSWORD
+ readOnly: true
+ type: string
+ oneOf:
+ description: __Read-only__ A list of acceptable single
+ values for the field.
+ example: avalue,anothervalue,thirdvalue
+ readOnly: true
+ type: string
+ required:
+ - label
+ - name
+ - example
+ type: object
+ x-akamai:
+ file-path: schemas/user-defined-field.yaml
+ readOnly: true
+ type: array
+ user_gravatar_id:
+ description: __Read-only__ The Gravatar ID for the User
+ who created the StackScript.
+ example: a445b305abda30ebc766bc7fda037c37
+ readOnly: true
+ type: string
+ username:
+ description: __Read-only__ The User who created the StackScript.
+ example: myuser
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/stack-script.yaml
+ type: array
+ page:
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-stack-scripts-200.yaml
+ x-example:
+ x-ref: ../examples/get-stack-scripts-200.json
+ description: A list of StackScripts available to the User, including private
+ StackScripts owned by the User if the request is authenticated.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - stackscripts:read_only
+ summary: List StackScripts
+ tags:
+ - StackScripts
+ x-akamai:
+ tabs:
+ - syntax: linode-cli stackscripts list
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: stackscripts:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/stack-scripts.yaml
+ path-info: /{apiVersion}/linode/stackscripts
+ x-linode-cli-command: stackscripts
+ /linode/stackscripts/{stackscriptId}:
+ get:
+ description: 'Returns all of the information about a specified StackScript,
+ including the contents of the script.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-stack-script
+ operationId: get-stack-script
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A StackScript enables you to quickly deploy a fully configured
+ application in an automated manner.
+ properties:
+ created:
+ description: __Read-only__ The date this StackScript was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ deployments_active:
+ description: __Read-only__ Count of currently active, deployed
+ Linodes created from this StackScript.
+ example: 1
+ readOnly: true
+ type: integer
+ deployments_total:
+ description: __Filterable__, __Read-only__ The total number of
+ times this StackScript has been deployed.
+ example: 12
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: __Filterable__ A description for the StackScript.
+ example: This StackScript installs and configures MySQL
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ The unique ID of this StackScript.
+ example: 10079
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ images:
+ description: 'An array of Image IDs. These are the Images that
+ can be deployed with this StackScript.
+
+
+ `any/all` indicates that all available Images, including private
+ Images, are accepted.'
+ example:
+ - linode/debian9
+ - linode/debian8
+ items:
+ type: string
+ type: array
+ x-linode-cli-display: 4
+ is_public:
+ description: __Filterable__ This determines whether other users
+ can use your StackScript. __Once a StackScript is made public,
+ it cannot be made private.__
+ example: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ label:
+ description: __Filterable__ The StackScript's label is for display
+ purposes only.
+ example: a-stackscript
+ maxLength: 128
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ mine:
+ description: __Filterable__, __Read-only__ Returns `true` if this
+ StackScript is owned by the account of the user making the request,
+ and the user making the request is unrestricted or has access
+ to this StackScript.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ rev_note:
+ description: __Filterable__ This field allows you to add notes
+ for the set of revisions made to this StackScript.
+ example: Set up MySQL
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ script:
+ description: The script to execute when provisioning a new Linode
+ with this StackScript.
+ example: \"#!/bin/bash\"
+ type: string
+ x-linode-cli-format: file
+ updated:
+ description: __Read-only__ The date this StackScript was last
+ updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ user_defined_fields:
+ description: __Read-only__ This is a list of fields defined with
+ a special syntax inside this StackScript that allow for supplying
+ customized parameters during deployment. See [Declare User-Defined
+ Fields (UDFs)](https://www.linode.com/docs/products/tools/stackscripts/guides/write-a-custom-script/#declare-user-defined-fields-udfs)
+ for more information.
+ example:
+ example: hunter2
+ label: Enter the DB password
+ name: DB_PASSWORD
+ items:
+ additionalProperties: false
+ description: A custom field defined by the User with a special
+ syntax within a StackScript. Derived from the contents of
+ the script.
+ properties:
+ default:
+ description: __Read-only__ The default value. If not specified,
+ this value will be used.
+ readOnly: true
+ type: string
+ example:
+ description: __Read-only__ An example value for the field.
+ example: hunter2
+ readOnly: true
+ type: string
+ label:
+ description: __Read-only__ A human-readable label for the
+ field that will serve as the input prompt for entering
+ the value during deployment.
+ example: Enter the password
+ readOnly: true
+ type: string
+ manyOf:
+ description: __Read-only__ A list of acceptable values for
+ the field in any quantity, combination or order.
+ example: avalue,anothervalue,thirdvalue
+ readOnly: true
+ type: string
+ name:
+ description: __Read-only__ The name of the field.
+ example: DB_PASSWORD
+ readOnly: true
+ type: string
+ oneOf:
+ description: __Read-only__ A list of acceptable single values
+ for the field.
+ example: avalue,anothervalue,thirdvalue
+ readOnly: true
+ type: string
+ required:
+ - label
+ - name
+ - example
+ type: object
+ x-akamai:
+ file-path: schemas/user-defined-field.yaml
+ readOnly: true
+ type: array
+ user_gravatar_id:
+ description: __Read-only__ The Gravatar ID for the User who created
+ the StackScript.
+ example: a445b305abda30ebc766bc7fda037c37
+ readOnly: true
+ type: string
+ username:
+ description: __Read-only__ The User who created the StackScript.
+ example: myuser
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/stack-script.yaml
+ x-example:
+ x-ref: ../examples/get-stack-script-200.json
+ description: A single StackScript.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - stackscripts:read_only
+ summary: Get a StackScript
+ tags:
+ - StackScripts
+ x-akamai:
+ tabs:
+ - syntax: linode-cli stackscripts view 10079
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: stackscripts:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ x-linode-grant: read_only
+ put:
+ description: 'Updates a StackScript.
+
+
+ __Once a StackScript is made public, it cannot be made private.__
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-stack-script
+ operationId: put-stack-script
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A StackScript enables you to quickly deploy a fully configured
+ application in an automated manner.
+ properties:
+ created:
+ description: __Read-only__ The date this StackScript was created.
+ example: '{{created}}'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ deployments_active:
+ description: __Read-only__ Count of currently active, deployed Linodes
+ created from this StackScript.
+ example: '{{deployments_active}}'
+ readOnly: true
+ type: integer
+ deployments_total:
+ description: __Filterable__, __Read-only__ The total number of times
+ this StackScript has been deployed.
+ example: '{{deployments_total}}'
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: __Filterable__ A description for the StackScript.
+ example: '{{description}}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ The unique ID of this StackScript.
+ example: '{{id}}'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ images:
+ description: 'An array of Image IDs. These are the Images that can
+ be deployed with this StackScript.
+
+
+ `any/all` indicates that all available Images, including private
+ Images, are accepted.'
+ example:
+ - linode/debian9
+ - linode/debian8
+ items:
+ type: string
+ type: array
+ x-linode-cli-display: 4
+ is_public:
+ description: __Filterable__ This determines whether other users
+ can use your StackScript. __Once a StackScript is made public,
+ it cannot be made private.__
+ example: '{{is_public}}'
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ label:
+ description: __Filterable__ The StackScript's label is for display
+ purposes only.
+ example: '{{label}}'
+ maxLength: 128
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ mine:
+ description: __Filterable__, __Read-only__ Returns `true` if this
+ StackScript is owned by the account of the user making the request,
+ and the user making the request is unrestricted or has access
+ to this StackScript.
+ example: '{{mine}}'
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ rev_note:
+ description: __Filterable__ This field allows you to add notes for
+ the set of revisions made to this StackScript.
+ example: '{{rev_note}}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ script:
+ description: The script to execute when provisioning a new Linode
+ with this StackScript.
+ example: '{{script}}'
+ type: string
+ x-linode-cli-format: file
+ updated:
+ description: __Read-only__ The date this StackScript was last updated.
+ example: '{{updated}}'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ user_defined_fields:
+ description: __Read-only__ This is a list of fields defined with
+ a special syntax inside this StackScript that allow for supplying
+ customized parameters during deployment. See [Declare User-Defined
+ Fields (UDFs)](https://www.linode.com/docs/products/tools/stackscripts/guides/write-a-custom-script/#declare-user-defined-fields-udfs)
+ for more information.
+ example:
+ example: hunter2
+ label: Enter the DB password
+ name: DB_PASSWORD
+ items:
+ additionalProperties: false
+ description: A custom field defined by the User with a special
+ syntax within a StackScript. Derived from the contents of the
+ script.
+ properties:
+ default:
+ description: __Read-only__ The default value. If not specified,
+ this value will be used.
+ readOnly: true
+ type: string
+ example:
+ description: __Read-only__ An example value for the field.
+ example: hunter2
+ readOnly: true
+ type: string
+ label:
+ description: __Read-only__ A human-readable label for the
+ field that will serve as the input prompt for entering the
+ value during deployment.
+ example: Enter the password
+ readOnly: true
+ type: string
+ manyOf:
+ description: __Read-only__ A list of acceptable values for
+ the field in any quantity, combination or order.
+ example: avalue,anothervalue,thirdvalue
+ readOnly: true
+ type: string
+ name:
+ description: __Read-only__ The name of the field.
+ example: DB_PASSWORD
+ readOnly: true
+ type: string
+ oneOf:
+ description: __Read-only__ A list of acceptable single values
+ for the field.
+ example: avalue,anothervalue,thirdvalue
+ readOnly: true
+ type: string
+ required:
+ - label
+ - name
+ - example
+ type: object
+ x-akamai:
+ file-path: schemas/user-defined-field.yaml
+ readOnly: true
+ type: array
+ user_gravatar_id:
+ description: __Read-only__ The Gravatar ID for the User who created
+ the StackScript.
+ example: '{{user_gravatar_id}}'
+ readOnly: true
+ type: string
+ username:
+ description: __Read-only__ The User who created the StackScript.
+ example: '{{username}}'
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/stack-script.yaml
+ x-example:
+ x-ref: ../examples/put-stack-script.json
+ description: The fields to update.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A StackScript enables you to quickly deploy a fully configured
+ application in an automated manner.
+ properties:
+ created:
+ description: __Read-only__ The date this StackScript was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ deployments_active:
+ description: __Read-only__ Count of currently active, deployed
+ Linodes created from this StackScript.
+ example: 1
+ readOnly: true
+ type: integer
+ deployments_total:
+ description: __Filterable__, __Read-only__ The total number of
+ times this StackScript has been deployed.
+ example: 12
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: __Filterable__ A description for the StackScript.
+ example: This StackScript installs and configures MySQL
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ The unique ID of this StackScript.
+ example: 10079
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ images:
+ description: 'An array of Image IDs. These are the Images that
+ can be deployed with this StackScript.
+
+
+ `any/all` indicates that all available Images, including private
+ Images, are accepted.'
+ example:
+ - linode/debian9
+ - linode/debian8
+ items:
+ type: string
+ type: array
+ x-linode-cli-display: 4
+ is_public:
+ description: __Filterable__ This determines whether other users
+ can use your StackScript. __Once a StackScript is made public,
+ it cannot be made private.__
+ example: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ label:
+ description: __Filterable__ The StackScript's label is for display
+ purposes only.
+ example: a-stackscript
+ maxLength: 128
+ minLength: 3
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ mine:
+ description: __Filterable__, __Read-only__ Returns `true` if this
+ StackScript is owned by the account of the user making the request,
+ and the user making the request is unrestricted or has access
+ to this StackScript.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ rev_note:
+ description: __Filterable__ This field allows you to add notes
+ for the set of revisions made to this StackScript.
+ example: Set up MySQL
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ script:
+ description: The script to execute when provisioning a new Linode
+ with this StackScript.
+ example: \"#!/bin/bash\"
+ type: string
+ x-linode-cli-format: file
+ updated:
+ description: __Read-only__ The date this StackScript was last
+ updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ user_defined_fields:
+ description: __Read-only__ This is a list of fields defined with
+ a special syntax inside this StackScript that allow for supplying
+ customized parameters during deployment. See [Declare User-Defined
+ Fields (UDFs)](https://www.linode.com/docs/products/tools/stackscripts/guides/write-a-custom-script/#declare-user-defined-fields-udfs)
+ for more information.
+ example:
+ example: hunter2
+ label: Enter the DB password
+ name: DB_PASSWORD
+ items:
+ additionalProperties: false
+ description: A custom field defined by the User with a special
+ syntax within a StackScript. Derived from the contents of
+ the script.
+ properties:
+ default:
+ description: __Read-only__ The default value. If not specified,
+ this value will be used.
+ readOnly: true
+ type: string
+ example:
+ description: __Read-only__ An example value for the field.
+ example: hunter2
+ readOnly: true
+ type: string
+ label:
+ description: __Read-only__ A human-readable label for the
+ field that will serve as the input prompt for entering
+ the value during deployment.
+ example: Enter the password
+ readOnly: true
+ type: string
+ manyOf:
+ description: __Read-only__ A list of acceptable values for
+ the field in any quantity, combination or order.
+ example: avalue,anothervalue,thirdvalue
+ readOnly: true
+ type: string
+ name:
+ description: __Read-only__ The name of the field.
+ example: DB_PASSWORD
+ readOnly: true
+ type: string
+ oneOf:
+ description: __Read-only__ A list of acceptable single values
+ for the field.
+ example: avalue,anothervalue,thirdvalue
+ readOnly: true
+ type: string
+ required:
+ - label
+ - name
+ - example
+ type: object
+ x-akamai:
+ file-path: schemas/user-defined-field.yaml
+ readOnly: true
+ type: array
+ user_gravatar_id:
+ description: __Read-only__ The Gravatar ID for the User who created
+ the StackScript.
+ example: a445b305abda30ebc766bc7fda037c37
+ readOnly: true
+ type: string
+ username:
+ description: __Read-only__ The User who created the StackScript.
+ example: myuser
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ type: object
+ x-akamai:
+ file-path: schemas/stack-script.yaml
+ x-example:
+ x-ref: ../examples/get-stack-script-200.json
+ description: StackScript was successfully modified.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - stackscripts:read_write
+ summary: Update a StackScript
+ tags:
+ - StackScripts
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli stackscripts update 10079 \\\n --label a-stackscript\
+ \ \\\n --description \"This StackScript installs \\\n and configures\
+ \ MySQL\" \\\n --images \"linode/debian9\" \\\n --images \"linode/debian8\"\
+ \ \\\n --is_public true \\\n --rev_note \"Set up MySQL\" \\\n --script\
+ \ '#!/bin/bash'"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: stackscripts:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update
+ x-linode-grant: read_write
+ delete:
+ description: 'Deletes a private StackScript you have permission to `read_write`.
+ You cannot delete a public StackScript.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-stack-script
+ operationId: delete-stack-script
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-stack-script-200.json
+ description: StackScript was deleted.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - stackscripts:read_write
+ summary: Delete a StackScript
+ tags:
+ - StackScripts
+ x-akamai:
+ tabs:
+ - syntax: linode-cli stackscripts delete 10079
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: stackscripts:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - delete
+ - rm
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the StackScript to look up.
+ example: '{{stackscriptId}}'
+ in: path
+ name: stackscriptId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/stackscript-id-path.yaml
+ x-akamai:
+ file-path: paths/stack-script.yaml
+ path-info: /{apiVersion}/linode/stackscripts/{stackscriptId}
+ x-linode-cli-command: stackscripts
+ /linode/types:
+ get:
+ description: 'Returns Linode Types, including pricing and specifications for
+ each Type. Use these when [creating](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+ or [resizing](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance)
+ Linodes.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-types
+ operationId: get-linode-types
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ description: The Linode types.
+ items:
+ additionalProperties: false
+ description: The available Linode types, including pricing and
+ specifications for each. Use them when [creating](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+ or [resizing](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance)
+ Linodes.
+ properties:
+ addons:
+ additionalProperties: false
+ description: __Read-only__ Optional add-on services for
+ Linodes and their associated cost.
+ properties:
+ backups:
+ additionalProperties: false
+ description: __Read-only__ Details on the optional backup
+ service available with a Linode.
+ properties:
+ price:
+ additionalProperties: false
+ description: The default cost to enable the Backups
+ service for this Linode type. Prices are in U.S.
+ dollars, broken down into hourly and monthly charges.
+ Different prices apply in different regions. For
+ region-specific prices, see `region_prices`.
+ properties:
+ hourly:
+ description: The hourly cost for the Backups
+ service, in U.S. dollars.
+ example: 0.008
+ type: number
+ monthly:
+ description: The monthly cost for the Backups
+ service, in U.S. dollars.
+ example: 5
+ type: number
+ type: object
+ region_prices:
+ items:
+ additionalProperties: false
+ properties:
+ hourly:
+ description: The hourly cost for the Backups
+ service in this region, in U.S. dollars.
+ example: 0.0096
+ type: number
+ id:
+ description: The unique identifier for the
+ region.
+ example: us-east
+ type: string
+ monthly:
+ description: The monthly cost for the Backups
+ service in this region, in U.S. dollars.
+ example: 6
+ type: number
+ type: object
+ type: array
+ readOnly: true
+ type: object
+ readOnly: true
+ type: object
+ class:
+ description: "__Filterable__, __Read-only__ The class of\
+ \ the Linode type.\n\n- `nanode`. These instances are\
+ \ good for low-duty workloads, where performance isn't\
+ \ critical.\n\n- `standard`. These instances are good\
+ \ for medium-duty workloads, and offer a good mix of performance,\
+ \ resources, and price.\n\n- `dedicated`. These instances\
+ \ are good for full-duty workloads where consistent performance\
+ \ is important.\n\n- `premium` (limited regions). This\
+ \ includes the features of a `dedicated` instance as well\
+ \ as the latest AMD EPYC™ CPUs. This ensures your\
+ \ applications are running on the latest hardware with\
+ \ consistently high performance. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions)\
+ \ with \"Premium Plans\" in their `capabilities`.\n\n\
+ - `gpu` (limited regions). Linodes with dedicated NVIDIA\
+ \ Quadro® RTX 6000 GPUs accelerate highly specialized\
+ \ applications such as machine learning, AI, and video\
+ \ transcoding. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions)\
+ \ with `GPU Linodes` in their `capabilities`.\n\n- `accelerated`\
+ \ (limited regions). These leverage the power of dedicated,\
+ \ application-specific integrated circuits (ASIC), starting\
+ \ with NETINT Video Processing Units (VPUs). They're ideal\
+ \ for video transcoding, media processing, and other compute-heavy\
+ \ workloads. Designed to offload specialized tasks, these\
+ \ instances deliver faster processing times and greater\
+ \ efficiency than traditional CPU-based solutions. Only\
+ \ available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions)\
+ \ with `Accelerated` in their `capabilities`.\n\n- `highmem`.\
+ \ High Memory instances favor RAM over other resources,\
+ \ and can be good for memory hungry use cases like caching\
+ \ and in-memory databases. All High Memory plans contain\
+ \ dedicated CPU cores.\n\n> \U0001F4D8\n>\n> - A `nanode`\
+ \ class is listed as a 1 GB Linode in Cloud Manager. The\
+ \ API, the CLI, and billing continue to refer to these\
+ \ as a Nanode.\n>\n> - A `standard` class is listed as\
+ \ a Shared Linode in Cloud Manager. The API, the CLI,\
+ \ and billing still refer to these as Standard."
+ enum:
+ - nanode
+ - standard
+ - dedicated
+ - premium
+ - gpu
+ - accelerated
+ - highmem
+ example: standard
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ disk:
+ description: __Filterable__, __Read-only__ The Linode type's
+ disk size in MB.
+ example: 81920
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ gpus:
+ description: __Filterable__, __Read-only__ The number of
+ GPUs this Linode type offers.
+ example: 0
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6.5
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ The ID representing the Linode
+ type.
+ example: g6-standard-2
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: __Filterable__, __Read-only__ The display name
+ for the Linode type.
+ example: Linode 4GB
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ memory:
+ description: __Filterable__, __Read-only__ Amount of RAM
+ included in this Linode type.
+ example: 4096
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ network_out:
+ description: __Filterable__, __Read-only__ The Mbits outbound
+ bandwidth allocation.
+ example: 1000
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ price:
+ additionalProperties: false
+ description: __Read-only__ The default cost of provisioning
+ this Linode type. Prices are in U.S. dollars, broken down
+ into hourly and monthly charges. Certain regions have
+ different prices. For region-specific pricing, see `region_prices`.
+ properties:
+ hourly:
+ description: The cost per hour in U.S. dollars.
+ example: 0.03
+ type: number
+ x-linode-cli-display: 9
+ monthly:
+ description: The cost per month in U.S. dollars.
+ example: 20
+ type: number
+ x-linode-cli-display: 10
+ readOnly: true
+ type: object
+ region_prices:
+ items:
+ additionalProperties: false
+ properties:
+ hourly:
+ description: The cost per hour for this region in
+ U.S. dollars.
+ example: 0.036
+ type: number
+ id:
+ description: The unique identifier for the region.
+ example: us-east
+ type: string
+ monthly:
+ description: The cost per month for this region in
+ U.S. dollars.
+ example: 24
+ type: number
+ type: object
+ type: array
+ successor:
+ description: __Read-only__ After a [mutate](https://techdocs.akamai.com/linode-api/reference/post-mutate-linode-instance),
+ the Linode is upgraded to this Linode type. If `null`,
+ this Linode type can't be mutated.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ transfer:
+ description: __Filterable__, __Read-only__ The monthly outbound
+ transfer amount in MB.
+ example: 4000
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ vcpus:
+ description: __Filterable__, __Read-only__ The number of
+ VCPU cores this Linode type offers.
+ example: 2
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/linode-type.yaml
+ type: array
+ page:
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-linode-types-200.yaml
+ x-example:
+ x-ref: ../examples/get-linode-types-200.json
+ description: A collection of Linode Types.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: List types
+ tags:
+ - Linode types
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes types
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: types
+ x-linode-redoc-load-ids: true
+ parameters: []
+ x-akamai:
+ file-path: paths/linode-types.yaml
+ path-info: /{apiVersion}/linode/types
+ x-linode-cli-command: linodes
+ /linode/types/{typeId}:
+ get:
+ description: 'Returns information about a specific Linode Type, including pricing
+ and specifications. This is used when [creating](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+ or [resizing](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance)
+ Linodes.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-linode-type
+ operationId: get-linode-type
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: The available Linode types, including pricing and specifications
+ for each. Use them when [creating](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+ or [resizing](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance)
+ Linodes.
+ properties:
+ addons:
+ additionalProperties: false
+ description: __Read-only__ Optional add-on services for Linodes
+ and their associated cost.
+ properties:
+ backups:
+ additionalProperties: false
+ description: __Read-only__ Details on the optional backup
+ service available with a Linode.
+ properties:
+ price:
+ additionalProperties: false
+ description: The default cost to enable the Backups service
+ for this Linode type. Prices are in U.S. dollars, broken
+ down into hourly and monthly charges. Different prices
+ apply in different regions. For region-specific prices,
+ see `region_prices`.
+ properties:
+ hourly:
+ description: The hourly cost for the Backups service,
+ in U.S. dollars.
+ example: 0.008
+ type: number
+ monthly:
+ description: The monthly cost for the Backups service,
+ in U.S. dollars.
+ example: 5
+ type: number
+ type: object
+ region_prices:
+ items:
+ additionalProperties: false
+ properties:
+ hourly:
+ description: The hourly cost for the Backups service
+ in this region, in U.S. dollars.
+ example: 0.0096
+ type: number
+ id:
+ description: The unique identifier for the region.
+ example: us-east
+ type: string
+ monthly:
+ description: The monthly cost for the Backups service
+ in this region, in U.S. dollars.
+ example: 6
+ type: number
+ type: object
+ type: array
+ readOnly: true
+ type: object
+ readOnly: true
+ type: object
+ class:
+ description: "__Filterable__, __Read-only__ The class of the Linode\
+ \ type.\n\n- `nanode`. These instances are good for low-duty\
+ \ workloads, where performance isn't critical.\n\n- `standard`.\
+ \ These instances are good for medium-duty workloads, and offer\
+ \ a good mix of performance, resources, and price.\n\n- `dedicated`.\
+ \ These instances are good for full-duty workloads where consistent\
+ \ performance is important.\n\n- `premium` (limited regions).\
+ \ This includes the features of a `dedicated` instance as well\
+ \ as the latest AMD EPYC™ CPUs. This ensures your applications\
+ \ are running on the latest hardware with consistently high\
+ \ performance. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions)\
+ \ with \"Premium Plans\" in their `capabilities`.\n\n- `gpu`\
+ \ (limited regions). Linodes with dedicated NVIDIA Quadro®\
+ \ RTX 6000 GPUs accelerate highly specialized applications such\
+ \ as machine learning, AI, and video transcoding. Only available\
+ \ in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions)\
+ \ with `GPU Linodes` in their `capabilities`.\n\n- `accelerated`\
+ \ (limited regions). These leverage the power of dedicated,\
+ \ application-specific integrated circuits (ASIC), starting\
+ \ with NETINT Video Processing Units (VPUs). They're ideal for\
+ \ video transcoding, media processing, and other compute-heavy\
+ \ workloads. Designed to offload specialized tasks, these instances\
+ \ deliver faster processing times and greater efficiency than\
+ \ traditional CPU-based solutions. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions)\
+ \ with `Accelerated` in their `capabilities`.\n\n- `highmem`.\
+ \ High Memory instances favor RAM over other resources, and\
+ \ can be good for memory hungry use cases like caching and in-memory\
+ \ databases. All High Memory plans contain dedicated CPU cores.\n\
+ \n> \U0001F4D8\n>\n> - A `nanode` class is listed as a 1 GB\
+ \ Linode in Cloud Manager. The API, the CLI, and billing continue\
+ \ to refer to these as a Nanode.\n>\n> - A `standard` class\
+ \ is listed as a Shared Linode in Cloud Manager. The API, the\
+ \ CLI, and billing still refer to these as Standard."
+ enum:
+ - nanode
+ - standard
+ - dedicated
+ - premium
+ - gpu
+ - accelerated
+ - highmem
+ example: standard
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ disk:
+ description: __Filterable__, __Read-only__ The Linode type's disk
+ size in MB.
+ example: 81920
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ gpus:
+ description: __Filterable__, __Read-only__ The number of GPUs
+ this Linode type offers.
+ example: 0
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6.5
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ The ID representing the Linode type.
+ example: g6-standard-2
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: __Filterable__, __Read-only__ The display name for
+ the Linode type.
+ example: Linode 4GB
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ memory:
+ description: __Filterable__, __Read-only__ Amount of RAM included
+ in this Linode type.
+ example: 4096
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ network_out:
+ description: __Filterable__, __Read-only__ The Mbits outbound
+ bandwidth allocation.
+ example: 1000
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ price:
+ additionalProperties: false
+ description: __Read-only__ The default cost of provisioning this
+ Linode type. Prices are in U.S. dollars, broken down into hourly
+ and monthly charges. Certain regions have different prices.
+ For region-specific pricing, see `region_prices`.
+ properties:
+ hourly:
+ description: The cost per hour in U.S. dollars.
+ example: 0.03
+ type: number
+ x-linode-cli-display: 9
+ monthly:
+ description: The cost per month in U.S. dollars.
+ example: 20
+ type: number
+ x-linode-cli-display: 10
+ readOnly: true
+ type: object
+ region_prices:
+ items:
+ additionalProperties: false
+ properties:
+ hourly:
+ description: The cost per hour for this region in U.S. dollars.
+ example: 0.036
+ type: number
+ id:
+ description: The unique identifier for the region.
+ example: us-east
+ type: string
+ monthly:
+ description: The cost per month for this region in U.S.
+ dollars.
+ example: 24
+ type: number
+ type: object
+ type: array
+ successor:
+ description: __Read-only__ After a [mutate](https://techdocs.akamai.com/linode-api/reference/post-mutate-linode-instance),
+ the Linode is upgraded to this Linode type. If `null`, this
+ Linode type can't be mutated.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ transfer:
+ description: __Filterable__, __Read-only__ The monthly outbound
+ transfer amount in MB.
+ example: 4000
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ vcpus:
+ description: __Filterable__, __Read-only__ The number of VCPU
+ cores this Linode type offers.
+ example: 2
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/linode-type.yaml
+ x-example:
+ x-ref: ../examples/get-linode-type-200.json
+ x-linode-cli-subtables:
+ - region_prices
+ description: A single Linode Type.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: Get a type
+ tags:
+ - Linode types
+ x-akamai:
+ tabs:
+ - syntax: linode-cli linodes type-view g6-standard-2
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: type-view
+ parameters:
+ - description: The ID of the Linode Type to look up.
+ example: '{{typeId}}'
+ in: path
+ name: typeId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/type-id-path-ef9c5d29.yaml
+ x-akamai:
+ file-path: paths/linode-type.yaml
+ path-info: /{apiVersion}/linode/types/{typeId}
+ x-linode-cli-command: linodes
+components:
+ x-stackQL-resources:
+ instances:
+ id: linode.linode.instances
+ name: instances
+ title: Instances
+ methods:
+ post_linode_instance:
+ operation:
+ $ref: '#/paths/~1linode~1instances/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_linode_instances:
+ operation:
+ $ref: '#/paths/~1linode~1instances/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_linode_instance:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_linode_instance:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_linode_instance:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_boot_linode_instance:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1boot/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_clone_linode_instance:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1clone/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_migrate_linode_instance:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1migrate/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_mutate_linode_instance:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1mutate/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_reset_linode_password:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1password/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_reboot_linode_instance:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1reboot/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_rebuild_linode_instance:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1rebuild/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_rescue_linode_instance:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1rescue/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_resize_linode_instance:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1resize/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_shutdown_linode_instance:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1shutdown/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/instances/methods/get_linode_instance'
+ - $ref: '#/components/x-stackQL-resources/instances/methods/get_linode_instances'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/instances/methods/post_linode_instance'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/instances/methods/delete_linode_instance'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/instances/methods/put_linode_instance'
+ backups:
+ id: linode.linode.backups
+ name: backups
+ title: Backups
+ methods:
+ post_snapshot:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1backups/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_backups:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1backups/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_cancel_backups:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1backups~1cancel/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_enable_backups:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1backups~1enable/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_backup:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1backups~1{backupId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_restore_backup:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1backups~1{backupId}~1restore/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/backups/methods/get_backup'
+ - $ref: '#/components/x-stackQL-resources/backups/methods/get_backups'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/backups/methods/post_snapshot'
+ update: []
+ delete: []
+ replace: []
+ config_profiles:
+ id: linode.linode.config_profiles
+ name: config_profiles
+ title: Config Profiles
+ methods:
+ post_add_linode_config:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_linode_configs:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_linode_config:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs~1{configId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_linode_config:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs~1{configId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_linode_config:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs~1{configId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/config_profiles/methods/get_linode_config'
+ - $ref: '#/components/x-stackQL-resources/config_profiles/methods/get_linode_configs'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/config_profiles/methods/post_add_linode_config'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/config_profiles/methods/delete_linode_config'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/config_profiles/methods/put_linode_config'
+ config_profile_interfaces:
+ id: linode.linode.config_profile_interfaces
+ name: config_profile_interfaces
+ title: Config Profile Interfaces
+ methods:
+ post_linode_config_interface:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs~1{configId}~1interfaces/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_linode_config_interfaces:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs~1{configId}~1interfaces/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_linode_config_interfaces:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs~1{configId}~1interfaces~1order/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_linode_config_interface:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs~1{configId}~1interfaces~1{interfaceId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_linode_config_interface:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs~1{configId}~1interfaces~1{interfaceId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_linode_config_interface:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1configs~1{configId}~1interfaces~1{interfaceId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/config_profile_interfaces/methods/get_linode_config_interface'
+ - $ref: '#/components/x-stackQL-resources/config_profile_interfaces/methods/get_linode_config_interfaces'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/config_profile_interfaces/methods/post_linode_config_interface'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/config_profile_interfaces/methods/delete_linode_config_interface'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/config_profile_interfaces/methods/put_linode_config_interface'
+ disks:
+ id: linode.linode.disks
+ name: disks
+ title: Disks
+ methods:
+ post_add_linode_disk:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_linode_disks:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_linode_disk:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks~1{diskId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_disk:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks~1{diskId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_disk:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks~1{diskId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_clone_linode_disk:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks~1{diskId}~1clone/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_reset_disk_password:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks~1{diskId}~1password/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_resize_disk:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1disks~1{diskId}~1resize/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/disks/methods/get_linode_disk'
+ - $ref: '#/components/x-stackQL-resources/disks/methods/get_linode_disks'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/disks/methods/post_add_linode_disk'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/disks/methods/delete_disk'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/disks/methods/put_disk'
+ firewalls:
+ id: linode.linode.firewalls
+ name: firewalls
+ title: Firewalls
+ methods:
+ get_linode_firewalls:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1firewalls/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_linode_firewalls:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1firewalls/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_apply_firewalls:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1firewalls~1apply/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/firewalls/methods/get_linode_firewalls'
+ insert: []
+ update: []
+ delete: []
+ replace:
+ - $ref: '#/components/x-stackQL-resources/firewalls/methods/put_linode_firewalls'
+ interfaces:
+ id: linode.linode.interfaces
+ name: interfaces
+ title: Interfaces
+ methods:
+ post_linode_interface:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1interfaces/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_linode_interfaces:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1interfaces/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_linode_interface:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1interfaces~1{interfaceId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_linode_interface:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1interfaces~1{interfaceId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_linode_interface:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1interfaces~1{interfaceId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_upgrade_linode_interfaces:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1upgrade-interfaces/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/interfaces/methods/get_linode_interface'
+ - $ref: '#/components/x-stackQL-resources/interfaces/methods/get_linode_interfaces'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/interfaces/methods/post_linode_interface'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/interfaces/methods/delete_linode_interface'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/interfaces/methods/put_linode_interface'
+ interface_settings:
+ id: linode.linode.interface_settings
+ name: interface_settings
+ title: Interface Settings
+ methods:
+ get_linode_interface_settings:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1interfaces~1settings/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_linode_interface_settings:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1interfaces~1settings/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/interface_settings/methods/get_linode_interface_settings'
+ insert: []
+ update: []
+ delete: []
+ replace:
+ - $ref: '#/components/x-stackQL-resources/interface_settings/methods/put_linode_interface_settings'
+ interface_firewalls:
+ id: linode.linode.interface_firewalls
+ name: interface_firewalls
+ title: Interface Firewalls
+ methods:
+ get_linode_interface_firewalls:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1interfaces~1{interfaceId}~1firewalls/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/interface_firewalls/methods/get_linode_interface_firewalls'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ ip_addresses:
+ id: linode.linode.ip_addresses
+ name: ip_addresses
+ title: Ip Addresses
+ methods:
+ post_add_linode_ip:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1ips/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_linode_ips:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1ips/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_linode_ip:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1ips~1{address}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_linode_ip:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1ips~1{address}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_linode_ip:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1ips~1{address}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/ip_addresses/methods/get_linode_ip'
+ - $ref: '#/components/x-stackQL-resources/ip_addresses/methods/get_linode_ips'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/ip_addresses/methods/post_add_linode_ip'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/ip_addresses/methods/delete_linode_ip'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/ip_addresses/methods/put_linode_ip'
+ node_balancers:
+ id: linode.linode.node_balancers
+ name: node_balancers
+ title: Node Balancers
+ methods:
+ get_linode_node_balancers:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1nodebalancers/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/node_balancers/methods/get_linode_node_balancers'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ statistics:
+ id: linode.linode.statistics
+ name: statistics
+ title: Statistics
+ methods:
+ get_linode_stats:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1stats/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_linode_stats_by_year_month:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1stats~1{year}~1{month}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/statistics/methods/get_linode_stats_by_year_month'
+ - $ref: '#/components/x-stackQL-resources/statistics/methods/get_linode_stats'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ network_transfers:
+ id: linode.linode.network_transfers
+ name: network_transfers
+ title: Network Transfers
+ methods:
+ get_linode_transfer:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1transfer/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/network_transfers/methods/get_linode_transfer'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ network_transfer_statistics:
+ id: linode.linode.network_transfer_statistics
+ name: network_transfer_statistics
+ title: Network Transfer Statistics
+ methods:
+ get_linode_transfer_by_year_month:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1transfer~1{year}~1{month}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/network_transfer_statistics/methods/get_linode_transfer_by_year_month'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ volumes:
+ id: linode.linode.volumes
+ name: volumes
+ title: Volumes
+ methods:
+ get_linode_volumes:
+ operation:
+ $ref: '#/paths/~1linode~1instances~1{linodeId}~1volumes/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/volumes/methods/get_linode_volumes'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ kernels:
+ id: linode.linode.kernels
+ name: kernels
+ title: Kernels
+ methods:
+ get_kernels:
+ operation:
+ $ref: '#/paths/~1linode~1kernels/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_kernel:
+ operation:
+ $ref: '#/paths/~1linode~1kernels~1{kernelId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/kernels/methods/get_kernel'
+ - $ref: '#/components/x-stackQL-resources/kernels/methods/get_kernels'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ stack_scripts:
+ id: linode.linode.stack_scripts
+ name: stack_scripts
+ title: Stack Scripts
+ methods:
+ post_add_stack_script:
+ operation:
+ $ref: '#/paths/~1linode~1stackscripts/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_stack_scripts:
+ operation:
+ $ref: '#/paths/~1linode~1stackscripts/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_stack_script:
+ operation:
+ $ref: '#/paths/~1linode~1stackscripts~1{stackscriptId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_stack_script:
+ operation:
+ $ref: '#/paths/~1linode~1stackscripts~1{stackscriptId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_stack_script:
+ operation:
+ $ref: '#/paths/~1linode~1stackscripts~1{stackscriptId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/stack_scripts/methods/get_stack_script'
+ - $ref: '#/components/x-stackQL-resources/stack_scripts/methods/get_stack_scripts'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/stack_scripts/methods/post_add_stack_script'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/stack_scripts/methods/delete_stack_script'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/stack_scripts/methods/put_stack_script'
+ types:
+ id: linode.linode.types
+ name: types
+ title: Types
+ methods:
+ get_linode_types:
+ operation:
+ $ref: '#/paths/~1linode~1types/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_linode_type:
+ operation:
+ $ref: '#/paths/~1linode~1types~1{typeId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/types/methods/get_linode_type'
+ - $ref: '#/components/x-stackQL-resources/types/methods/get_linode_types'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+servers:
+- url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/lke.yaml b/providers/src/linode/v00.00.00000/services/lke.yaml
index 8785112f..2309409b 100644
--- a/providers/src/linode/v00.00.00000/services/lke.yaml
+++ b/providers/src/linode/v00.00.00000/services/lke.yaml
@@ -1,2019 +1,6664 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
info:
- version: 4.147.0
- title: Linode API - lke
- description: lke
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- LKECluster:
- type: object
- description: A Kubernetes cluster.
- properties:
- id:
- type: integer
- description: This Kubernetes cluster's unique ID.
- readOnly: true
- x-linode-cli-display: 1
- example: 1234
- created:
- type: string
- format: date-time
- description: When this Kubernetes cluster was created.
- example: '2019-09-12T21:25:30Z'
- readOnly: true
- updated:
- type: string
- format: date-time
- description: When this Kubernetes cluster was updated.
- example: '2019-09-13T21:24:16Z'
- readOnly: true
- label:
- type: string
- description: |
- This Kubernetes cluster's unique label for display purposes only.
- Labels have the following constraints:
-
- * UTF-8 characters will be returned by the API using escape
- sequences of their Unicode code points. For example, the
- Japanese character *か* is 3 bytes in UTF-8 (`0xE382AB`). Its
- Unicode code point is 2 bytes (`0x30AB`). APIv4 supports this
- character and the API will return it as the escape sequence
- using six 1 byte characters which represent 2 bytes of Unicode
- code point (`"\u30ab"`).
- * 4 byte UTF-8 characters are not supported.
- * If the label is entirely composed of UTF-8 characters, the API
- response will return the code points using up to 193 1 byte
- characters.
- minLength: 1
- maxLength: 32
- x-linode-filterable: true
- x-linode-cli-display: 2
- example: lkecluster12345
- region:
- type: string
- description: This Kubernetes cluster's location.
- x-linode-filterable: true
- x-linode-cli-display: 3
- example: us-central
- k8s_version:
- type: string
- description: |
- The desired Kubernetes version for this Kubernetes cluster in the format of <major>.<minor>, and the latest supported patch version will be deployed.
- x-linode-filterable: true
- x-linode-cli-display: 4
- example: '1.25'
- 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 Avaialability 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`.
- x-linode-cli-display: 5
- example: true
- tags:
- x-linode-filterable: true
- type: array
- description: |
- An array of tags applied to the Kubernetes cluster. Tags are for organizational purposes only.
- items:
- type: string
- example:
- - ecomm
- - blogs
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- LKENodePoolRequestBody:
- type: object
- description: |
- Specifies a collection of Linodes which will be members of a Kubernetes cluster.
- properties:
- autoscaler:
- type: object
- description: |
- When enabled, the number of nodes autoscales within the defined minimum and maximum values.
-
- When making a request, `max` and `min` require each other.
- properties:
- enabled:
- type: boolean
- description: Whether autoscaling is enabled for this Node Pool. Defaults to `false`.
- example: true
- max:
- type: integer
- minimum: 1
- maximum: 100
- description: |
- The maximum number of nodes to autoscale to. Defaults to the Node Pool's `count`. Defaults to the value provided by the `count` field.
- example: 12
- min:
- type: integer
- minimum: 1
- maximum: 100
- description: The minimum number of nodes to autoscale to. Defaults to the Node Pool's `count`.
- example: 3
- type:
- $ref: '#/components/schemas/LKENodePool/properties/type'
- count:
- $ref: '#/components/schemas/LKENodePool/properties/count'
- disks:
- type: array
- x-linode-cli-format: json
- description: |
- **Note**: This field should be omitted except for special use cases. The disks specified here are
- partitions in *addition* to the primary partition and reduce the size of the primary partition,
- which can lead to stability problems for the Node.
-
- This Node Pool's custom disk layout. Each item in this array will create a new disk
- partition for each node in this Node Pool.
-
- * The custom disk layout is applied to each node in this Node Pool.
- * The maximum number of custom disk partitions that can be configured is 7.
- * Once the requested disk paritions are allocated, the remaining disk space is allocated to the node's boot disk.
- * A Node Pool's custom disk layout is immutable over the lifetime of the Node Pool.
- items:
- $ref: '#/components/schemas/LKENodePool/properties/disks/items'
- tags:
- $ref: '#/components/schemas/LKENodePool/properties/tags'
- LKENodePool:
- type: object
- description: |
- The set of Node Pools which are members of the Kubernetes cluster. Node Pools consist of a Linode type, the number of Linodes to deploy of that type, and additional status information.
- properties:
- autoscaler:
- type: object
- description: |
- When enabled, the number of nodes autoscales within the defined minimum and maximum values.
- properties:
- enabled:
- type: boolean
- description: Whether autoscaling is enabled for this Node Pool. Defaults to `false`.
- example: true
- max:
- type: integer
- minimum: 1
- maximum: 100
- description: The maximum number of nodes to autoscale to. Defaults to the Node Pool's `count`.
- example: 12
- min:
- type: integer
- minimum: 1
- maximum: 100
- description: The minimum number of nodes to autoscale to. Defaults to the Node Pool's `count`.
- example: 3
- type:
- type: string
- description: The Linode Type for all of the nodes in the Node Pool.
- example: g6-standard-4
- count:
- type: integer
- description: The number of nodes in the Node Pool.
- minimum: 1
- maximum: 100
- example: 6
- disks:
- type: array
- x-linode-cli-format: json
- description: |
- This Node Pool's custom disk layout.
- items:
- type: object
- description: |
- The values to assign to each partition in this Node Pool's custom disk layout.
- properties:
- size:
- description: |
- The size of this custom disk partition in MB.
-
- * The size of this disk partition must not exceed the capacity of the node's plan type.
- type: integer
- example: 1024
- type:
- description: |
- This custom disk partition's filesystem type.
- type: string
- enum:
- - raw
- - ext4
- example: ext-4
- id:
- type: integer
- description: |
- This Node Pool's unique ID.
- x-linode-filterable: true
- example: 456
- nodes:
- type: array
- description: |
- Status information for the Nodes which are members of this Node Pool. If a Linode has not been provisioned for a given Node slot, the instance_id will be returned as null.
- items:
- $ref: '#/components/schemas/LKENodeStatus'
- 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
- LKENodeStatus:
- type: object
- description: |
- Status information for a Node which is a member of a Kubernetes cluster.
- readOnly: true
- properties:
- id:
- type: string
- description: |
- The Node's ID.
- example: '123456'
- instance_id:
- type: string
- description: |
- The Linode's ID. When no Linode is currently provisioned for this Node, this will be null.
- example: 123458
- status:
- type: string
- description: |
- The Node's status as it pertains to being a Kubernetes node.
- enum:
- - ready
- - not_ready
- example: ready
- LKEVersion:
- type: object
- description: |
- LKE versions
- readOnly: true
- properties:
- id:
- type: string
- description: |
- 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.25'
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- clusters:
- id: linode.lke.clusters
- name: clusters
- title: Clusters
- methods:
- getLKEClusters:
- operation:
- $ref: '#/paths/~1lke~1clusters/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLKEClusters:
- operation:
- $ref: '#/paths/~1lke~1clusters/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createLKECluster:
- operation:
- $ref: '#/paths/~1lke~1clusters/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getLKECluster:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLKECluster:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- putLKECluster:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteLKECluster:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postLKEClusterRecycle:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1recycle/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postLKEClusterRegenerate:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1regenerate/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postLKECServiceTokenDelete:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1servicetoken/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/clusters/methods/getLKEClusters'
- - $ref: '#/components/x-stackQL-resources/clusters/methods/getLKECluster'
- insert:
- - $ref: '#/components/x-stackQL-resources/clusters/methods/createLKECluster'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/clusters/methods/deleteLKECluster'
- clusters_pools:
- id: linode.lke.clusters_pools
- name: clusters_pools
- title: Clusters Pools
- methods:
- getLKEClusterPools:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1pools/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLKEClusterPools:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1pools/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postLKEClusterPools:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1pools/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getLKENodePool:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1pools~1{poolId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLKENodePool:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1pools~1{poolId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- putLKENodePool:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1pools~1{poolId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteLKENodePool:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1pools~1{poolId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postLKEClusterPoolRecycle:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1pools~1{poolId}~1recycle/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/clusters_pools/methods/getLKEClusterPools'
- - $ref: '#/components/x-stackQL-resources/clusters_pools/methods/getLKENodePool'
- insert: []
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/clusters_pools/methods/deleteLKENodePool'
- clusters_nodes:
- id: linode.lke.clusters_nodes
- name: clusters_nodes
- title: Clusters Nodes
- methods:
- getLKEClusterNode:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1nodes~1{nodeId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getLKEClusterNode:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1nodes~1{nodeId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteLKEClusterNode:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1nodes~1{nodeId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postLKEClusterNodeRecycle:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1nodes~1{nodeId}~1recycle/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/clusters_nodes/methods/getLKEClusterNode'
- insert: []
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/clusters_nodes/methods/deleteLKEClusterNode'
- clusters_api_endpoints:
- id: linode.lke.clusters_api_endpoints
- name: clusters_api_endpoints
- title: Clusters Api Endpoints
- methods:
- getLKEClusterAPIEndpoints:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1api-endpoints/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLKEClusterAPIEndpoints:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1api-endpoints/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/clusters_api_endpoints/methods/getLKEClusterAPIEndpoints'
- insert: []
- update: []
- delete: []
- clusters_dashboard:
- id: linode.lke.clusters_dashboard
- name: clusters_dashboard
- title: Clusters Dashboard
- methods:
- getLKEClusterDashboard:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1dashboard/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getLKEClusterDashboard:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1dashboard/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/clusters_dashboard/methods/getLKEClusterDashboard'
- insert: []
- update: []
- delete: []
- clusters_kubeconfig:
- id: linode.lke.clusters_kubeconfig
- name: clusters_kubeconfig
- title: Clusters Kubeconfig
- methods:
- getLKEClusterKubeconfig:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1kubeconfig/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getLKEClusterKubeconfig:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1kubeconfig/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteLKEClusterKubeconfig:
- operation:
- $ref: '#/paths/~1lke~1clusters~1{clusterId}~1kubeconfig/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/clusters_kubeconfig/methods/getLKEClusterKubeconfig'
- insert: []
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/clusters_kubeconfig/methods/deleteLKEClusterKubeconfig'
- versions:
- id: linode.lke.versions
- name: versions
- title: Versions
- methods:
- getLKEVersions:
- operation:
- $ref: '#/paths/~1lke~1versions/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLKEVersions:
- operation:
- $ref: '#/paths/~1lke~1versions/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getLKEVersion:
- operation:
- $ref: '#/paths/~1lke~1versions~1{version}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLKEVersion:
- operation:
- $ref: '#/paths/~1lke~1versions~1{version}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/versions/methods/getLKEVersions'
- - $ref: '#/components/x-stackQL-resources/versions/methods/getLKEVersion'
- insert: []
- update: []
- delete: []
+ title: lke API
+ description: linode lke API
+ version: 4.208.1
paths:
/lke/clusters:
+ post:
+ 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
+ endpoints](https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-api-endpoints)
+ and the [Kubeconfig
+ file](https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-kubeconfig)
+ for the new cluster are ready.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-lke-cluster
+ operationId: post-lke-cluster
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ apl_enabled:
+ description: >-
+ __Write-once__ Indicates whether the Akamai App Platform is
+ installed during creation of the LKE cluster. It defaults to
+ `false`. If set to `true`, `control_plane.high_availability`
+ also needs to be `true`. Automatic installation of the App
+ Platform is only possible when creating a new cluster (not
+ when modifying existing clusters).
+ example: '{{apl_enabled}}'
+ type: boolean
+ x-akamai:
+ write-once: true
+ x-linode-cli-display: 6
+ control_plane:
+ additionalProperties: false
+ description: >-
+ Defines settings for the Kubernetes control plane, including
+ High Availability (HA) and an IP-based Access Control List
+ (ACL) for the control plane components.
+ properties:
+ acl:
+ additionalProperties: false
+ description: >-
+ Defines settings related to the IP-based ACL of the LKE
+ cluster. The object requires the `enabled` and
+ `addresses` keys. It also supports the optional key
+ `revision-id`. The default policy is set to `ALLOW`, so
+ that access controls are disabled. An empty object value
+ (`{}`) sets default elements.
+ properties:
+ addresses:
+ additionalProperties: false
+ description: Supports keys `ipv4` and `ipv6`. Defaults to `{}`.
+ properties:
+ ipv4:
+ description: >-
+ A list of individual ipv4 addresses or CIDRs to
+ ALLOW. Defaults to `[]`.
+ example:
+ - 203.0.113.1
+ - 192.0.2.0/24
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of individual ipv6 addresses or CIDRs to
+ ALLOW. Defaults to `[]`.
+ example:
+ - 2001:db8:1234:abcd::/64
+ items:
+ type: string
+ type: array
+ type: object
+ enabled:
+ description: >-
+ Defines a default policy. A value of `true` results
+ in a default policy of `DENY`. A value of `false`
+ results in a default policy of `ALLOW`, such as for
+ disabled access controls. It defaults to `true`.
+ Creating a cluster with ACL, or upgrading a cluster
+ to use ACL for LKE, is an irreversible change. Once
+ upgraded, you can only toggle access controls with
+ this field.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ revision-id:
+ description: >-
+ Enables clients to track events related to ACL
+ update requests and enforcements. Optional field. If
+ omitted, defaults to a randomly generated string.
+ example: 20240127r001
+ type: string
+ type: object
+ high_availability:
+ default: false
+ description: >-
+ Enables High Availability for the cluster's control
+ plane components. It defaults to `false`. Enabling High
+ Availability for LKE is an irreversible change.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/lke-cluster-control-plane.yaml
+ k8s_version:
+ description: >-
+ __Filterable__ The desired Kubernetes version for this
+ Kubernetes cluster in the format of `.`. The
+ latest supported patch version is deployed.
+ example: '{{k8s_version}}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ This Kubernetes cluster's unique label for
+ display purposes only. Labels have the following
+ constraints:
+
+ - UTF-8 characters will be returned by the API using escape sequences of their Unicode code points. For example, the Japanese character _か_ is 3 bytes in UTF-8 (`0xE382AB`). Its Unicode code point is 2 bytes (`0x30AB`). APIv4 supports this character and the API will return it as the escape sequence using six 1 byte characters which represent 2 bytes of Unicode code point (`"\u30ab"`).
+
+ - 4 byte UTF-8 characters are not supported.
+
+ - If the label is entirely composed of UTF-8 characters, the API response will return the code points using up to 193 1 byte characters.
+ example: '{{label}}'
+ maxLength: 32
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ node_pools:
+ items:
+ additionalProperties: false
+ description: >-
+ Specifies a collection of Linodes to serve as members of a
+ Kubernetes cluster.
+ properties:
+ autoscaler:
+ additionalProperties: false
+ description: >-
+ When enabled, the number of nodes automatically scales
+ within the defined minimum and maximum values. When
+ making a request, `max` and `min` require each other.
+ properties:
+ enabled:
+ description: >-
+ Whether automatic scaling is enabled for this node
+ pool. Defaults to `false`.
+ example: true
+ type: boolean
+ max:
+ description: >-
+ The maximum number of nodes to automatically scale
+ to. Defaults to the value provided by the `count`
+ field.
+ example: 12
+ maximum: 100
+ minimum: 1
+ type: integer
+ min:
+ description: >-
+ The minimum number of nodes to automatically scale
+ to. Defaults to the node pool's `count`.
+ example: 3
+ maximum: 100
+ minimum: 1
+ type: integer
+ type: object
+ count:
+ description: The number of nodes in the Node Pool.
+ example: 6
+ maximum: 100
+ minimum: 1
+ type: integer
+ disks:
+ description: >-
+ This node pool's custom disk layout. Each item in this
+ array will create a new disk partition for each node
+ in this node pool.
+
+
+ > 📘
+
+ >
+
+ > Omit this field, except for special use cases. The
+ disks specified here are partitions in _addition_ to
+ the primary partition and reduce the size of the
+ primary partition. This can lead to stability problems
+ for the node.
+
+ - The custom disk layout is applied to each node in this node pool.
+
+ - The maximum number of custom disk partitions that can be configured is 7.
+
+ - Once the requested disk partitions are allocated, the remaining disk space is allocated to the node's boot disk.
+
+ - A node pool's custom disk layout is immutable over the lifetime of the node pool.
+ items:
+ additionalProperties: false
+ description: >-
+ The values to assign to each partition in this Node
+ Pool's custom disk layout.
+ properties:
+ size:
+ description: >-
+ The size of this custom disk partition in MB.
+ The size of this disk partition can't exceed the
+ capacity of the node's plan type.
+ example: 1024
+ type: integer
+ type:
+ description: This custom disk partition's filesystem type.
+ enum:
+ - raw
+ - ext4
+ example: ext4
+ type: string
+ type: object
+ type: array
+ x-linode-cli-format: json
+ k8s_version:
+ description: >-
+ __Beta__ The LKE-specific Kubernetes version to use
+ for the worker nodes within this node pool. This field
+ is required when creating node pools on LKE Enterprise
+ clusters.
+
+
+ > 🚧
+
+ >
+
+ > This field is available as part of the beta API and
+ can only be used with accounts that have been enrolled
+ in the LKE Enterprise LA. Call the URL with the
+ `apiVersion` path parameter set to `v4beta`.
+ example: v1.31.8+lke3
+ type: string
+ x-akamai:
+ status: BETA
+ labels:
+ additionalProperties:
+ maxLength: 63
+ minLength: 0
+ pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
+ type: string
+ x-additionalPropertiesName: value
+ description: >-
+ Key-value pairs added as labels to nodes in the node
+ pool. Labels help classify your nodes and easily
+ select subsets of objects. To learn more, review [Add
+ Labels and Taints to your LKE node
+ pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools).
+
+
+ **Label key:**
+
+
+ - A key can contain alphanumeric characters, dashes
+ (`-`), underscores (`_`), or dots (`.`). Start and end
+ it with an alphanumeric character.
+
+
+ - If the key begins with a DNS subdomain prefix
+ followed by a single slash, for example
+ `example.com/my-app`, the maximum total length of the
+ label key is 128 characters. Domain labels can be up
+ to 62 characters after the '/'. The prefix needs to
+ adhere to [RFC
+ 1123](https://datatracker.ietf.org/doc/html/rfc1123)
+ DNS subdomain restrictions.
+
+
+ - If the key doesn't begin with a DNS subdomain
+ prefix, the maximum key length is 63 characters.
+
+
+ Specifying an empty object removes all previously set
+ labels.
+
+
+ **Label value:**
+
+
+ - The label's value can contain alphanumeric
+ characters, dashes (`-`), underscores (`_`), or dots
+ (`.`). Start and end it with an alphanumeric
+ character.
+
+
+ - Can be specified as an empty string value with `""`.
+ example:
+ example.com/my-app: teams
+ type: object
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this
+ object. Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ taints:
+ description: >-
+ Kubernetes taints to add to node pool nodes. Taints
+ help control how pods are scheduled onto nodes,
+ specifically allowing them to repel certain pods. To
+ learn more, review [Add labels and taints to your LKE
+ node
+ pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools).
+
+
+ Specifying an empty array (`[]`) removes all
+ previously set taints.
+ example:
+ - effect: NoSchedule
+ key: example.com/my-app
+ value: teamA
+ - effect: NoExecute
+ key: myapp.io/team
+ value: teamB
+ items:
+ additionalProperties: false
+ properties:
+ effect:
+ description: >-
+ The Kubernetes taint effect. For `NoSchedule`,
+ `PreferNoSchedule` and `NoExecute` descriptions,
+ see [Kubernetes Taints and
+ Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
+ enum:
+ - NoSchedule
+ - PreferNoSchedule
+ - NoExecute
+ example: NoSchedule
+ type: string
+ key:
+ description: >-
+ The Kubernetes taint key.
+
+
+ - A key can contain alphanumeric characters,
+ dashes (`-`), underscores (`_`), or dots (`.`).
+ Start and end it with an alphanumeric character.
+
+
+ - If the key begins with a DNS subdomain prefix
+ followed by a single slash, for example
+ `example.com/my-app`, the prefix part needs to
+ adhere to [RFC
+ 1123](https://datatracker.ietf.org/doc/html/rfc1123)
+ DNS subdomain restrictions and be a maximum of
+ 253 characters.
+ example: example.com/my-app
+ maxLength: 63
+ minLength: 1
+ pattern: >-
+ ^([A-Za-z0-9][-A-Za-z0-9_.]*)?(\/)?([A-Za-z0-9][-A-Za-z0-9_.]{1,63})?$
+ type: string
+ value:
+ description: >-
+ The Kubernetes taint value.
+
+
+ - A key can contain alphanumeric characters,
+ dashes (`-`), underscores (`_`), or dots (`.`).
+ Start and end it with an alphanumeric character.
+
+
+ - Can be specified as an empty string value with
+ `""`.
+ example: teamC
+ maxLength: 63
+ minLength: 0
+ pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
+ type: string
+ required:
+ - key
+ - value
+ - effect
+ type: object
+ minItems: 0
+ type: array
+ type:
+ description: The Linode Type for all of the nodes in the Node Pool.
+ example: g6-standard-4
+ type: string
+ update_strategy:
+ description: >-
+ __Beta__ Determines when the worker nodes within this
+ node pool upgrade to the latest selected Kubernetes
+ version, after the cluster has been upgraded. This
+ field is required when creating node pools on LKE
+ Enterprise clusters.
+
+
+ - `rolling_update`: Immediately triggers a recycle of
+ this node pool when the Kubernetes version is updated.
+
+ - `on_recycle` (default): Does not trigger any
+ immediate recycle. New worker nodes are created with
+ the new Kubernetes version. Existing worker nodes will
+ be upgraded when a recycle is manually triggered.
+
+
+ > 🚧
+
+ >
+
+ > This field is available as part of the beta API and
+ can only be used with accounts that have been enrolled
+ in the LKE Enterprise LA. Call the URL with the
+ `apiVersion` path parameter set to `v4beta`.
+ enum:
+ - rolling_update
+ - on_recycle
+ example: on_recycle
+ type: string
+ x-akamai:
+ status: BETA
+ required:
+ - type
+ - count
+ type: object
+ x-akamai:
+ file-path: schemas/lke-node-pool-request-body.yaml
+ type: array
+ region:
+ description: __Filterable__ This Kubernetes cluster's location.
+ example: '{{region}}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to the Kubernetes
+ cluster. Tags are for organizational purposes only.
+ example:
+ - ecomm
+ - blogs
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ tier:
+ description: >-
+ __Beta__, __Filterable__ The desired Kubernetes tier, either
+ `standard` or `enterprise`.
+
+
+ > 🚧
+
+ >
+
+ > This field is in beta and only works when using the beta
+ API. Call the URL with the `apiVersion` path parameter set
+ to `v4beta`.
+ enum:
+ - standard
+ - enterprise
+ example: '{{tier}}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ status: BETA
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ required:
+ - label
+ - region
+ - k8s_version
+ - node_pools
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-lke-cluster.yaml
+ x-example:
+ x-ref: ../examples/post-lke-cluster.json
+ description: Configuration for the Kubernetes cluster.
+ x-linode-cli-allowed-defaults:
+ - region
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A Kubernetes cluster.
+ properties:
+ apl_enabled:
+ description: >-
+ __Write-once__ Indicates whether the Akamai App Platform
+ is installed during creation of the LKE cluster. It
+ defaults to `false`. If set to `true`,
+ `control_plane.high_availability` also needs to be `true`.
+ Automatic installation of the App Platform is only
+ possible when creating a new cluster (not when modifying
+ existing clusters).
+ example: true
+ type: boolean
+ x-akamai:
+ write-once: true
+ x-linode-cli-display: 6
+ control_plane:
+ additionalProperties: false
+ description: >-
+ Defines settings for the Kubernetes control plane,
+ including enabling High Availability (HA) for the control
+ plane.
+ properties:
+ high_availability:
+ default: false
+ description: >-
+ Enables High Availability for the cluster's control
+ plane components. It defaults to `false`. Enabling
+ High Availability for LKE is an irreversible change.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ type: object
+ created:
+ description: __Read-only__ When this Kubernetes cluster was created.
+ example: '2019-09-12T21:25:30Z'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ This Kubernetes cluster's unique ID.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ k8s_version:
+ description: >-
+ __Filterable__ The desired Kubernetes version for this
+ Kubernetes cluster in the format of `.`. The
+ latest supported patch version is deployed.
+ example: '1.32'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ This Kubernetes cluster's unique label for
+ display purposes only. Labels have the following
+ constraints:
+
+ - UTF-8 characters will be returned by the API using escape sequences of their Unicode code points. For example, the Japanese character _か_ is 3 bytes in UTF-8 (`0xE382AB`). Its Unicode code point is 2 bytes (`0x30AB`). APIv4 supports this character and the API will return it as the escape sequence using six 1 byte characters which represent 2 bytes of Unicode code point (`"\u30ab"`).
+
+ - 4 byte UTF-8 characters are not supported.
+
+ - If the label is entirely composed of UTF-8 characters, the API response will return the code points using up to 193 1 byte characters.
+ example: lkecluster12345
+ maxLength: 32
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ region:
+ description: __Filterable__ This Kubernetes cluster's location.
+ example: us-central
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to the Kubernetes
+ cluster. Tags are for organizational purposes only.
+ example:
+ - ecomm
+ - blogs
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ tier:
+ description: >-
+ __Beta__, __Filterable__ The desired Kubernetes tier,
+ either `standard` or `enterprise`.
+
+
+ > 🚧
+
+ >
+
+ > This field is in beta and only works when using the beta
+ API. Call the URL with the `apiVersion` path parameter set
+ to `v4beta`.
+ enum:
+ - standard
+ - enterprise
+ example: standard
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ status: BETA
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Kubernetes cluster was updated.
+ example: '2019-09-13T21:24:16Z'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/lke-cluster.yaml
+ x-example:
+ x-ref: ../examples/post-lke-cluster-200.json
+ description: Kubernetes cluster creation has started.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_write
+ summary: Create a Kubernetes cluster
+ tags:
+ - Clusters
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli lke cluster-create \
+ --label cluster12345 \
+ --region us-central \
+ --k8s_version 1.32 \
+ --apl_enabled false \
+ --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
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-charge: true
+ x-linode-cli-action: cluster-create
+ x-linode-grant: add_clusters
+ get:
+ description: >-
+ Lists current Kubernetes clusters available on your account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-lke-clusters
+ operationId: get-lke-clusters
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: A Kubernetes cluster.
+ properties:
+ apl_enabled:
+ description: >-
+ __Write-once__ Indicates whether the Akamai App
+ Platform is installed during creation of the LKE
+ cluster. It defaults to `false`. If set to `true`,
+ `control_plane.high_availability` also needs to be
+ `true`. Automatic installation of the App Platform
+ is only possible when creating a new cluster (not
+ when modifying existing clusters).
+ example: true
+ type: boolean
+ x-akamai:
+ write-once: true
+ x-linode-cli-display: 6
+ control_plane:
+ additionalProperties: false
+ description: >-
+ Defines settings for the Kubernetes control plane,
+ including enabling High Availability (HA) for the
+ control plane.
+ properties:
+ high_availability:
+ default: false
+ description: >-
+ Enables High Availability for the cluster's
+ control plane components. It defaults to
+ `false`. Enabling High Availability for LKE is
+ an irreversible change.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ type: object
+ created:
+ description: >-
+ __Read-only__ When this Kubernetes cluster was
+ created.
+ example: '2019-09-12T21:25:30Z'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ This Kubernetes cluster's unique ID.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ k8s_version:
+ description: >-
+ __Filterable__ The desired Kubernetes version for
+ this Kubernetes cluster in the format of
+ `.`. The latest supported patch
+ version is deployed.
+ example: '1.32'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ This Kubernetes cluster's unique
+ label for display purposes only. Labels have the
+ following constraints:
+
+ - UTF-8 characters will be returned by the API using escape sequences of their Unicode code points. For example, the Japanese character _か_ is 3 bytes in UTF-8 (`0xE382AB`). Its Unicode code point is 2 bytes (`0x30AB`). APIv4 supports this character and the API will return it as the escape sequence using six 1 byte characters which represent 2 bytes of Unicode code point (`"\u30ab"`).
+
+ - 4 byte UTF-8 characters are not supported.
+
+ - If the label is entirely composed of UTF-8 characters, the API response will return the code points using up to 193 1 byte characters.
+ example: lkecluster12345
+ maxLength: 32
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ region:
+ description: __Filterable__ This Kubernetes cluster's location.
+ example: us-central
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to the
+ Kubernetes cluster. Tags are for organizational
+ purposes only.
+ example:
+ - ecomm
+ - blogs
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ tier:
+ description: >-
+ __Beta__, __Filterable__ The desired Kubernetes
+ tier, either `standard` or `enterprise`.
+
+
+ > 🚧
+
+ >
+
+ > This field is in beta and only works when using
+ the beta API. Call the URL with the `apiVersion`
+ path parameter set to `v4beta`.
+ enum:
+ - standard
+ - enterprise
+ example: standard
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ status: BETA
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Read-only__ When this Kubernetes cluster was
+ updated.
+ example: '2019-09-13T21:24:16Z'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/lke-cluster.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-lke-clusters-200.yaml
+ x-example:
+ x-ref: ../examples/get-lke-clusters-200.json
+ description: Returns an array of all Kubernetes clusters on your Account.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_only
+ summary: List Kubernetes clusters
+ tags:
+ - Clusters
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke clusters-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: clusters-list
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/lke-clusters.yaml
+ path-info: /{apiVersion}/lke/clusters
+ x-linode-cli-command: lke
+ /lke/clusters/{clusterId}:
+ get:
+ description: >-
+ Get a specific Cluster by ID.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-lke-cluster
+ operationId: get-lke-cluster
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A Kubernetes cluster.
+ properties:
+ apl_enabled:
+ description: >-
+ __Write-once__ Indicates whether the Akamai App Platform
+ is installed during creation of the LKE cluster. It
+ defaults to `false`. If set to `true`,
+ `control_plane.high_availability` also needs to be `true`.
+ Automatic installation of the App Platform is only
+ possible when creating a new cluster (not when modifying
+ existing clusters).
+ example: true
+ type: boolean
+ x-akamai:
+ write-once: true
+ x-linode-cli-display: 6
+ control_plane:
+ additionalProperties: false
+ description: >-
+ Defines settings for the Kubernetes control plane,
+ including enabling High Availability (HA) for the control
+ plane.
+ properties:
+ high_availability:
+ default: false
+ description: >-
+ Enables High Availability for the cluster's control
+ plane components. It defaults to `false`. Enabling
+ High Availability for LKE is an irreversible change.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ type: object
+ created:
+ description: __Read-only__ When this Kubernetes cluster was created.
+ example: '2019-09-12T21:25:30Z'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ This Kubernetes cluster's unique ID.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ k8s_version:
+ description: >-
+ __Filterable__ The desired Kubernetes version for this
+ Kubernetes cluster in the format of `.`. The
+ latest supported patch version is deployed.
+ example: '1.32'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ This Kubernetes cluster's unique label for
+ display purposes only. Labels have the following
+ constraints:
+
+ - UTF-8 characters will be returned by the API using escape sequences of their Unicode code points. For example, the Japanese character _か_ is 3 bytes in UTF-8 (`0xE382AB`). Its Unicode code point is 2 bytes (`0x30AB`). APIv4 supports this character and the API will return it as the escape sequence using six 1 byte characters which represent 2 bytes of Unicode code point (`"\u30ab"`).
+
+ - 4 byte UTF-8 characters are not supported.
+
+ - If the label is entirely composed of UTF-8 characters, the API response will return the code points using up to 193 1 byte characters.
+ example: lkecluster12345
+ maxLength: 32
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ region:
+ description: __Filterable__ This Kubernetes cluster's location.
+ example: us-central
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to the Kubernetes
+ cluster. Tags are for organizational purposes only.
+ example:
+ - ecomm
+ - blogs
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ tier:
+ description: >-
+ __Beta__, __Filterable__ The desired Kubernetes tier,
+ either `standard` or `enterprise`.
+
+
+ > 🚧
+
+ >
+
+ > This field is in beta and only works when using the beta
+ API. Call the URL with the `apiVersion` path parameter set
+ to `v4beta`.
+ enum:
+ - standard
+ - enterprise
+ example: standard
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ status: BETA
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Kubernetes cluster was updated.
+ example: '2019-09-13T21:24:16Z'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/lke-cluster.yaml
+ x-example:
+ x-ref: ../examples/get-lke-cluster-200.json
+ description: Returns a single Kubernetes cluster.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_only
+ summary: Get a Kubernetes cluster
+ tags:
+ - Clusters
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke cluster-view 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: cluster-view
+ put:
+ description: >-
+ Updates a Kubernetes cluster.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-lke-cluster
+ operationId: put-lke-cluster
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ control_plane:
+ additionalProperties: false
+ description: >-
+ Defines settings for the Kubernetes control plane, including
+ High Availability (HA) and an IP-based Access Control List
+ (ACL) for the control plane components.
+
+
+ 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.
+
+
+ When upgrading pre-existing LKE clusters to use the control
+ plane ACL for the first time, it may take several hours for
+ external clients to respect the access control settings.
+ This is partly due to delays from DNS propagation.
+ properties:
+ acl:
+ additionalProperties: false
+ description: >-
+ Defines settings related to the IP-based ACL of the LKE
+ cluster. The object requires the `enabled` and
+ `addresses` keys. It also supports the optional key
+ `revision-id`. The default policy is set to `ALLOW`, so
+ that access controls are disabled. An empty object value
+ (`{}`) sets default elements.
+ properties:
+ addresses:
+ additionalProperties: false
+ description: Supports keys `ipv4` and `ipv6`. Defaults to `{}`.
+ properties:
+ ipv4:
+ description: >-
+ A list of individual ipv4 addresses or CIDRs to
+ ALLOW. Defaults to `[]`.
+ example:
+ - 203.0.113.1
+ - 192.0.2.0/24
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of individual ipv6 addresses or CIDRs to
+ ALLOW. Defaults to `[]`.
+ example:
+ - 2001:db8:1234:abcd::/64
+ items:
+ type: string
+ type: array
+ type: object
+ enabled:
+ description: >-
+ Defines a default policy. A value of `true` results
+ in a default policy of `DENY`. A value of `false`
+ results in a default policy of `ALLOW`, such as for
+ disabled access controls. It defaults to `true`.
+ Creating a cluster with ACL, or upgrading a cluster
+ to use ACL for LKE, is an irreversible change. Once
+ upgraded, you can only toggle access controls with
+ this field.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ revision-id:
+ description: >-
+ Enables clients to track events related to ACL
+ update requests and enforcements. Optional field. If
+ omitted, defaults to a randomly generated string.
+ example: 20240127r001
+ type: string
+ type: object
+ high_availability:
+ default: false
+ description: >-
+ Enables High Availability for the cluster's control
+ plane components. It defaults to `false`. Enabling High
+ Availability for LKE is an irreversible change.
+ example: true
+ type: boolean
+ x-linode-cli-display: 5
+ type: object
+ k8s_version:
+ 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.29 can be
+ upgraded to version 1.30, but not directly to 1.31.
+
+
+ The Kubernetes version of a cluster can not be downgraded.
+ example: '{{k8s_version}}'
+ type: string
+ label:
+ description: >-
+ __Filterable__ This Kubernetes cluster's unique label for
+ display purposes only. Labels have the following
+ constraints:
+
+ - UTF-8 characters will be returned by the API using escape sequences of their Unicode code points. For example, the Japanese character _か_ is 3 bytes in UTF-8 (`0xE382AB`). Its Unicode code point is 2 bytes (`0x30AB`). APIv4 supports this character and the API will return it as the escape sequence using six 1 byte characters which represent 2 bytes of Unicode code point (`"\u30ab"`).
+
+ - 4 byte UTF-8 characters are not supported.
+
+ - If the label is entirely composed of UTF-8 characters, the API response will return the code points using up to 193 1 byte characters.
+ example: '{{label}}'
+ maxLength: 32
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ tags:
+ 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.
+ example:
+ - prod
+ - monitoring
+ - ecomm
+ - blog
+ items:
+ type: string
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-lke-cluster.yaml
+ x-example:
+ x-ref: ../examples/put-lke-cluster.json
+ description: The fields to update the Kubernetes cluster.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ created:
+ description: __Read-only__ When this Kubernetes cluster was created.
+ example: '2019-09-12T21:25:30Z'
+ format: date-time
+ readOnly: true
+ type: string
+ k8s_version:
+ description: >-
+ __Filterable__ The desired Kubernetes version for this
+ Kubernetes cluster in the format of `.`. The
+ latest supported patch version is deployed.
+ example: '1.32'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ This Kubernetes cluster's unique label for
+ display purposes only. Labels have the following
+ constraints:
+
+ - UTF-8 characters will be returned by the API using escape sequences of their Unicode code points. For example, the Japanese character _か_ is 3 bytes in UTF-8 (`0xE382AB`). Its Unicode code point is 2 bytes (`0x30AB`). APIv4 supports this character and the API will return it as the escape sequence using six 1 byte characters which represent 2 bytes of Unicode code point (`"\u30ab"`).
+
+ - 4 byte UTF-8 characters are not supported.
+
+ - If the label is entirely composed of UTF-8 characters, the API response will return the code points using up to 193 1 byte characters.
+ example: lkecluster12345
+ maxLength: 32
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ region:
+ description: __Filterable__ This Kubernetes cluster's location.
+ example: us-central
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ tags:
+ 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.
+ example:
+ - prod
+ - monitoring
+ - ecomm
+ - blog
+ items:
+ type: string
+ type: array
+ updated:
+ description: __Read-only__ When this Kubernetes cluster was updated.
+ example: '2019-09-13T21:24:16Z'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-lke-cluster-200.yaml
+ x-example:
+ x-ref: ../examples/get-lke-cluster-200.json
+ description: Returns a single Kubernetes cluster.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_write
+ summary: Update a Kubernetes cluster
+ tags:
+ - Clusters
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli lke cluster-update 12345 \
+ --label lkecluster54321 \
+ --control_plane.high_availability true \
+ --k8s_version 1.31 \
+ --tags ecomm \
+ --tags blog \
+ --tags prod \
+ --tags monitoring
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: cluster-update
+ 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
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-lke-cluster
+ operationId: delete-lke-cluster
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-lke-cluster-200.json
+ description: Delete successful.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_write
+ summary: Delete a Kubernetes cluster
+ tags:
+ - Clusters
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke cluster-delete 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: cluster-delete
+ parameters:
+ - description: ID of the Kubernetes cluster to look up.
+ example: '{{clusterId}}'
+ in: path
+ name: clusterId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/cluster-id-path.yaml
+ x-akamai:
+ file-path: paths/cluster.yaml
+ path-info: /{apiVersion}/lke/clusters/{clusterId}
+ x-linode-cli-command: lke
+ /lke/clusters/{clusterId}/api-endpoints:
+ get:
+ 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](https://techdocs.akamai.com/linode-api/reference/post-lke-cluster).
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-api-endpoints
+ operationId: get-lke-cluster-api-endpoints
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ description: The Kubernetes API server endpoints for this cluster.
+ items:
+ additionalProperties: false
+ properties:
+ endpoint:
+ description: >-
+ __Read-only__ A Kubernetes API server endpoint for
+ this cluster.
+ example: https://192.0.2.1:6443
+ readOnly: true
+ type: string
+ type: object
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-lke-cluster-api-endpoints-200.yaml
+ x-example:
+ x-ref: ../examples/get-lke-cluster-api-endpoints-200.json
+ description: Returns the Kubernetes API server endpoints for this cluster.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_only
+ summary: List Kubernetes API endpoints
+ tags:
+ - LKE API endpoints
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke api-endpoints-list 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: api-endpoints-list
+ parameters:
+ - description: ID of the Kubernetes cluster to look up.
+ example: '{{clusterId}}'
+ in: path
+ name: clusterId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/cluster-id-path.yaml
+ x-akamai:
+ file-path: paths/api-endpoints.yaml
+ path-info: /{apiVersion}/lke/clusters/{clusterId}/api-endpoints
+ x-linode-cli-command: lke
+ /lke/clusters/{clusterId}/control_plane_acl:
+ get:
+ description: >-
+ Get a specific cluster's control plane access control List.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-acl
+ operationId: get-lke-cluster-acl
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ allOf:
+ - properties:
+ acl:
+ additionalProperties: false
+ description: >-
+ Defines settings related to the IP-based ACL of the
+ LKE cluster. The object requires the `enabled` and
+ `addresses` keys. It also supports the optional key
+ `revision-id`. The default policy is set to `ALLOW`,
+ so that access controls are disabled. An empty object
+ value (`{}`) sets default elements.
+ properties:
+ addresses:
+ additionalProperties: false
+ description: Supports keys `ipv4` and `ipv6`. Defaults to `{}`.
+ properties:
+ ipv4:
+ description: >-
+ A list of individual ipv4 addresses or CIDRs
+ to ALLOW. Defaults to `[]`.
+ example:
+ - 203.0.113.1
+ - 192.0.2.0/24
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of individual ipv6 addresses or CIDRs
+ to ALLOW. Defaults to `[]`.
+ example:
+ - 2001:db8:1234:abcd::/64
+ items:
+ type: string
+ type: array
+ type: object
+ enabled:
+ description: >-
+ Defines a default policy. A value of `true`
+ results in a default policy of `DENY`. A value of
+ `false` results in a default policy of `ALLOW`,
+ such as for disabled access controls. It defaults
+ to `true`. Creating a cluster with ACL, or
+ upgrading a cluster to use ACL for LKE, is an
+ irreversible change. Once upgraded, you can only
+ toggle access controls with this field.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ revision-id:
+ description: >-
+ Enables clients to track events related to ACL
+ update requests and enforcements. Optional field.
+ If omitted, defaults to a randomly generated
+ string.
+ example: 20240127r001
+ type: string
+ type: object
+ type: object
+ - additionalProperties: false
+ properties:
+ acl:
+ properties:
+ addresses:
+ properties:
+ ipv4:
+ x-linode-cli-display: 7
+ ipv6:
+ x-linode-cli-display: 8
+ type: object
+ revision-id:
+ x-linode-cli-display: 9
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-lke-cluster-control-plane.yaml
+ description: >-
+ Returns a single cluster's control plane access control list. The
+ optional field `revision-id` provided will be reflected on GET
+ response when (and only after) the ACL stanza is verified as
+ enforced.
+ '400':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: acl
+ type: string
+ reason:
+ description: >-
+ A string explaining that the cluster does not
+ support Control Plane ACL.
+ example: Cluster does not support Control Plane ACL.
+ type: string
+ type: object
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/400-control-plane-acl.yaml
+ x-example:
+ x-ref: ../examples/tbd.json
+ description: >-
+ If the cluster was not created or updated to enable the ACL feature,
+ this request returns a 400 (Bad Request) error with an appropriate
+ message, such as `Cluster does not support Control Plane ACL`.
+ x-akamai:
+ file-path: errors/400-control-plane-acl.yaml
+ '404':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: acl
+ type: string
+ reason:
+ description: A string explaining that the cluster does not exist.
+ example: Not Found.
+ type: string
+ type: object
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/404-control-plane-acl.yaml
+ x-example:
+ x-ref: ../examples/tbd.json
+ description: >-
+ If the cluster does not exist, this request returns a 404 (Not
+ Found) error.
+ x-akamai:
+ file-path: errors/404-control-plane-acl.yaml
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_only
+ summary: Get the control plane access control list
+ tags:
+ - LKE Control Plane ACL
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke cluster-acl-view 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: cluster-acl-view
+ put:
+ description: >-
+ Updates a specific cluster's control plane access control list.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-lke-cluster-acl
+ operationId: put-lke-cluster-acl
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ Defines settings for the Kubernetes control plane, including an
+ IP-based Access Control List (ACL) for the control plane
+ components.
+ properties:
+ acl:
+ additionalProperties: false
+ description: >-
+ Defines settings related to the IP-based ACL of the LKE
+ cluster. The object requires the `enabled` and `addresses`
+ keys. It also supports the optional key `revision-id`. The
+ default policy is set to `ALLOW`, so that access controls
+ are disabled. An empty object value (`{}`) sets default
+ elements.
+ properties:
+ addresses:
+ additionalProperties: false
+ description: Supports keys `ipv4` and `ipv6`. Defaults to `{}`.
+ properties:
+ ipv4:
+ description: >-
+ A list of individual ipv4 addresses or CIDRs to
+ ALLOW. Defaults to `[]`.
+ example:
+ - 203.0.113.1
+ - 192.0.2.0/24
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of individual ipv6 addresses or CIDRs to
+ ALLOW. Defaults to `[]`.
+ example:
+ - 2001:db8:1234:abcd::/64
+ items:
+ type: string
+ type: array
+ type: object
+ enabled:
+ description: >-
+ Defines a default policy. A value of `true` results in a
+ default policy of `DENY`. A value of `false` results in
+ a default policy of `ALLOW`, such as for disabled access
+ controls. It defaults to `true`. Creating a cluster with
+ ACL, or upgrading a cluster to use ACL for LKE, is an
+ irreversible change. Once upgraded, you can only toggle
+ access controls with this field.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ revision-id:
+ description: >-
+ Enables clients to track events related to ACL update
+ requests and enforcements. Optional field. If omitted,
+ defaults to a randomly generated string.
+ example: 20240127r001
+ type: string
+ type: object
+ type: object
+ x-example:
+ x-ref: ../examples/put-lke-cluster.json
+ description: The fields to update the cluster.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ allOf:
+ - properties:
+ acl:
+ additionalProperties: false
+ description: >-
+ Defines settings related to the IP-based ACL of the
+ LKE cluster. The object requires the `enabled` and
+ `addresses` keys. It also supports the optional key
+ `revision-id`. The default policy is set to `ALLOW`,
+ so that access controls are disabled. An empty object
+ value (`{}`) sets default elements.
+ properties:
+ addresses:
+ additionalProperties: false
+ description: Supports keys `ipv4` and `ipv6`. Defaults to `{}`.
+ properties:
+ ipv4:
+ description: >-
+ A list of individual ipv4 addresses or CIDRs
+ to ALLOW. Defaults to `[]`.
+ example:
+ - 203.0.113.1
+ - 192.0.2.0/24
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of individual ipv6 addresses or CIDRs
+ to ALLOW. Defaults to `[]`.
+ example:
+ - 2001:db8:1234:abcd::/64
+ items:
+ type: string
+ type: array
+ type: object
+ enabled:
+ description: >-
+ Defines a default policy. A value of `true`
+ results in a default policy of `DENY`. A value of
+ `false` results in a default policy of `ALLOW`,
+ such as for disabled access controls. It defaults
+ to `true`. Creating a cluster with ACL, or
+ upgrading a cluster to use ACL for LKE, is an
+ irreversible change. Once upgraded, you can only
+ toggle access controls with this field.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ revision-id:
+ description: >-
+ Enables clients to track events related to ACL
+ update requests and enforcements. Optional field.
+ If omitted, defaults to a randomly generated
+ string.
+ example: 20240127r001
+ type: string
+ type: object
+ type: object
+ - additionalProperties: false
+ properties:
+ acl:
+ properties:
+ addresses:
+ properties:
+ ipv4:
+ x-linode-cli-display: 7
+ ipv6:
+ x-linode-cli-display: 8
+ type: object
+ revision-id:
+ x-linode-cli-display: 9
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-lke-cluster-control-plane.yaml
+ description: >-
+ Returns a single cluster's control plane access control list. The
+ optional field `revision-id` provided will be reflected on GET
+ response when (and only after) the ACL stanza is verified as
+ enforced.
+ '400':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: acl
+ type: string
+ reason:
+ description: >-
+ A string explaining that the cluster does not
+ support Control Plane ACL.
+ example: Cluster does not support Control Plane ACL.
+ type: string
+ type: object
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/400-control-plane-acl.yaml
+ x-example:
+ x-ref: ../examples/tbd.json
+ description: >-
+ If the cluster was not created or updated to enable the ACL feature,
+ this request returns a 400 (Bad Request) error with an appropriate
+ message, such as `Cluster does not support Control Plane ACL`.
+ x-akamai:
+ file-path: errors/400-control-plane-acl.yaml
+ '404':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: acl
+ type: string
+ reason:
+ description: A string explaining that the cluster does not exist.
+ example: Not Found.
+ type: string
+ type: object
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/404-control-plane-acl.yaml
+ x-example:
+ x-ref: ../examples/tbd.json
+ description: >-
+ If the cluster does not exist, this request returns a 404 (Not
+ Found) error.
+ x-akamai:
+ file-path: errors/404-control-plane-acl.yaml
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_write
+ summary: Update the control plane access control list
+ tags:
+ - LKE Control Plane ACL
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli lke cluster-acl-update 12345 \
+ --acl.enabled true \
+ --acl.addresses.ipv4 "203.0.113.1" \
+ --acl.addresses.ipv6 "2001:db8:1234:abcd::/64"
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: cluster-acl-update
+ delete:
+ description: >-
+ Disable control plane access controls and deletes all rules. This has
+ the same effect as calling `PUT` with an acl json map value of
+ `{“enabled” : false}`.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-lke-cluster-acl
+ operationId: delete-lke-cluster-acl
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-lke-cluster-200.json
+ description: Delete successful.
+ '400':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: acl
+ type: string
+ reason:
+ description: >-
+ A string explaining that the cluster does not
+ support Control Plane ACL.
+ example: Cluster does not support Control Plane ACL.
+ type: string
+ type: object
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/400-control-plane-acl.yaml
+ x-example:
+ x-ref: ../examples/tbd.json
+ description: >-
+ If the cluster was not created or updated to enable the ACL feature,
+ this request returns a 400 (Bad Request) error with an appropriate
+ message, such as `Cluster does not support Control Plane ACL`.
+ x-akamai:
+ file-path: errors/400-control-plane-acl.yaml
+ '404':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: acl
+ type: string
+ reason:
+ description: A string explaining that the cluster does not exist.
+ example: Not Found.
+ type: string
+ type: object
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/404-control-plane-acl.yaml
+ x-example:
+ x-ref: ../examples/tbd.json
+ description: >-
+ If the cluster does not exist, this request returns a 404 (Not
+ Found) error.
+ x-akamai:
+ file-path: errors/404-control-plane-acl.yaml
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_write
+ summary: Delete the control plane access control list
+ tags:
+ - LKE Control Plane ACL
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke cluster-acl-delete 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: cluster-acl-delete
+ parameters:
+ - description: ID of the Kubernetes cluster to look up.
+ example: '{{clusterId}}'
+ in: path
+ name: clusterId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/cluster-id-path.yaml
+ x-akamai:
+ file-path: paths/control-plane-acl.yaml
+ path-info: /{apiVersion}/lke/clusters/{clusterId}/control_plane_acl
+ x-linode-cli-command: lke
+ /lke/clusters/{clusterId}/dashboard:
get:
- operationId: getLKEClusters
- x-linode-cli-action: clusters-list
- x-linode-grant: read_only
+ 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](https://www.linode.com/docs/guides/using-the-kubernetes-dashboard-on-lke/#navigating-the-cluster-dashboard)
+ section of our guide on [Using the Kubernetes Dashboard on
+ LKE](https://www.linode.com/docs/guides/using-the-kubernetes-dashboard-on-lke/).
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-dashboard
+ operationId: get-lke-cluster-dashboard
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ url:
+ description: The Cluster Dashboard access URL.
+ example: https://example.dashboard.linodelke.net
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-lke-cluster-dashboard-200.yaml
+ x-example:
+ x-ref: ../examples/get-lke-cluster-dashboard-200.json
+ description: Returns a Kubernetes Cluster Dashboard URL.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'lke:read_only'
+ - lke:read_only
+ summary: Get a Kubernetes cluster dashboard URL
tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubernetes Clusters List
- description: |
- Lists current Kubernetes clusters available on your account.
+ - Cluster dashboard
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke cluster-dashboard-url 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: cluster-dashboard-url
+ parameters:
+ - description: ID of the Kubernetes cluster to look up.
+ example: '{{clusterId}}'
+ in: path
+ name: clusterId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/cluster-id-path-28150853.yaml
+ x-akamai:
+ file-path: paths/dashboard.yaml
+ path-info: /{apiVersion}/lke/clusters/{clusterId}/dashboard
+ x-linode-cli-command: lke
+ /lke/clusters/{clusterId}/kubeconfig:
+ get:
+ 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](https://techdocs.akamai.com/linode-api/reference/post-lke-cluster).
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-kubeconfig
+ operationId: get-lke-cluster-kubeconfig
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ kubeconfig:
+ description: >-
+ __Read-only__ The Base64-encoded Kubeconfig file for this
+ Cluster.
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-lke-cluster-kubeconfig-200.yaml
+ x-example:
+ x-ref: ../examples/get-lke-cluster-kubeconfig-200.json
+ description: >-
+ Returns the Base64-encoded Kubeconfig file for this Kubernetes
+ cluster.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_write
+ summary: Get a Kubeconfig
+ tags:
+ - Kubeconfigs
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke kubeconfig-view 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: kubeconfig-view
+ delete:
+ description: >-
+ Delete and regenerate the Kubeconfig file for a Cluster.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-lke-cluster-kubeconfig
+ operationId: delete-lke-cluster-kubeconfig
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-lke-cluster-kubeconfig-200.json
+ description: Kubeconfig file deleted and regenerated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_write
+ summary: Delete a Kubeconfig
+ tags:
+ - Kubeconfigs
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke kubeconfig-delete 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: kubeconfig-delete
+ parameters:
+ - description: ID of the Kubernetes cluster to look up.
+ example: '{{clusterId}}'
+ in: path
+ name: clusterId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/cluster-id-path-28150853.yaml
+ x-akamai:
+ file-path: paths/kubeconfig.yaml
+ path-info: /{apiVersion}/lke/clusters/{clusterId}/kubeconfig
+ x-linode-cli-command: lke
+ /lke/clusters/{clusterId}/nodes/{nodeId}:
+ get:
+ description: >-
+ Returns the values for a specified node object.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-node
+ operationId: get-lke-cluster-node
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Status information for a Node which is a member
+ of a Kubernetes cluster.
+ properties:
+ id:
+ description: The Node's ID.
+ example: 12345-6aa78910bc
+ type: string
+ instance_id:
+ description: >-
+ The Linode's ID. When no Linode is currently provisioned
+ for this Node, this will be `null`.
+ example: 123458
+ nullable: true
+ type: integer
+ status:
+ 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
+ type: string
+ readOnly: true
+ type: object
+ x-akamai:
+ file-path: schemas/lke-node-status.yaml
+ x-example:
+ x-ref: ../examples/get-lke-cluster-node-200.json
+ description: >-
+ Returns the values of a node object in the form that it appears
+ currently in the node pool array.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_write
+ summary: Get a node
+ tags:
+ - Nodes
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke node-view 123456 12345-6aa78910bc
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: node-view
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-lke-cluster-node
+ operationId: delete-lke-cluster-node
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ type: object
+ x-akamai:
+ file-path: schemas/added-delete-lke-cluster-node-200.yaml
+ x-example:
+ x-ref: ../examples/delete-lke-cluster-node-200.json
+ description: Delete successful.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_write
+ summary: Delete a node
+ tags:
+ - Nodes
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke node-delete 12345 12345-6aa78910bc
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: node-delete
+ parameters:
+ - description: ID of the Kubernetes cluster containing the Node.
+ example: '{{clusterId}}'
+ in: path
+ name: clusterId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/cluster-id-path-b0a6717a.yaml
+ - description: The ID of the Node to access.
+ example: '{{nodeId}}'
+ in: path
+ name: nodeId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/node-id.yaml
+ x-akamai:
+ file-path: paths/cluster-node.yaml
+ path-info: /{apiVersion}/lke/clusters/{clusterId}/nodes/{nodeId}
+ x-linode-cli-command: lke
+ /lke/clusters/{clusterId}/nodes/{nodeId}/recycle:
+ post:
+ 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.__
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-lke-cluster-node-recycle
+ operationId: post-lke-cluster-node-recycle
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-lke-cluster-node-recycle-200.json
+ description: Recycle request succeeded and is in progress.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_write
+ summary: Recycle a node
+ tags:
+ - Nodes
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke node-recycle 12345 12345-6aa78910bc
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: node-recycle
+ parameters:
+ - description: ID of the Kubernetes cluster containing the Node.
+ example: '{{clusterId}}'
+ in: path
+ name: clusterId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/cluster-id-path-b0a6717a.yaml
+ - description: ID of the Node to be recycled.
+ example: '{{nodeId}}'
+ in: path
+ name: nodeId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/node-id-recycle.yaml
+ x-akamai:
+ file-path: paths/node-recycle.yaml
+ path-info: /{apiVersion}/lke/clusters/{clusterId}/nodes/{nodeId}/recycle
+ x-linode-cli-command: lke
+ /lke/clusters/{clusterId}/pools:
+ post:
+ description: >-
+ Creates a new Node Pool for the designated Kubernetes cluster.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-lke-cluster-pools
+ operationId: post-lke-cluster-pools
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ Specifies a collection of Linodes to serve as members of a
+ Kubernetes cluster.
+ properties:
+ autoscaler:
+ additionalProperties: false
+ description: >-
+ When enabled, the number of nodes automatically scales
+ within the defined minimum and maximum values. When
+ making a request, `max` and `min` require each other.
+ properties:
+ enabled:
+ description: >-
+ Whether automatic scaling is enabled for this node
+ pool. Defaults to `false`.
+ example: true
+ type: boolean
+ max:
+ description: >-
+ The maximum number of nodes to automatically scale
+ to. Defaults to the value provided by the `count`
+ field.
+ example: 12
+ maximum: 100
+ minimum: 1
+ type: integer
+ min:
+ description: >-
+ The minimum number of nodes to automatically scale
+ to. Defaults to the node pool's `count`.
+ example: 3
+ maximum: 100
+ minimum: 1
+ type: integer
+ type: object
+ count:
+ description: The number of nodes in the Node Pool.
+ example: 6
+ maximum: 100
+ minimum: 1
+ type: integer
+ disks:
+ description: >-
+ This node pool's custom disk layout. Each item in this
+ array will create a new disk partition for each node in
+ this node pool.
+
+
+ > 📘
+
+ >
+
+ > Omit this field, except for special use cases. The
+ disks specified here are partitions in _addition_ to the
+ primary partition and reduce the size of the primary
+ partition. This can lead to stability problems for the
+ node.
+
+ - The custom disk layout is applied to each node in this node pool.
+
+ - The maximum number of custom disk partitions that can be configured is 7.
+
+ - Once the requested disk partitions are allocated, the remaining disk space is allocated to the node's boot disk.
+
+ - A node pool's custom disk layout is immutable over the lifetime of the node pool.
+ items:
+ additionalProperties: false
+ description: >-
+ The values to assign to each partition in this Node
+ Pool's custom disk layout.
+ properties:
+ size:
+ description: >-
+ The size of this custom disk partition in MB. The
+ size of this disk partition can't exceed the
+ capacity of the node's plan type.
+ example: 1024
+ type: integer
+ type:
+ description: This custom disk partition's filesystem type.
+ enum:
+ - raw
+ - ext4
+ example: ext4
+ type: string
+ type: object
+ type: array
+ x-linode-cli-format: json
+ k8s_version:
+ description: >-
+ __Beta__ The LKE-specific Kubernetes version to use for
+ the worker nodes within this node pool. This field is
+ required when creating node pools on LKE Enterprise
+ clusters.
+
+
+ > 🚧
+
+ >
+
+ > This field is available as part of the beta API and
+ can only be used with accounts that have been enrolled
+ in the LKE Enterprise LA. Call the URL with the
+ `apiVersion` path parameter set to `v4beta`.
+ example: v1.31.8+lke3
+ type: string
+ x-akamai:
+ status: BETA
+ labels:
+ additionalProperties:
+ maxLength: 63
+ minLength: 0
+ pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
+ type: string
+ x-additionalPropertiesName: value
+ description: >-
+ Key-value pairs added as labels to nodes in the node
+ pool. Labels help classify your nodes and easily select
+ subsets of objects. To learn more, review [Add Labels
+ and Taints to your LKE node
+ pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools).
+
+
+ **Label key:**
+
+
+ - A key can contain alphanumeric characters, dashes
+ (`-`), underscores (`_`), or dots (`.`). Start and end
+ it with an alphanumeric character.
+
+
+ - If the key begins with a DNS subdomain prefix followed
+ by a single slash, for example `example.com/my-app`, the
+ maximum total length of the label key is 128 characters.
+ Domain labels can be up to 62 characters after the '/'.
+ The prefix needs to adhere to [RFC
+ 1123](https://datatracker.ietf.org/doc/html/rfc1123) DNS
+ subdomain restrictions.
+
+
+ - If the key doesn't begin with a DNS subdomain prefix,
+ the maximum key length is 63 characters.
+
+
+ Specifying an empty object removes all previously set
+ labels.
+
+
+ **Label value:**
+
+
+ - The label's value can contain alphanumeric characters,
+ dashes (`-`), underscores (`_`), or dots (`.`). Start
+ and end it with an alphanumeric character.
+
+
+ - Can be specified as an empty string value with `""`.
+ example:
+ example.com/my-app: teams
+ type: object
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ taints:
+ description: >-
+ Kubernetes taints to add to node pool nodes. Taints help
+ control how pods are scheduled onto nodes, specifically
+ allowing them to repel certain pods. To learn more,
+ review [Add labels and taints to your LKE node
+ pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools).
+
+
+ Specifying an empty array (`[]`) removes all previously
+ set taints.
+ example:
+ - effect: NoSchedule
+ key: example.com/my-app
+ value: teamA
+ - effect: NoExecute
+ key: myapp.io/team
+ value: teamB
+ items:
+ additionalProperties: false
+ properties:
+ effect:
+ description: >-
+ The Kubernetes taint effect. For `NoSchedule`,
+ `PreferNoSchedule` and `NoExecute` descriptions,
+ see [Kubernetes Taints and
+ Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
+ enum:
+ - NoSchedule
+ - PreferNoSchedule
+ - NoExecute
+ example: NoSchedule
+ type: string
+ key:
+ description: >-
+ The Kubernetes taint key.
+
+
+ - A key can contain alphanumeric characters,
+ dashes (`-`), underscores (`_`), or dots (`.`).
+ Start and end it with an alphanumeric character.
+
+
+ - If the key begins with a DNS subdomain prefix
+ followed by a single slash, for example
+ `example.com/my-app`, the prefix part needs to
+ adhere to [RFC
+ 1123](https://datatracker.ietf.org/doc/html/rfc1123)
+ DNS subdomain restrictions and be a maximum of 253
+ characters.
+ example: example.com/my-app
+ maxLength: 63
+ minLength: 1
+ pattern: >-
+ ^([A-Za-z0-9][-A-Za-z0-9_.]*)?(\/)?([A-Za-z0-9][-A-Za-z0-9_.]{1,63})?$
+ type: string
+ value:
+ description: >-
+ The Kubernetes taint value.
+
+
+ - A key can contain alphanumeric characters,
+ dashes (`-`), underscores (`_`), or dots (`.`).
+ Start and end it with an alphanumeric character.
+
+
+ - Can be specified as an empty string value with
+ `""`.
+ example: teamC
+ maxLength: 63
+ minLength: 0
+ pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
+ type: string
+ required:
+ - key
+ - value
+ - effect
+ type: object
+ minItems: 0
+ type: array
+ type:
+ description: The Linode Type for all of the nodes in the Node Pool.
+ example: g6-standard-4
+ type: string
+ update_strategy:
+ description: >-
+ __Beta__ Determines when the worker nodes within this
+ node pool upgrade to the latest selected Kubernetes
+ version, after the cluster has been upgraded. This field
+ is required when creating node pools on LKE Enterprise
+ clusters.
+
+
+ - `rolling_update`: Immediately triggers a recycle of
+ this node pool when the Kubernetes version is updated.
+
+ - `on_recycle` (default): Does not trigger any immediate
+ recycle. New worker nodes are created with the new
+ Kubernetes version. Existing worker nodes will be
+ upgraded when a recycle is manually triggered.
+
+
+ > 🚧
+
+ >
+
+ > This field is available as part of the beta API and
+ can only be used with accounts that have been enrolled
+ in the LKE Enterprise LA. Call the URL with the
+ `apiVersion` path parameter set to `v4beta`.
+ enum:
+ - rolling_update
+ - on_recycle
+ example: on_recycle
+ type: string
+ x-akamai:
+ status: BETA
+ required:
+ - type
+ - count
+ type: object
+ x-akamai:
+ file-path: schemas/lke-node-pool-request-body.yaml
+ required:
+ - type
+ - count
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-lke-cluster-pools.yaml
+ x-example:
+ x-ref: ../examples/post-lke-cluster-pools.json
+ description: Configuration for the Node Pool.
+ required: true
responses:
'200':
- description: Returns an array of all Kubernetes clusters on your Account.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
+ description: >-
+ The set of Node Pools which are members of the Kubernetes
+ cluster. Node Pools consist of a Linode type, the number of
+ Linodes to deploy of that type, and additional status
+ information.
properties:
- data:
+ autoscaler:
+ additionalProperties: false
+ description: >-
+ When enabled, the number of nodes autoscales within the
+ defined minimum and maximum values.
+ properties:
+ enabled:
+ description: >-
+ Whether autoscaling is enabled for this Node Pool.
+ Defaults to `false`.
+ example: true
+ type: boolean
+ max:
+ description: >-
+ The maximum number of nodes to autoscale to. Defaults
+ to the Node Pool's `count`.
+ example: 12
+ maximum: 100
+ minimum: 1
+ type: integer
+ min:
+ description: >-
+ The minimum number of nodes to autoscale to. Defaults
+ to the Node Pool's `count`.
+ example: 3
+ maximum: 100
+ minimum: 1
+ type: integer
+ type: object
+ count:
+ description: The number of nodes in the Node Pool.
+ example: 6
+ maximum: 100
+ minimum: 1
+ type: integer
+ disk_encryption:
+ description: >-
+ Indicates the local disk encryption setting for this LKE
+ node pool.
+ enum:
+ - enabled
+ - disabled
+ example: disabled
+ type: string
+ disks:
+ description: This Node Pool's custom disk layout.
+ items:
+ additionalProperties: false
+ description: >-
+ The values to assign to each partition in this Node
+ Pool's custom disk layout.
+ properties:
+ size:
+ description: >-
+ The size of this custom disk partition in MB. The
+ size of this disk partition can't exceed the
+ capacity of the node's plan type.
+ example: 1024
+ type: integer
+ type:
+ description: This custom disk partition's filesystem type.
+ enum:
+ - raw
+ - ext4
+ example: ext4
+ type: string
+ type: object
+ type: array
+ x-linode-cli-format: json
+ id:
+ description: __Filterable__ This Node Pool's unique ID.
+ example: 456
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ k8s_version:
+ description: >-
+ __Beta__ The Kubernetes version used for the worker nodes
+ within this node pool.
+ example: v1.31.8+lke3
+ type: string
+ x-akamai:
+ status: BETA
+ labels:
+ additionalProperties:
+ maxLength: 63
+ minLength: 0
+ pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
+ type: string
+ x-additionalPropertiesName: value
+ description: >-
+ Key-value pairs added as labels to nodes in the node pool.
+ Labels help classify your nodes and easily select subsets
+ of objects. To learn more, review [Add Labels and Taints
+ to your LKE node
+ pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools).
+ example:
+ example.com/my-app: teams
+ type: object
+ nodes:
+ description: >-
+ Status information for the Nodes which are members of this
+ Node Pool. If a Linode has not been provisioned for a
+ given Node slot, the `instance_id` will be returned as
+ `null`.
+ items:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Status information for a Node which is a
+ member of a Kubernetes cluster.
+ properties:
+ id:
+ description: The Node's ID.
+ example: 12345-6aa78910bc
+ type: string
+ instance_id:
+ description: >-
+ The Linode's ID. When no Linode is currently
+ provisioned for this Node, this will be `null`.
+ example: 123458
+ nullable: true
+ type: integer
+ status:
+ 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
+ type: string
+ readOnly: true
+ type: object
+ x-akamai:
+ file-path: schemas/lke-node-status.yaml
+ type: array
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ taints:
+ description: >-
+ Kubernetes taints added to nodes in the node pool. Taints
+ help control how pods are scheduled onto nodes,
+ specifically allowing them to repel certain pods.
+ example:
+ - effect: NoSchedule
+ key: example.com/my-app
+ value: teamA
+ - effect: NoExecute
+ key: myapp.io/team
+ value: teamC
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'
+ additionalProperties: false
+ properties:
+ effect:
+ description: >-
+ The Kubernetes taint effect. For `NoSchedule`,
+ `PreferNoSchedule` and `NoExecute` descriptions, see
+ [Kubernetes Taints and
+ Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
+ enum:
+ - NoSchedule
+ - PreferNoSchedule
+ - NoExecute
+ example: NoSchedule
+ type: string
+ key:
+ description: The Kubernetes taint key.
+ example: example.com/my-app
+ maxLength: 63
+ minLength: 1
+ pattern: >-
+ ^([A-Za-z0-9][-A-Za-z0-9_.]*)?(\/)?([A-Za-z0-9][-A-Za-z0-9_.]{1,63})?$
+ type: string
+ value:
+ description: The Kubernetes taint value.
+ example: teamC
+ maxLength: 63
+ minLength: 0
+ pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
+ type: string
+ type: object
+ type: array
+ type:
+ description: The Linode Type for all of the nodes in the Node Pool.
+ example: g6-standard-4
+ type: string
+ update_strategy:
+ description: >-
+ __Beta__ Determines when the worker nodes within this node
+ pool upgrade to the latest selected Kubernetes version,
+ after the cluster has been upgraded. This field is
+ required for LKE Enterprise clusters but should not be
+ used for non-enterprise LKE clusters.
+ enum:
+ - rolling_update
+ - on_recycle
+ example: on_recycle
+ type: string
+ x-akamai:
+ status: BETA
+ type: object
+ x-akamai:
+ file-path: schemas/lke-node-pool.yaml
+ x-example:
+ x-ref: ../examples/post-lke-cluster-pools-200.json
+ description: Node Pool has been created.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/lke/clusters
- - lang: CLI
- source: |
- linode-cli lke clusters-list
- post:
- operationId: createLKECluster
- x-linode-cli-action: cluster-create
- x-linode-charge: true
- x-linode-grant: add_clusters
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'lke:read_write'
+ - lke:read_write
+ summary: Create a node pool
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: Configuration for the Kubernetes cluster
- x-linode-cli-allowed-defaults:
- - region
- 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: 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
+ - Node pools
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli lke pool-create 12345 \
+ --type g6-standard-4 \
+ --count 6 \
+ --tags example-tag \
+ --autoscaler.enabled true \
+ --autoscaler.max 12 \
+ --autoscaler.min 3 \
+ --labels '{ "example.com/my-app":"team1" }' \
+ --taints.effect "NoSchedule" \
+ --taints.key "example.com/my-app" \
+ --taints.value "teamA"
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: pool-create
+ get:
+ description: >-
+ Returns all active Node Pools on a Kubernetes cluster.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-pools
+ operationId: get-lke-cluster-pools
responses:
'200':
- description: Kubernetes cluster creation has started.
content:
application/json:
schema:
- $ref: '#/components/schemas/LKECluster'
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ The set of Node Pools which are members of the
+ Kubernetes cluster. Node Pools consist of a Linode type,
+ the number of Linodes to deploy of that type, and
+ additional status information.
+ properties:
+ autoscaler:
+ additionalProperties: false
+ description: >-
+ When enabled, the number of nodes autoscales within
+ the defined minimum and maximum values.
+ properties:
+ enabled:
+ description: >-
+ Whether autoscaling is enabled for this Node
+ Pool. Defaults to `false`.
+ example: true
+ type: boolean
+ max:
+ description: >-
+ The maximum number of nodes to autoscale to.
+ Defaults to the Node Pool's `count`.
+ example: 12
+ maximum: 100
+ minimum: 1
+ type: integer
+ min:
+ description: >-
+ The minimum number of nodes to autoscale to.
+ Defaults to the Node Pool's `count`.
+ example: 3
+ maximum: 100
+ minimum: 1
+ type: integer
+ type: object
+ count:
+ description: The number of nodes in the Node Pool.
+ example: 6
+ maximum: 100
+ minimum: 1
+ type: integer
+ disk_encryption:
+ description: >-
+ Indicates the local disk encryption setting for this
+ LKE node pool.
+ enum:
+ - enabled
+ - disabled
+ example: disabled
+ type: string
+ disks:
+ description: This Node Pool's custom disk layout.
+ items:
+ additionalProperties: false
+ description: >-
+ The values to assign to each partition in this
+ Node Pool's custom disk layout.
+ properties:
+ size:
+ description: >-
+ The size of this custom disk partition in MB.
+ The size of this disk partition can't exceed
+ the capacity of the node's plan type.
+ example: 1024
+ type: integer
+ type:
+ description: This custom disk partition's filesystem type.
+ enum:
+ - raw
+ - ext4
+ example: ext4
+ type: string
+ type: object
+ type: array
+ x-linode-cli-format: json
+ id:
+ description: __Filterable__ This Node Pool's unique ID.
+ example: 456
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ k8s_version:
+ description: >-
+ __Beta__ The Kubernetes version used for the worker
+ nodes within this node pool.
+ example: v1.31.8+lke3
+ type: string
+ x-akamai:
+ status: BETA
+ labels:
+ additionalProperties:
+ maxLength: 63
+ minLength: 0
+ pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
+ type: string
+ x-additionalPropertiesName: value
+ description: >-
+ Key-value pairs added as labels to nodes in the node
+ pool. Labels help classify your nodes and easily
+ select subsets of objects. To learn more, review
+ [Add Labels and Taints to your LKE node
+ pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools).
+ example:
+ example.com/my-app: teams
+ type: object
+ nodes:
+ description: >-
+ Status information for the Nodes which are members
+ of this Node Pool. If a Linode has not been
+ provisioned for a given Node slot, the `instance_id`
+ will be returned as `null`.
+ items:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Status information for a Node which
+ is a member of a Kubernetes cluster.
+ properties:
+ id:
+ description: The Node's ID.
+ example: 12345-6aa78910bc
+ type: string
+ instance_id:
+ description: >-
+ The Linode's ID. When no Linode is currently
+ provisioned for this Node, this will be
+ `null`.
+ example: 123458
+ nullable: true
+ type: integer
+ status:
+ 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
+ type: string
+ readOnly: true
+ type: object
+ x-akamai:
+ file-path: schemas/lke-node-status.yaml
+ type: array
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this
+ object. Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ taints:
+ description: >-
+ Kubernetes taints added to nodes in the node pool.
+ Taints help control how pods are scheduled onto
+ nodes, specifically allowing them to repel certain
+ pods.
+ example:
+ - effect: NoSchedule
+ key: example.com/my-app
+ value: teamA
+ - effect: NoExecute
+ key: myapp.io/team
+ value: teamC
+ items:
+ additionalProperties: false
+ properties:
+ effect:
+ description: >-
+ The Kubernetes taint effect. For `NoSchedule`,
+ `PreferNoSchedule` and `NoExecute`
+ descriptions, see [Kubernetes Taints and
+ Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
+ enum:
+ - NoSchedule
+ - PreferNoSchedule
+ - NoExecute
+ example: NoSchedule
+ type: string
+ key:
+ description: The Kubernetes taint key.
+ example: example.com/my-app
+ maxLength: 63
+ minLength: 1
+ pattern: >-
+ ^([A-Za-z0-9][-A-Za-z0-9_.]*)?(\/)?([A-Za-z0-9][-A-Za-z0-9_.]{1,63})?$
+ type: string
+ value:
+ description: The Kubernetes taint value.
+ example: teamC
+ maxLength: 63
+ minLength: 0
+ pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
+ type: string
+ type: object
+ type: array
+ type:
+ description: >-
+ The Linode Type for all of the nodes in the Node
+ Pool.
+ example: g6-standard-4
+ type: string
+ update_strategy:
+ description: >-
+ __Beta__ Determines when the worker nodes within
+ this node pool upgrade to the latest selected
+ Kubernetes version, after the cluster has been
+ upgraded. This field is required for LKE Enterprise
+ clusters but should not be used for non-enterprise
+ LKE clusters.
+ enum:
+ - rolling_update
+ - on_recycle
+ example: on_recycle
+ type: string
+ x-akamai:
+ status: BETA
+ type: object
+ x-akamai:
+ file-path: schemas/lke-node-pool.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-lke-cluster-pools-200.yaml
+ x-example:
+ x-ref: ../examples/get-lke-cluster-pools-200.json
+ description: Returns an array of all Pools in this Kubernetes cluster.
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.25",
- "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 lke cluster-create \
- --label cluster12345 \
- --region us-central \
- --k8s_version 1.25 \
- --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}':
- get:
- operationId: getLKECluster
- x-linode-cli-action: cluster-view
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'lke:read_only'
+ - lke:read_only
+ summary: List node pools
tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubernetes Cluster View
- description: |
- Get a specific Cluster by ID.
+ - Node pools
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke pools-list 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: pools-list
+ parameters:
+ - description: ID of the Kubernetes cluster to look up.
+ example: '{{clusterId}}'
+ in: path
+ name: clusterId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/cluster-id-path.yaml
+ x-akamai:
+ file-path: paths/cluster-pools.yaml
+ path-info: /{apiVersion}/lke/clusters/{clusterId}/pools
+ x-linode-cli-command: lke
+ /lke/clusters/{clusterId}/pools/{poolId}:
+ get:
+ description: >-
+ Get a specific Node Pool by ID.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-lke-node-pool
+ operationId: get-lke-node-pool
responses:
'200':
- description: Returns a single Kubernetes cluster.
content:
application/json:
schema:
- $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/lke/clusters/12345
- - lang: CLI
- source: linode-cli lke cluster-view 12345
- parameters:
- - name: clusterId
- in: path
- description: ID of the Kubernetes cluster to look up.
- required: true
- schema:
- type: integer
- put:
- operationId: putLKECluster
- x-linode-cli-action: cluster-update
+ additionalProperties: false
+ description: >-
+ The set of Node Pools which are members of the Kubernetes
+ cluster. Node Pools consist of a Linode type, the number of
+ Linodes to deploy of that type, and additional status
+ information.
+ properties:
+ autoscaler:
+ additionalProperties: false
+ description: >-
+ When enabled, the number of nodes autoscales within the
+ defined minimum and maximum values.
+ properties:
+ enabled:
+ description: >-
+ Whether autoscaling is enabled for this Node Pool.
+ Defaults to `false`.
+ example: true
+ type: boolean
+ max:
+ description: >-
+ The maximum number of nodes to autoscale to. Defaults
+ to the Node Pool's `count`.
+ example: 12
+ maximum: 100
+ minimum: 1
+ type: integer
+ min:
+ description: >-
+ The minimum number of nodes to autoscale to. Defaults
+ to the Node Pool's `count`.
+ example: 3
+ maximum: 100
+ minimum: 1
+ type: integer
+ type: object
+ count:
+ description: The number of nodes in the Node Pool.
+ example: 6
+ maximum: 100
+ minimum: 1
+ type: integer
+ disk_encryption:
+ description: >-
+ Indicates the local disk encryption setting for this LKE
+ node pool.
+ enum:
+ - enabled
+ - disabled
+ example: disabled
+ type: string
+ disks:
+ description: This Node Pool's custom disk layout.
+ items:
+ additionalProperties: false
+ description: >-
+ The values to assign to each partition in this Node
+ Pool's custom disk layout.
+ properties:
+ size:
+ description: >-
+ The size of this custom disk partition in MB. The
+ size of this disk partition can't exceed the
+ capacity of the node's plan type.
+ example: 1024
+ type: integer
+ type:
+ description: This custom disk partition's filesystem type.
+ enum:
+ - raw
+ - ext4
+ example: ext4
+ type: string
+ type: object
+ type: array
+ x-linode-cli-format: json
+ id:
+ description: __Filterable__ This Node Pool's unique ID.
+ example: 456
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ k8s_version:
+ description: >-
+ __Beta__ The Kubernetes version used for the worker nodes
+ within this node pool.
+ example: v1.31.8+lke3
+ type: string
+ x-akamai:
+ status: BETA
+ labels:
+ additionalProperties:
+ maxLength: 63
+ minLength: 0
+ pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
+ type: string
+ x-additionalPropertiesName: value
+ description: >-
+ Key-value pairs added as labels to nodes in the node pool.
+ Labels help classify your nodes and easily select subsets
+ of objects. To learn more, review [Add Labels and Taints
+ to your LKE node
+ pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools).
+ example:
+ example.com/my-app: teams
+ type: object
+ nodes:
+ description: >-
+ Status information for the Nodes which are members of this
+ Node Pool. If a Linode has not been provisioned for a
+ given Node slot, the `instance_id` will be returned as
+ `null`.
+ items:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Status information for a Node which is a
+ member of a Kubernetes cluster.
+ properties:
+ id:
+ description: The Node's ID.
+ example: 12345-6aa78910bc
+ type: string
+ instance_id:
+ description: >-
+ The Linode's ID. When no Linode is currently
+ provisioned for this Node, this will be `null`.
+ example: 123458
+ nullable: true
+ type: integer
+ status:
+ 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
+ type: string
+ readOnly: true
+ type: object
+ x-akamai:
+ file-path: schemas/lke-node-status.yaml
+ type: array
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ taints:
+ description: >-
+ Kubernetes taints added to nodes in the node pool. Taints
+ help control how pods are scheduled onto nodes,
+ specifically allowing them to repel certain pods.
+ example:
+ - effect: NoSchedule
+ key: example.com/my-app
+ value: teamA
+ - effect: NoExecute
+ key: myapp.io/team
+ value: teamC
+ items:
+ additionalProperties: false
+ properties:
+ effect:
+ description: >-
+ The Kubernetes taint effect. For `NoSchedule`,
+ `PreferNoSchedule` and `NoExecute` descriptions, see
+ [Kubernetes Taints and
+ Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
+ enum:
+ - NoSchedule
+ - PreferNoSchedule
+ - NoExecute
+ example: NoSchedule
+ type: string
+ key:
+ description: The Kubernetes taint key.
+ example: example.com/my-app
+ maxLength: 63
+ minLength: 1
+ pattern: >-
+ ^([A-Za-z0-9][-A-Za-z0-9_.]*)?(\/)?([A-Za-z0-9][-A-Za-z0-9_.]{1,63})?$
+ type: string
+ value:
+ description: The Kubernetes taint value.
+ example: teamC
+ maxLength: 63
+ minLength: 0
+ pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
+ type: string
+ type: object
+ type: array
+ type:
+ description: The Linode Type for all of the nodes in the Node Pool.
+ example: g6-standard-4
+ type: string
+ update_strategy:
+ description: >-
+ __Beta__ Determines when the worker nodes within this node
+ pool upgrade to the latest selected Kubernetes version,
+ after the cluster has been upgraded. This field is
+ required for LKE Enterprise clusters but should not be
+ used for non-enterprise LKE clusters.
+ enum:
+ - rolling_update
+ - on_recycle
+ example: on_recycle
+ type: string
+ x-akamai:
+ status: BETA
+ type: object
+ x-akamai:
+ file-path: schemas/lke-node-pool.yaml
+ x-example:
+ x-ref: ../examples/get-lke-node-pool-200.json
+ description: Returns the requested Node Pool.
security:
- personalAccessToken: []
- oauth:
- - 'lke:read_write'
+ - lke:read_only
+ summary: Get a node pool
tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubernetes Cluster Update
- description: |
- Updates a Kubernetes cluster.
+ - Node pools
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke pool-view 12345 456
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: pool-view
+ put:
+ description: >-
+ Updates a node pool's count, labels and taints, and autoscaler
+ configuration.
+
+
+ Linodes are created or deleted to match changes to the Node Pool's
+ count.
+
+
+ Specifying labels or taints on update overwrites any previous values,
+ and updates existing nodes with the new values without a recycle.
+
+
+ __Any local storage on deleted Linodes (such as `hostPath` and
+ `emptyDir` volumes, or `local` PersistentVolumes) will be erased.__
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-lke-node-pool
+ operationId: put-lke-node-pool
requestBody:
- description: The fields to update the Kubernetes cluster.
content:
application/json:
schema:
+ additionalProperties: false
properties:
- label:
- $ref: '#/components/schemas/LKECluster/properties/label'
- tags:
- type: array
- items:
+ autoscaler:
+ additionalProperties: false
+ description: >-
+ When enabled, the number of nodes automatically scales
+ within the defined minimum and maximum values. When making a
+ request, `max` and `min` require each other.
+ properties:
+ enabled:
+ description: >-
+ Whether automatic scaling is enabled for this node pool.
+ Defaults to `false`.
+ example: true
+ type: boolean
+ max:
+ description: >-
+ The maximum number of nodes to automatically scale to.
+ Defaults to the value provided by the `count` field.
+ example: 12
+ maximum: 100
+ minimum: 1
+ type: integer
+ min:
+ description: >-
+ The minimum number of nodes to automatically scale to.
+ Defaults to the node pool's `count`.
+ example: 3
+ maximum: 100
+ minimum: 1
+ type: integer
+ type: object
+ count:
+ description: The number of nodes in the Node Pool.
+ example: '{{count}}'
+ maximum: 100
+ minimum: 1
+ type: integer
+ labels:
+ additionalProperties:
+ maxLength: 63
+ minLength: 0
+ pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
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.
+ x-additionalPropertiesName: value
+ description: >-
+ Key-value pairs added as labels to nodes in the node pool.
+ Labels help classify your nodes and easily select subsets of
+ objects. To learn more, review [Add Labels and Taints to
+ your LKE node
+ pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools).
- 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:
+ **Label key:**
+
+
+ - A key can contain alphanumeric characters, dashes (`-`),
+ underscores (`_`), or dots (`.`). Start and end it with an
+ alphanumeric character.
+
+
+ - If the key begins with a DNS subdomain prefix followed by
+ a single slash, for example `example.com/my-app`, the
+ maximum total length of the label key is 128 characters.
+ Domain labels can be up to 62 characters after the '/'. The
+ prefix needs to adhere to [RFC
+ 1123](https://datatracker.ietf.org/doc/html/rfc1123) DNS
+ subdomain restrictions.
+
+
+ - If the key doesn't begin with a DNS subdomain prefix, the
+ maximum key length is 63 characters.
+
+
+ Specifying an empty object removes all previously set
+ labels.
+
+
+ **Label value:**
+
+
+ - The label's value can contain alphanumeric characters,
+ dashes (`-`), underscores (`_`), or dots (`.`). Start and
+ end it with an alphanumeric character.
+
+
+ - Can be specified as an empty string value with `""`.
+ example:
+ example.com/my-app: teams
type: object
- description: |
- Defines settings for the Kubernetes Control Plane. Allows for the enabling of High Availability (HA) for Control Plane Components.
+ taints:
+ description: >-
+ Kubernetes taints to add to node pool nodes. Taints help
+ control how pods are scheduled onto nodes, specifically
+ allowing them to repel certain pods. To learn more, review
+ [Add labels and taints to your LKE node
+ pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools).
- 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:
+ Specifying an empty array (`[]`) removes all previously set
+ taints.
+ example:
+ - effect: NoSchedule
+ key: example.com/my-app
+ value: teamA
+ - effect: NoExecute
+ key: myapp.io/team
+ value: teamB
+ items:
+ additionalProperties: false
+ properties:
+ effect:
+ description: >-
+ The Kubernetes taint effect. For `NoSchedule`,
+ `PreferNoSchedule` and `NoExecute` descriptions, see
+ [Kubernetes Taints and
+ Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
+ enum:
+ - NoSchedule
+ - PreferNoSchedule
+ - NoExecute
+ example: NoSchedule
+ type: string
+ key:
+ description: >-
+ The Kubernetes taint key.
- - All nodes will be deleted and new nodes will be created to replace them.
- - Any local storage (such as `hostPath` volumes) will be erased.
+ - A key can contain alphanumeric characters, dashes
+ (`-`), underscores (`_`), or dots (`.`). Start and end
+ it with an alphanumeric character.
- - 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
+
+ - If the key begins with a DNS subdomain prefix
+ followed by a single slash, for example
+ `example.com/my-app`, the prefix part needs to adhere
+ to [RFC
+ 1123](https://datatracker.ietf.org/doc/html/rfc1123)
+ DNS subdomain restrictions and be a maximum of 253
+ characters.
+ example: example.com/my-app
+ maxLength: 63
+ minLength: 1
+ pattern: >-
+ ^([A-Za-z0-9][-A-Za-z0-9_.]*)?(\/)?([A-Za-z0-9][-A-Za-z0-9_.]{1,63})?$
+ type: string
+ value:
+ description: >-
+ The Kubernetes taint value.
+
+
+ - A key can contain alphanumeric characters, dashes
+ (`-`), underscores (`_`), or dots (`.`). Start and end
+ it with an alphanumeric character.
+
+
+ - Can be specified as an empty string value with `""`.
+ example: teamC
+ maxLength: 63
+ minLength: 0
+ pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
+ type: string
+ required:
+ - key
+ - value
+ - effect
+ type: object
+ minItems: 0
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-lke-node-pool.yaml
+ x-example:
+ x-ref: ../examples/put-lke-node-pool.json
+ description: The fields to update.
responses:
'200':
- description: Returns a single Kubernetes cluster.
content:
application/json:
schema:
+ additionalProperties: false
+ description: >-
+ The set of Node Pools which are members of the Kubernetes
+ cluster. Node Pools consist of a Linode type, the number of
+ Linodes to deploy of that type, and additional status
+ information.
properties:
- label:
- $ref: '#/components/schemas/LKECluster/properties/label'
- tags:
+ autoscaler:
+ additionalProperties: false
+ description: >-
+ When enabled, the number of nodes autoscales within the
+ defined minimum and maximum values.
+ properties:
+ enabled:
+ description: >-
+ Whether autoscaling is enabled for this Node Pool.
+ Defaults to `false`.
+ example: true
+ type: boolean
+ max:
+ description: >-
+ The maximum number of nodes to autoscale to. Defaults
+ to the Node Pool's `count`.
+ example: 12
+ maximum: 100
+ minimum: 1
+ type: integer
+ min:
+ description: >-
+ The minimum number of nodes to autoscale to. Defaults
+ to the Node Pool's `count`.
+ example: 3
+ maximum: 100
+ minimum: 1
+ type: integer
+ type: object
+ count:
+ description: The number of nodes in the Node Pool.
+ example: 6
+ maximum: 100
+ minimum: 1
+ type: integer
+ disk_encryption:
+ description: >-
+ Indicates the local disk encryption setting for this LKE
+ node pool.
+ enum:
+ - enabled
+ - disabled
+ example: disabled
+ type: string
+ disks:
+ description: This Node Pool's custom disk layout.
+ items:
+ additionalProperties: false
+ description: >-
+ The values to assign to each partition in this Node
+ Pool's custom disk layout.
+ properties:
+ size:
+ description: >-
+ The size of this custom disk partition in MB. The
+ size of this disk partition can't exceed the
+ capacity of the node's plan type.
+ example: 1024
+ type: integer
+ type:
+ description: This custom disk partition's filesystem type.
+ enum:
+ - raw
+ - ext4
+ example: ext4
+ type: string
+ type: object
type: array
+ x-linode-cli-format: json
+ id:
+ description: __Filterable__ This Node Pool's unique ID.
+ example: 456
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ k8s_version:
+ description: >-
+ __Beta__ The Kubernetes version used for the worker nodes
+ within this node pool.
+ example: v1.31.8+lke3
+ type: string
+ x-akamai:
+ status: BETA
+ labels:
+ additionalProperties:
+ maxLength: 63
+ minLength: 0
+ pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
+ type: string
+ x-additionalPropertiesName: value
+ description: >-
+ Key-value pairs added as labels to nodes in the node pool.
+ Labels help classify your nodes and easily select subsets
+ of objects. To learn more, review [Add Labels and Taints
+ to your LKE node
+ pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools).
+ example:
+ example.com/my-app: teams
+ type: object
+ nodes:
+ description: >-
+ Status information for the Nodes which are members of this
+ Node Pool. If a Linode has not been provisioned for a
+ given Node slot, the `instance_id` will be returned as
+ `null`.
+ items:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Status information for a Node which is a
+ member of a Kubernetes cluster.
+ properties:
+ id:
+ description: The Node's ID.
+ example: 12345-6aa78910bc
+ type: string
+ instance_id:
+ description: >-
+ The Linode's ID. When no Linode is currently
+ provisioned for this Node, this will be `null`.
+ example: 123458
+ nullable: true
+ type: integer
+ status:
+ 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
+ type: string
+ readOnly: true
+ type: object
+ x-akamai:
+ file-path: schemas/lke-node-status.yaml
+ type: array
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
items:
type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ taints:
+ description: >-
+ Kubernetes taints added to nodes in the node pool. Taints
+ help control how pods are scheduled onto nodes,
+ specifically allowing them to repel certain pods.
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'
+ - effect: NoSchedule
+ key: example.com/my-app
+ value: teamA
+ - effect: NoExecute
+ key: myapp.io/team
+ value: teamC
+ items:
+ additionalProperties: false
+ properties:
+ effect:
+ description: >-
+ The Kubernetes taint effect. For `NoSchedule`,
+ `PreferNoSchedule` and `NoExecute` descriptions, see
+ [Kubernetes Taints and
+ Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
+ enum:
+ - NoSchedule
+ - PreferNoSchedule
+ - NoExecute
+ example: NoSchedule
+ type: string
+ key:
+ description: The Kubernetes taint key.
+ example: example.com/my-app
+ maxLength: 63
+ minLength: 1
+ pattern: >-
+ ^([A-Za-z0-9][-A-Za-z0-9_.]*)?(\/)?([A-Za-z0-9][-A-Za-z0-9_.]{1,63})?$
+ type: string
+ value:
+ description: The Kubernetes taint value.
+ example: teamC
+ maxLength: 63
+ minLength: 0
+ pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
+ type: string
+ type: object
+ type: array
+ type:
+ description: The Linode Type for all of the nodes in the Node Pool.
+ example: g6-standard-4
+ type: string
+ update_strategy:
+ description: >-
+ __Beta__ Determines when the worker nodes within this node
+ pool upgrade to the latest selected Kubernetes version,
+ after the cluster has been upgraded. This field is
+ required for LKE Enterprise clusters but should not be
+ used for non-enterprise LKE clusters.
+ enum:
+ - rolling_update
+ - on_recycle
+ example: on_recycle
+ type: string
+ x-akamai:
+ status: BETA
type: object
- 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 \
- --control_plane.high_availability true \
- --k8s_version 1.25 \
- --tags ecomm \
- --tags blog \
- --tags prod \
- --tags monitoring
- parameters:
- - name: clusterId
- in: path
- description: ID of the Kubernetes cluster to look up.
- required: true
- schema:
- type: integer
- delete:
- operationId: deleteLKECluster
- x-linode-cli-action: cluster-delete
+ x-akamai:
+ file-path: schemas/lke-node-pool.yaml
+ x-example:
+ x-ref: ../examples/get-lke-node-pool-200.json
+ description: Node Pool was successfully modified.
security:
- personalAccessToken: []
- oauth:
- - 'lke:read_write'
+ - lke:read_write
+ summary: Update a node pool
tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubernetes Cluster Delete
- description: |
- Deletes a Cluster you have permission to `read_write`.
+ - Node pools
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli lke pool-update 12345 456 \
+ --count 6 \
+ --autoscaler.enabled true \
+ --autoscaler.max 12 \
+ --autoscaler.min 3 \
+ --labels '{ "example.com/my-app":"team1", "env":"staging" }' \
+ --taints.effect "NoSchedule" \
+ --taints.key "example.com/my-app" \
+ --taints.value "teamA"
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: pool-update
+ delete:
+ description: >-
+ Delete a specific Node Pool from a Kubernetes cluster.
- **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
+ __Deleting a Node Pool is a destructive action and cannot be undone.__
+
+
+ Deleting a Node Pool will delete all Linodes within that Pool.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-lke-node-pool
+ operationId: delete-lke-node-pool
responses:
'200':
- description: Delete successful
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-lke-node-pool-200.json
+ description: Delete successful.
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
- - lang: CLI
- source: |
- linode-cli lke cluster-delete 12345
- parameters:
- - name: clusterId
- in: path
- description: ID of the Kubernetes cluster to look up.
- required: true
- schema:
- type: integer
- '/lke/clusters/{clusterId}/pools':
- get:
- operationId: getLKEClusterPools
- x-linode-cli-action: pools-list
- 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.
- responses:
- '200':
- 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:
- type: object
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
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 "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/lke/clusters/12345/pools
- - lang: CLI
- source: |
- linode-cli lke pools-list 12345
- parameters:
- - name: clusterId
- in: path
- description: ID of the Kubernetes cluster to look up.
- required: true
- schema:
- type: integer
- post:
- operationId: postLKEClusterPools
- x-linode-cli-action: pool-create
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'lke:read_write'
+ - lke:read_write
+ summary: Delete a node pool
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
+ - Node pools
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke pool-delete 12345 456
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: pool-delete
+ parameters:
+ - description: ID of the Kubernetes cluster to look up.
+ example: '{{clusterId}}'
+ in: path
+ name: clusterId
required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - type
- - count
- allOf:
- - $ref: '#/components/schemas/LKENodePoolRequestBody'
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/cluster-id-path-28150853.yaml
+ - description: ID of the Pool to look up.
+ example: '{{poolId}}'
+ in: path
+ name: poolId
+ required: true
+ schema:
+ example: 924
+ type: integer
+ x-akamai:
+ file-path: parameters/pool-id-path-8468a3cd.yaml
+ x-akamai:
+ file-path: paths/pool.yaml
+ path-info: /{apiVersion}/lke/clusters/{clusterId}/pools/{poolId}
+ x-linode-cli-command: lke
+ /lke/clusters/{clusterId}/pools/{poolId}/recycle:
+ post:
+ 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.__
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-lke-cluster-pool-recycle
+ operationId: post-lke-cluster-pool-recycle
responses:
'200':
- description: Node Pool has been created.
content:
application/json:
schema:
- $ref: '#/components/schemas/LKENodePool'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-lke-cluster-pool-recycle-200.json
+ description: Recycle request succeeded and is in progress.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "type": "g6-standard-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 lke pool-create 12345 \
- --type g6-standard-4 \
- --count 6 \
- --tags example-tag \
- --autoscaler.enabled true \
- --autoscaler.max 12 \
- --autoscaler.min 3
- parameters:
- - name: clusterId
- in: path
- description: ID of the Kubernetes cluster to look up.
- required: true
- schema:
- type: integer
- '/lke/clusters/{clusterId}/recycle':
- post:
- operationId: postLKEClusterRecycle
- x-linode-cli-action: cluster-nodes-recycle
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'lke:read_write'
+ - lke:read_write
+ summary: Recycle a node pool
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.**
+ - Node pools
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke pool-recycle 12345 456
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: pool-recycle
+ parameters:
+ - description: ID of the Kubernetes cluster this Node Pool is attached to.
+ example: '{{clusterId}}'
+ in: path
+ name: clusterId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/cluster-id-path-61c0e84e.yaml
+ - description: ID of the Node Pool to be recycled.
+ example: '{{poolId}}'
+ in: path
+ name: poolId
+ required: true
+ schema:
+ example: 924
+ type: integer
+ x-akamai:
+ file-path: parameters/pool-id-path-bfac95e1.yaml
+ x-akamai:
+ file-path: paths/pool-recycle.yaml
+ path-info: /{apiVersion}/lke/clusters/{clusterId}/pools/{poolId}/recycle
+ x-linode-cli-command: lke
+ /lke/clusters/{clusterId}/recycle:
+ post:
+ 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 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.__
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-lke-cluster-recycle
+ operationId: post-lke-cluster-recycle
responses:
'200':
- description: Recycle request succeeded and is in progress.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-lke-cluster-recycle-200.json
+ description: Recycle request succeeded and is in progress.
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/recycle
- - lang: CLI
- source: |
- linode-cli lke cluster-nodes-recycle 12345
- parameters:
- - name: clusterId
- in: path
- description: ID of the Kubernetes cluster which contains nodes to be recycled.
- required: true
- schema:
- type: integer
- '/lke/clusters/{clusterId}/pools/{poolId}':
- get:
- operationId: getLKENodePool
- x-linode-cli-action: pool-view
- security:
- - personalAccessToken: []
- - oauth:
- - 'lke:read_only'
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Node Pool View
- description: |
- Get a specific Node Pool by ID.
- responses:
- '200':
- description: Returns the requested Node Pool.
content:
application/json:
schema:
- $ref: '#/components/schemas/LKENodePool'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/lke/clusters/12345/pools/456
- - lang: CLI
- source: |
- linode-cli lke pool-view 12345 456
- 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
- put:
- operationId: putLKENodePool
- x-linode-cli-action: pool-update
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'lke:read_write'
+ - lke:read_write
+ summary: Recycle cluster nodes
tags:
- - Linode Kubernetes Engine (LKE)
- summary: Node Pool Update
- description: |
- Updates a Node Pool's count and autoscaler configuration.
+ - Clusters
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke cluster-nodes-recycle 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: cluster-nodes-recycle
+ parameters:
+ - description: ID of the Kubernetes cluster which contains nodes to be recycled.
+ example: '{{clusterId}}'
+ in: path
+ name: clusterId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/cluster-id-path-c46e2301.yaml
+ x-akamai:
+ file-path: paths/cluster-recycle.yaml
+ path-info: /{apiVersion}/lke/clusters/{clusterId}/recycle
+ x-linode-cli-command: lke
+ /lke/clusters/{clusterId}/regenerate:
+ post:
+ description: >-
+ Regenerate the Kubeconfig file and/or the service account token for a
+ Cluster.
+
+
+ This is a helper operation that allows performing both the [Delete a
+ Kubeconfig](https://techdocs.akamai.com/linode-api/reference/delete-lke-cluster-kubeconfig)
+ and the [Delete a service
+ token](https://techdocs.akamai.com/linode-api/reference/delete-lke-service-token)
+ operations with a single request.
+
+
+ When using this operation, at least one of `kubeconfig` or
+ `servicetoken` is required.
+
+
+ > 📘
- 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.**
+ > When regenerating a service account token, the cluster's control plane
+ components and Linode CSI drivers are also restarted and configured with
+ the new token. High availability clusters shouldn't experience any
+ disruption, while standard clusters may experience brief control plane
+ downtime while components are restarted.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-lke-cluster-regenerate
+ operationId: post-lke-cluster-regenerate
requestBody:
- description: The fields to update
content:
application/json:
schema:
+ additionalProperties: false
properties:
- count:
- $ref: '#/components/schemas/LKENodePoolRequestBody/properties/count'
- autoscaler:
- $ref: '#/components/schemas/LKENodePoolRequestBody/properties/autoscaler'
- responses:
- '200':
- description: Node Pool was successfully modified.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/LKENodePool'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -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 lke pool-update 12345 456 \
- --count 6 \
- --autoscaler.enabled true \
- --autoscaler.max 12 \
- --autoscaler.min 3
- 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
- delete:
- operationId: deleteLKENodePool
- x-linode-cli-action: pool-delete
- 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.
+ kubeconfig:
+ default: false
+ description: >-
+ Whether to delete and regenerate the Kubeconfig file for
+ this Cluster.
+ example: '{{kubeconfig}}'
+ type: boolean
+ servicetoken:
+ default: false
+ description: >-
+ Whether to delete and regenerate the service access token
+ for this Cluster.
+ example: '{{servicetoken}}'
+ type: boolean
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-lke-cluster-regenerate.yaml
+ x-example:
+ x-ref: ../examples/post-lke-cluster-regenerate.json
+ description: The Kubernetes Cluster Regenerate request object.
responses:
'200':
- description: Delete successful
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-lke-cluster-regenerate-200.json
+ description: Regenerate request successful.
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
- - lang: CLI
- source: |
- linode-cli lke pool-delete 12345 456
- 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
- '/lke/clusters/{clusterId}/pools/{poolId}/recycle':
- post:
- operationId: postLKEClusterPoolRecycle
- x-linode-cli-action: pool-recycle
- 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.**
- responses:
- '200':
- description: Recycle request succeeded and is in progress.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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/pools/456/recycle
- - lang: CLI
- source: |
- linode-cli lke pool-recycle 12345 456
- 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
- '/lke/clusters/{clusterId}/nodes/{nodeId}':
- get:
- operationId: getLKEClusterNode
- x-linode-cli-action: node-view
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'lke:read_write'
+ - lke:read_write
+ summary: Regenerate a Kubernetes cluster
tags:
- - 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:
- 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`.
+ - Clusters
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli lke regenerate 12345 \
+ --kubeconfig true \
+ --servicetoken true
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: regenerate
+ parameters:
+ - description: ID of the target Kubernetes cluster.
+ example: '{{clusterId}}'
+ in: path
+ name: clusterId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/cluster-id-path-c7286e6e.yaml
+ x-akamai:
+ file-path: paths/regenerate.yaml
+ path-info: /{apiVersion}/lke/clusters/{clusterId}/regenerate
+ x-linode-cli-command: lke
+ /lke/clusters/{clusterId}/servicetoken:
+ delete:
+ description: >-
+ Delete and regenerate the service account token for a Cluster.
- `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
- 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
- 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.
+ > When you regenerate a service account token, the cluster's control
+ plane components and Linode CSI drivers are also restarted and
+ configured with the new token. High availability clusters shouldn't
+ experience any disruption, while standard clusters may experience brief
+ control plane downtime while components are restarted.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-lke-service-token
+ operationId: delete-lke-service-token
responses:
'200':
- description: Delete successful
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-lke-service-token-200.json
+ description: Service token deleted and regenerated successfully.
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
- 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
- '/lke/clusters/{clusterId}/nodes/{nodeId}/recycle':
- post:
- operationId: postLKEClusterNodeRecycle
- x-linode-cli-action: node-recycle
- 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.
-
- **Any local storage on deleted Linodes (such as "hostPath" and "emptyDir" volumes, or "local" PersistentVolumes) will be erased.**
- responses:
- '200':
- description: Recycle request succeeded and is in progress.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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
- - lang: CLI
- source: |
- linode-cli lke node-recycle 12345 12345-6aa78910bc
- 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
- '/lke/clusters/{clusterId}/api-endpoints':
- get:
- operationId: getLKEClusterAPIEndpoints
- x-linode-cli-action: api-endpoints-list
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'lke:read_only'
+ - lke:read_write
+ summary: Delete a service token
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).
+ - Service tokens
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke service-token-delete 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: service-token-delete
+ parameters:
+ - description: ID of the target Kubernetes cluster.
+ example: '{{clusterId}}'
+ in: path
+ name: clusterId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/cluster-id-path-c7286e6e.yaml
+ x-akamai:
+ file-path: paths/service-token.yaml
+ path-info: /{apiVersion}/lke/clusters/{clusterId}/servicetoken
+ x-linode-cli-command: lke
+ /lke/tiers/{tier}/versions:
+ get:
+ description: >-
+ List LKE Kubernetes versions available for deployment to a Kubernetes
+ cluster (any tier).
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-lke-tiers-versions
+ operationId: get-lke-tiers-versions
responses:
'200':
- description: Returns the Kubernetes API server endpoints for this cluster.
content:
application/json:
+ examples:
+ enterprise:
+ summary: LKE versions for enterprise tier
+ value:
+ data:
+ - id: v1.31.1+lke4
+ tier: enterprise
+ page: 1
+ pages: 1
+ results: 1
+ standard:
+ summary: LKE versions for standard tier
+ value:
+ data:
+ - id: '1.32'
+ tier: standard
+ - id: '1.31'
+ tier: standard
+ - id: '1.30'
+ tier: standard
+ page: 1
+ pages: 1
+ results: 3
schema:
- type: object
+ additionalProperties: false
+ description: __Read-only__ LKE versions for a tier.
properties:
data:
- type: array
+ description: __Read-only__ LKE versions for the requested tier.
items:
- type: object
- description: |
- The Kubernetes API server endpoints for this cluster.
+ additionalProperties: false
+ description: __Read-only__ LKE version for a tier.
properties:
- endpoint:
+ id:
+ description: >-
+ __Read-only__ 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.31'
+ minLength: 1
+ readOnly: true
type: string
+ tier:
+ description: __Read-only__ An LKE tier.
+ enum:
+ - standard
+ - enterprise
+ example: standard
readOnly: true
- description: |
- A Kubernetes API server endpoint for this cluster.
- example: 'https://192.0.2.1:6443'
+ type: string
+ readOnly: true
+ required:
+ - id
+ - tier
+ type: object
+ x-akamai:
+ file-path: schemas/lke-tiers-version.yaml
+ minItems: 1
+ readOnly: true
+ type: array
+ uniqueItems: true
page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-akamai:
+ file-path: schemas/get-lke-tiers-versions-200.yaml
+ x-example:
+ x-ref: ../examples/get-lke-tiers-versions-200.json
+ description: >-
+ Returns a list of LKE Kubernetes versions available for deployment
+ to a Kubernetes cluster (any tier).
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- 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
- parameters:
- - name: clusterId
- in: path
- description: ID of the Kubernetes cluster to look up.
- required: true
- schema:
- type: integer
- '/lke/clusters/{clusterId}/dashboard':
- get:
- operationId: getLKEClusterDashboard
- x-linode-cli-action: cluster-dashboard-url
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'lke:read_only'
+ - lke:read_only
+ summary: List LKE Kubernetes versions (any tier)
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.
+ - LKE versions
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke tiered-versions-list standard
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: tiered-versions-list
+ x-linode-grant: read_only
+ parameters:
+ - description: __Enum__ The LKE tier to use.
+ example: '{{tier}}'
+ in: path
+ name: tier
+ required: true
+ schema:
+ enum:
+ - standard
+ - enterprise
+ example: standard
+ type: string
+ x-akamai:
+ file-path: parameters/lke-tier-path.yaml
+ x-akamai:
+ file-path: paths/lke-tiers-versions.yaml
+ path-info: /{apiVersion}/lke/tiers/{tier}/versions
+ x-linode-cli-command: lke
+ /lke/tiers/{tier}/versions/{version}:
+ get:
+ description: >-
+ View an LKE Kubernetes version available for deployment to a Kubernetes
+ cluster (any tier)
- 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**.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- 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/).
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-lke-tiers-version
+ operationId: get-lke-tiers-version
responses:
'200':
- description: Returns a Kubernetes Cluster Dashboard URL.
content:
application/json:
+ examples:
+ enterprise:
+ summary: LKE version for enterprise tier
+ value:
+ id: v1.31.1+lke4
+ tier: enterprise
+ standard:
+ summary: LKE version for standard tier
+ value:
+ id: '1.32'
+ tier: standard
schema:
- type: object
+ additionalProperties: false
+ description: __Read-only__ LKE version for a tier.
properties:
- url:
+ id:
+ description: >-
+ __Read-only__ 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.31'
+ minLength: 1
+ readOnly: true
type: string
- example: 'https://example.dashboard.linodelke.net'
- description: The Cluster Dashboard access URL.
+ tier:
+ description: __Read-only__ An LKE tier.
+ enum:
+ - standard
+ - enterprise
+ example: standard
+ readOnly: true
+ type: string
+ readOnly: true
+ required:
+ - id
+ - tier
+ type: object
+ x-akamai:
+ file-path: schemas/lke-tiers-version.yaml
+ x-example:
+ x-ref: ../examples/get-lke-tiers-version-200.json
+ description: >-
+ Returns an LKE Kubernetes version available for deployment to a
+ Kubernetes cluster (any tier).
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/lke/clusters/12345/dashboard
- - lang: CLI
- source: linode-cli lke cluster-dashboard-url 12345
- parameters:
- - name: clusterId
- in: path
- description: ID of the Kubernetes cluster to look up.
- required: true
- schema:
- type: integer
- '/lke/clusters/{clusterId}/kubeconfig':
- get:
- operationId: getLKEClusterKubeconfig
- x-linode-cli-action: kubeconfig-view
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'lke:read_write'
+ - lke:read_only
+ summary: Get an LKE Kubernetes version (any tier)
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).
+ - LKE versions
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke tiered-version-view standard 1.31
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: tiered-version-view
+ x-linode-grant: read_only
+ parameters:
+ - description: __Enum__ The LKE tier to use.
+ example: '{{tier}}'
+ in: path
+ name: tier
+ required: true
+ schema:
+ enum:
+ - standard
+ - enterprise
+ example: standard
+ type: string
+ x-akamai:
+ file-path: parameters/lke-tier-path.yaml
+ - description: The LKE version to view.
+ example: '{{version}}'
+ in: path
+ name: version
+ required: true
+ schema:
+ example: '1.32'
+ type: string
+ x-akamai:
+ file-path: parameters/version-path.yaml
+ x-akamai:
+ file-path: paths/lke-tiers-version.yaml
+ path-info: /{apiVersion}/lke/tiers/{tier}/versions/{version}
+ x-linode-cli-command: lke
+ /lke/types:
+ get:
+ description: >-
+ Returns Kubernetes types and prices, including any region-specific
+ rates.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-lke-types
+ operationId: get-lke-types
responses:
'200':
- description: Returns the Base64-encoded Kubeconfig file for this Kubernetes cluster.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
- kubeconfig:
- type: string
+ data:
+ description: The Kubernetes types.
+ items:
+ additionalProperties: false
+ description: >-
+ Returns collection of Kubernetes types and prices,
+ including any region-specific rates.
+ properties:
+ id:
+ description: >-
+ __Read-only__ The ID representing the Kubernetes
+ type.
+ example: lke-sa
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__, __Read-only__ The Kubernetes type
+ label is for display purposes only.
+ example: LKE Standard Availability
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ price:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The default cost of this Kubernetes
+ type. Prices are in US dollars, broken down into
+ hourly and monthly charges.
+
+
+ Certain regions have different prices from the
+ default. For region-specific prices, see
+ `region_prices`.
+ properties:
+ hourly:
+ description: __Filterable__ Cost (in US dollars) per hour.
+ example: 0.0015
+ type: number
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ monthly:
+ description: __Filterable__ Cost per month, in US dollars.
+ example: 0.1
+ type: number
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ readOnly: true
+ type: object
+ region_prices:
+ items:
+ additionalProperties: false
+ properties:
+ hourly:
+ description: Cost per hour for this region, in US dollars.
+ example: 0.00018
+ type: number
+ x-linode-cli-display: 6
+ id:
+ description: The Region ID for these prices.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ monthly:
+ description: Cost per month for this region, in US dollars.
+ example: 0.12
+ type: number
+ x-linode-cli-display: 7
+ type: object
+ type: array
+ transfer:
+ description: >-
+ __Filterable__, __Read-only__ The monthly outbound
+ transfer amount, in MB.
+ example: 0
+ minimum: 0
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/lke-type.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
readOnly: true
- description: |
- The Base64-encoded Kubeconfig file for this Cluster.
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/get-lke-types-200.yaml
+ x-example:
+ x-ref: ../examples/get-lke-types-200.json
+ description: A collection of Kubernetes types.
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
- - lang: CLI
- source: |
- linode-cli lke kubeconfig-view 12345
- parameters:
- - name: clusterId
- in: path
- description: ID of the Kubernetes cluster to look up.
- required: true
- schema:
- type: integer
- delete:
- operationId: deleteLKEClusterKubeconfig
- x-linode-cli-action: kubeconfig-delete
- security:
- - personalAccessToken: []
- - oauth:
- - 'lke:read_write'
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubeconfig Delete
- description: |
- Delete and regenerate the Kubeconfig file for a Cluster.
- responses:
- '200':
- description: Kubeconfig file deleted and regenerated successfully.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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/kubeconfig
- - lang: CLI
- source: |
- linode-cli lke kubeconfig-delete 12345
- parameters:
- - name: clusterId
- in: path
- description: ID of the Kubernetes cluster to look up.
- required: true
- schema:
- type: integer
- '/lke/clusters/{clusterId}/regenerate':
- post:
- operationId: postLKEClusterRegenerate
- x-linode-cli-action: regenerate
- security:
- - personalAccessToken: []
- - oauth:
- - 'lke:read_write'
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: List Kubernetes types
tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubernetes Cluster Regenerate
- description: |
- Regenerate the Kubeconfig file and/or the service account token for a Cluster.
+ - LKE types
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke types
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: types
+ x-linode-redoc-load-ids: true
+ parameters: []
+ x-akamai:
+ file-path: paths/lke-types.yaml
+ path-info: /{apiVersion}/lke/types
+ x-linode-cli-command: lke
+ /lke/versions:
+ get:
+ description: >-
+ List LKE Kubernetes versions available for deployment to a standard-tier
+ Kubernetes cluster.
- This is a helper command that allows performing both the [Kubeconfig Delete](#kubeconfig-delete) and the [Service Token Delete](#service-token-delete) actions with a single request.
- When using this command, at least one of `kubeconfig` or `servicetoken` is required.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- **Note**: When regenerating a service account token, the Cluster's control plane components and Linode CSI drivers are also restarted and configured with the new token. High Availability Clusters should not experience any disruption, while standard Clusters may experience brief control plane downtime while components are restarted.
- requestBody:
- description: The Kubernetes Cluster Regenerate request object.
- content:
- application/json:
- schema:
- properties:
- kubeconfig:
- type: boolean
- default: false
- example: true
- description: |
- Whether to delete and regenerate the Kubeconfig file for this Cluster.
- servicetoken:
- type: boolean
- default: false
- example: true
- description: |
- Whether to delete and regenerate the service access token for this Cluster.
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-lke-versions
+ operationId: get-lke-versions
responses:
'200':
- description: Regenerate request successful.
content:
application/json:
+ example:
+ data:
+ - id: '1.32'
+ - id: '1.31'
+ - id: '1.30'
+ page: 1
+ pages: 1
+ results: 3
schema:
+ additionalProperties: false
+ description: __Read-only__ LKE versions for standard tier.
+ properties:
+ data:
+ description: __Read-only__ LKE versions for standard tier.
+ items:
+ additionalProperties: false
+ description: __Read-only__ LKE version.
+ properties:
+ id:
+ description: >-
+ __Read-only__ 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.31'
+ minLength: 1
+ readOnly: true
+ type: string
+ readOnly: true
+ required:
+ - id
+ type: object
+ x-akamai:
+ file-path: schemas/lke-version.yaml
+ minItems: 1
+ readOnly: true
+ type: array
+ uniqueItems: true
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ readOnly: true
type: object
+ x-akamai:
+ file-path: schemas/added-get-lke-versions-200.yaml
+ x-example:
+ x-ref: ../examples/get-lke-versions-200.json
+ description: >-
+ Returns a list of LKE Kubernetes versions available for deployment
+ to a standard-tier Kubernetes cluster.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "kubeconfig": true;
- "servicetoken": true
- }' \
- https://api.linode.com/v4/lke/clusters/12345/regenerate
- - lang: CLI
- source: |
- linode-cli lke regenerate 12345 \
- --kubeconfig true \
- --servicetoken true
- parameters:
- - name: clusterId
- in: path
- description: ID of the target Kubernetes cluster.
- required: true
- schema:
- type: integer
- '/lke/clusters/{clusterId}/servicetoken':
- delete:
- operationId: postLKECServiceTokenDelete
- x-linode-cli-action: service-token-delete
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'lke:read_write'
+ - lke:read_only
+ summary: List LKE Kubernetes versions (non-enterprise)
tags:
- - Linode Kubernetes Engine (LKE)
- summary: Service Token Delete
- description: |
- Delete and regenerate the service account token for a Cluster.
+ - LKE versions
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke versions-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: versions-list
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/versions.yaml
+ path-info: /{apiVersion}/lke/versions
+ x-linode-cli-command: lke
+ /lke/versions/{version}:
+ get:
+ description: >-
+ View an LKE Kubernetes version available for deployment to a standard
+ tier Kubernetes cluster.
- **Note**: When regenerating a service account token, the Cluster's control plane components and Linode CSI drivers are also restarted and configured with the new token. High Availability Clusters should not experience any disruption, while standard Clusters may experience brief control plane downtime while components are restarted.
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-lke-version
+ operationId: get-lke-version
responses:
'200':
- description: Service token deleted and regenerated successfully.
content:
application/json:
+ example:
+ id: '1.32'
schema:
+ additionalProperties: false
+ description: __Read-only__ LKE version.
+ properties:
+ id:
+ description: >-
+ __Read-only__ 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.31'
+ minLength: 1
+ readOnly: true
+ type: string
+ readOnly: true
+ required:
+ - id
type: object
+ x-akamai:
+ file-path: schemas/lke-version.yaml
+ x-example:
+ x-ref: ../examples/get-lke-version-200.json
+ description: >-
+ Returns an LKE Kubernetes version object available for deployment to
+ a standard tier Kubernetes cluster.
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/servicetoken
- - lang: CLI
- source: |
- linode-cli lke service-token-delete 12345
- parameters:
- - name: clusterId
- in: path
- description: ID of the target Kubernetes cluster.
- required: true
- schema:
- type: integer
- /lke/versions:
- get:
- operationId: getLKEVersions
- x-linode-cli-action: versions-list
- x-linode-grant: read_only
- 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.
- responses:
- '200':
- description: |
- Returns a list of Kubernetes versions available for deployment to a Kubernetes cluster.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
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'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/lke/versions
- - lang: CLI
- source: |
- linode-cli lke versions-list
- '/lke/versions/{version}':
- get:
- operationId: getLKEVersion
- x-linode-cli-action: version-view
- x-linode-grant: read_only
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'lke:read_only'
+ - lke:read_only
+ summary: Get an LKE Kubernetes version (non-enterprise)
tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubernetes Version View
- description: |
- View a Kubernetes version available for deployment to a Kubernetes cluster.
- responses:
- '200':
- description: |
- Returns a Kubernetes version object that is available for deployment to a Kubernetes cluster.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/LKEVersion'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/lke/versions/1.25
- - lang: CLI
- source: |
- linode-cli lke version-view 1.25
- parameters:
- - name: version
- in: path
- required: true
- description: The LKE version to view.
- schema:
- type: string
+ - LKE versions
+ x-akamai:
+ tabs:
+ - syntax: linode-cli lke version-view 1.31
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: lke:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: version-view
+ x-linode-grant: read_only
+ parameters:
+ - description: The LKE version to view.
+ example: '{{version}}'
+ in: path
+ name: version
+ required: true
+ schema:
+ example: '1.32'
+ type: string
+ x-akamai:
+ file-path: parameters/version-path.yaml
+ x-akamai:
+ file-path: paths/version.yaml
+ path-info: /{apiVersion}/lke/versions/{version}
+ x-linode-cli-command: lke
+components:
+ x-stackQL-resources:
+ clusters:
+ id: linode.lke.clusters
+ name: clusters
+ title: Clusters
+ methods:
+ post_lke_cluster:
+ operation:
+ $ref: '#/paths/~1lke~1clusters/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_lke_clusters:
+ operation:
+ $ref: '#/paths/~1lke~1clusters/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_lke_cluster:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_lke_cluster:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_lke_cluster:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_lke_cluster_recycle:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1recycle/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_lke_cluster_regenerate:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1regenerate/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_lke_service_token:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1servicetoken/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/clusters/methods/get_lke_cluster'
+ - $ref: '#/components/x-stackQL-resources/clusters/methods/get_lke_clusters'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/clusters/methods/post_lke_cluster'
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/clusters/methods/delete_lke_cluster
+ replace:
+ - $ref: '#/components/x-stackQL-resources/clusters/methods/put_lke_cluster'
+ api_endpoints:
+ id: linode.lke.api_endpoints
+ name: api_endpoints
+ title: Api Endpoints
+ methods:
+ get_lke_cluster_api_endpoints:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1api-endpoints/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/api_endpoints/methods/get_lke_cluster_api_endpoints
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ control_plane_acl:
+ id: linode.lke.control_plane_acl
+ name: control_plane_acl
+ title: Control Plane Acl
+ methods:
+ get_lke_cluster_acl:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1control_plane_acl/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.acl
+ put_lke_cluster_acl:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1control_plane_acl/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_lke_cluster_acl:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1control_plane_acl/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/control_plane_acl/methods/get_lke_cluster_acl
+ insert: []
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/control_plane_acl/methods/delete_lke_cluster_acl
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/control_plane_acl/methods/put_lke_cluster_acl
+ cluster_dashboard:
+ id: linode.lke.cluster_dashboard
+ name: cluster_dashboard
+ title: Cluster Dashboard
+ methods:
+ get_lke_cluster_dashboard:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1dashboard/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/cluster_dashboard/methods/get_lke_cluster_dashboard
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ kubeconfigs:
+ id: linode.lke.kubeconfigs
+ name: kubeconfigs
+ title: Kubeconfigs
+ methods:
+ get_lke_cluster_kubeconfig:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1kubeconfig/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_lke_cluster_kubeconfig:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1kubeconfig/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/kubeconfigs/methods/get_lke_cluster_kubeconfig
+ insert: []
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/kubeconfigs/methods/delete_lke_cluster_kubeconfig
+ replace: []
+ nodes:
+ id: linode.lke.nodes
+ name: nodes
+ title: Nodes
+ methods:
+ get_lke_cluster_node:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1nodes~1{nodeId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_lke_cluster_node:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1nodes~1{nodeId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_lke_cluster_node_recycle:
+ operation:
+ $ref: >-
+ #/paths/~1lke~1clusters~1{clusterId}~1nodes~1{nodeId}~1recycle/post
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/nodes/methods/get_lke_cluster_node
+ insert: []
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/nodes/methods/delete_lke_cluster_node
+ replace: []
+ node_pools:
+ id: linode.lke.node_pools
+ name: node_pools
+ title: Node Pools
+ methods:
+ post_lke_cluster_pools:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1pools/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_lke_cluster_pools:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1pools/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_lke_node_pool:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1pools~1{poolId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_lke_node_pool:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1pools~1{poolId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_lke_node_pool:
+ operation:
+ $ref: '#/paths/~1lke~1clusters~1{clusterId}~1pools~1{poolId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_lke_cluster_pool_recycle:
+ operation:
+ $ref: >-
+ #/paths/~1lke~1clusters~1{clusterId}~1pools~1{poolId}~1recycle/post
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/node_pools/methods/get_lke_node_pool
+ - $ref: >-
+ #/components/x-stackQL-resources/node_pools/methods/get_lke_cluster_pools
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/node_pools/methods/post_lke_cluster_pools
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/node_pools/methods/delete_lke_node_pool
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/node_pools/methods/put_lke_node_pool
+ versions:
+ id: linode.lke.versions
+ name: versions
+ title: Versions
+ methods:
+ get_lke_tiers_versions:
+ operation:
+ $ref: '#/paths/~1lke~1tiers~1{tier}~1versions/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_lke_tiers_version:
+ operation:
+ $ref: '#/paths/~1lke~1tiers~1{tier}~1versions~1{version}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/versions/methods/get_lke_tiers_version
+ - $ref: >-
+ #/components/x-stackQL-resources/versions/methods/get_lke_tiers_versions
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ types:
+ id: linode.lke.types
+ name: types
+ title: Types
+ methods:
+ get_lke_types:
+ operation:
+ $ref: '#/paths/~1lke~1types/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/types/methods/get_lke_types'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ non_enterprise_versions:
+ id: linode.lke.non_enterprise_versions
+ name: non_enterprise_versions
+ title: Non Enterprise Versions
+ methods:
+ get_lke_versions:
+ operation:
+ $ref: '#/paths/~1lke~1versions/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_lke_version:
+ operation:
+ $ref: '#/paths/~1lke~1versions~1{version}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/non_enterprise_versions/methods/get_lke_version
+ - $ref: >-
+ #/components/x-stackQL-resources/non_enterprise_versions/methods/get_lke_versions
+ insert: []
+ update: []
+ delete: []
+ replace: []
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/longview.yaml b/providers/src/linode/v00.00.00000/services/longview.yaml
index a89525f1..d9a0ac5e 100644
--- a/providers/src/linode/v00.00.00000/services/longview.yaml
+++ b/providers/src/linode/v00.00.00000/services/longview.yaml
@@ -1,408 +1,2037 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
info:
- version: 4.147.0
- title: Linode API - longview
- description: longview
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
+ title: longview API
+ description: linode longview API
+ version: 4.208.1
+paths:
+ /longview/clients:
+ post:
+ 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`.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-longview-client
+ operationId: post-longview-client
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A LongviewClient is a single monitor set up to track statistics
+ about one of your servers.
+ properties:
+ api_key:
+ description: >-
+ __Read-only__ The API key for this Client, used when
+ configuring the Longview Client application on your Linode.
+
+
+ Returns as `[REDACTED]` if you do not have read-write access
+ to this client.
+ example: '{{api_key}}'
+ readOnly: true
+ type: string
+ apps:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The apps this Client is monitoring on your
+ Linode. This is configured when you install the Longview
+ Client application, and is present here for information
+ purposes only.
+ properties:
+ apache:
+ description: >-
+ __Read-only__ If `true`, the Apache Longview Client
+ module is monitoring Apache on your server.
+ example: true
+ readOnly: true
+ type: boolean
+ mysql:
+ description: >-
+ __Read-only__ If `true`, the MySQL Longview Client
+ modules is monitoring MySQL on your server.
+ example: true
+ readOnly: true
+ type: boolean
+ nginx:
+ description: >-
+ __Read-only__ If `true`, the Nginx Longview Client
+ module is monitoring Nginx on your server.
+ example: false
+ readOnly: true
+ type: boolean
+ readOnly: true
+ type: object
+ created:
+ description: __Read-only__ When this Longview Client was created.
+ example: '{{created}}'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ This Client's unique ID.
+ example: '{{id}}'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ install_code:
+ description: >-
+ __Read-only__ The install code for this Client, used when
+ configuring the Longview Client application on your Linode.
+
+
+ Returns as `[REDACTED]` if you do not have read-write access
+ to this client.
+ example: '{{install_code}}'
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ label:
+ description: >-
+ __Filterable__ This Client's unique label. This is for
+ display purposes only.
+ example: '{{label}}'
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_]{3,32}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Longview Client was last updated.
+ example: '{{updated}}'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/longview-client.yaml
+ x-example:
+ x-ref: ../examples/post-longview-client.json
+ description: Information about the LongviewClient to create.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A LongviewClient is a single monitor set up to track
+ statistics about one of your servers.
+ properties:
+ api_key:
+ description: >-
+ __Read-only__ The API key for this Client, used when
+ configuring the Longview Client application on your
+ Linode.
+
+
+ Returns as `[REDACTED]` if you do not have read-write
+ access to this client.
+ example: BD1B4B54-D752-A76D-5A9BD8A17F39DB61
+ readOnly: true
+ type: string
+ apps:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The apps this Client is monitoring on your
+ Linode. This is configured when you install the Longview
+ Client application, and is present here for information
+ purposes only.
+ properties:
+ apache:
+ description: >-
+ __Read-only__ If `true`, the Apache Longview Client
+ module is monitoring Apache on your server.
+ example: true
+ readOnly: true
+ type: boolean
+ mysql:
+ description: >-
+ __Read-only__ If `true`, the MySQL Longview Client
+ modules is monitoring MySQL on your server.
+ example: true
+ readOnly: true
+ type: boolean
+ nginx:
+ description: >-
+ __Read-only__ If `true`, the Nginx Longview Client
+ module is monitoring Nginx on your server.
+ example: false
+ readOnly: true
+ type: boolean
+ readOnly: true
+ type: object
+ created:
+ description: __Read-only__ When this Longview Client was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ This Client's unique ID.
+ example: 789
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ install_code:
+ description: >-
+ __Read-only__ The install code for this Client, used when
+ configuring the Longview Client application on your
+ Linode.
+
+
+ Returns as `[REDACTED]` if you do not have read-write
+ access to this client.
+ example: BD1B5605-BF5E-D385-BA07AD518BE7F321
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ label:
+ description: >-
+ __Filterable__ This Client's unique label. This is for
+ display purposes only.
+ example: client789
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_]{3,32}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Longview Client was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/longview-client.yaml
+ x-example:
+ x-ref: ../examples/post-longview-client-200.json
+ description: Longview Client created successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - longview:read_write
+ summary: Create a Longview client
+ tags:
+ - Clients
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli longview create \
+ --label client789
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: longview:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: create
+ x-linode-grant: add_longview
+ get:
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-longview-clients
+ operationId: get-longview-clients
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ A LongviewClient is a single monitor set up to track
+ statistics about one of your servers.
+ properties:
+ api_key:
+ description: >-
+ __Read-only__ The API key for this Client, used when
+ configuring the Longview Client application on your
+ Linode.
+
+
+ Returns as `[REDACTED]` if you do not have
+ read-write access to this client.
+ example: BD1B4B54-D752-A76D-5A9BD8A17F39DB61
+ readOnly: true
+ type: string
+ apps:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The apps this Client is monitoring on
+ your Linode. This is configured when you install the
+ Longview Client application, and is present here for
+ information purposes only.
+ properties:
+ apache:
+ description: >-
+ __Read-only__ If `true`, the Apache Longview
+ Client module is monitoring Apache on your
+ server.
+ example: true
+ readOnly: true
+ type: boolean
+ mysql:
+ description: >-
+ __Read-only__ If `true`, the MySQL Longview
+ Client modules is monitoring MySQL on your
+ server.
+ example: true
+ readOnly: true
+ type: boolean
+ nginx:
+ description: >-
+ __Read-only__ If `true`, the Nginx Longview
+ Client module is monitoring Nginx on your
+ server.
+ example: false
+ readOnly: true
+ type: boolean
+ readOnly: true
+ type: object
+ created:
+ description: __Read-only__ When this Longview Client was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ This Client's unique ID.
+ example: 789
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ install_code:
+ description: >-
+ __Read-only__ The install code for this Client, used
+ when configuring the Longview Client application on
+ your Linode.
+
+
+ Returns as `[REDACTED]` if you do not have
+ read-write access to this client.
+ example: BD1B5605-BF5E-D385-BA07AD518BE7F321
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ label:
+ description: >-
+ __Filterable__ This Client's unique label. This is
+ for display purposes only.
+ example: client789
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_]{3,32}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Read-only__ When this Longview Client was last
+ updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/longview-client.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-longview-clients-200.yaml
+ x-example:
+ x-ref: ../examples/get-longview-clients-200.json
+ description: A paginated list of Longview Clients.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - longview:read_only
+ summary: List Longview clients
+ tags:
+ - Clients
+ x-akamai:
+ tabs:
+ - syntax: linode-cli longview list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: longview:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/longview-clients.yaml
+ path-info: /{apiVersion}/longview/clients
+ x-linode-cli-command: longview
+ /longview/clients/{clientId}:
+ get:
+ description: >-
+ Returns a single Longview Client you can access.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-longview-client
+ operationId: get-longview-client
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A LongviewClient is a single monitor set up to track
+ statistics about one of your servers.
+ properties:
+ api_key:
+ description: >-
+ __Read-only__ The API key for this Client, used when
+ configuring the Longview Client application on your
+ Linode.
+
+
+ Returns as `[REDACTED]` if you do not have read-write
+ access to this client.
+ example: BD1B4B54-D752-A76D-5A9BD8A17F39DB61
+ readOnly: true
+ type: string
+ apps:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The apps this Client is monitoring on your
+ Linode. This is configured when you install the Longview
+ Client application, and is present here for information
+ purposes only.
+ properties:
+ apache:
+ description: >-
+ __Read-only__ If `true`, the Apache Longview Client
+ module is monitoring Apache on your server.
+ example: true
+ readOnly: true
+ type: boolean
+ mysql:
+ description: >-
+ __Read-only__ If `true`, the MySQL Longview Client
+ modules is monitoring MySQL on your server.
+ example: true
+ readOnly: true
+ type: boolean
+ nginx:
+ description: >-
+ __Read-only__ If `true`, the Nginx Longview Client
+ module is monitoring Nginx on your server.
+ example: false
+ readOnly: true
+ type: boolean
+ readOnly: true
+ type: object
+ created:
+ description: __Read-only__ When this Longview Client was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ This Client's unique ID.
+ example: 789
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ install_code:
+ description: >-
+ __Read-only__ The install code for this Client, used when
+ configuring the Longview Client application on your
+ Linode.
+
+
+ Returns as `[REDACTED]` if you do not have read-write
+ access to this client.
+ example: BD1B5605-BF5E-D385-BA07AD518BE7F321
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ label:
+ description: >-
+ __Filterable__ This Client's unique label. This is for
+ display purposes only.
+ example: client789
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_]{3,32}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Longview Client was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/longview-client.yaml
+ x-example:
+ x-ref: ../examples/get-longview-client-200.json
+ description: The requested Longview Client.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - longview:read_only
+ summary: Get a Longview client
+ tags:
+ - Clients
+ x-akamai:
+ tabs:
+ - syntax: linode-cli longview view 789
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: longview:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ x-linode-grant: read_only
+ put:
+ description: >-
+ Updates a Longview Client. This cannot update how it monitors your
+ server; use the Longview Client application on your Linode for
+ monitoring configuration.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-longview-client
+ operationId: put-longview-client
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A LongviewClient is a single monitor set up to track statistics
+ about one of your servers.
+ properties:
+ api_key:
+ description: >-
+ __Read-only__ The API key for this Client, used when
+ configuring the Longview Client application on your Linode.
+
+
+ Returns as `[REDACTED]` if you do not have read-write access
+ to this client.
+ example: '{{api_key}}'
+ readOnly: true
+ type: string
+ apps:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The apps this Client is monitoring on your
+ Linode. This is configured when you install the Longview
+ Client application, and is present here for information
+ purposes only.
+ properties:
+ apache:
+ description: >-
+ __Read-only__ If `true`, the Apache Longview Client
+ module is monitoring Apache on your server.
+ example: true
+ readOnly: true
+ type: boolean
+ mysql:
+ description: >-
+ __Read-only__ If `true`, the MySQL Longview Client
+ modules is monitoring MySQL on your server.
+ example: true
+ readOnly: true
+ type: boolean
+ nginx:
+ description: >-
+ __Read-only__ If `true`, the Nginx Longview Client
+ module is monitoring Nginx on your server.
+ example: false
+ readOnly: true
+ type: boolean
+ readOnly: true
+ type: object
+ created:
+ description: __Read-only__ When this Longview Client was created.
+ example: '{{created}}'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ This Client's unique ID.
+ example: '{{id}}'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ install_code:
+ description: >-
+ __Read-only__ The install code for this Client, used when
+ configuring the Longview Client application on your Linode.
+
+
+ Returns as `[REDACTED]` if you do not have read-write access
+ to this client.
+ example: '{{install_code}}'
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ label:
+ description: >-
+ __Filterable__ This Client's unique label. This is for
+ display purposes only.
+ example: '{{label}}'
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_]{3,32}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Longview Client was last updated.
+ example: '{{updated}}'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/longview-client.yaml
+ x-example:
+ x-ref: ../examples/put-longview-client.json
+ description: The fields to update.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A LongviewClient is a single monitor set up to track
+ statistics about one of your servers.
+ properties:
+ api_key:
+ description: >-
+ __Read-only__ The API key for this Client, used when
+ configuring the Longview Client application on your
+ Linode.
+
+
+ Returns as `[REDACTED]` if you do not have read-write
+ access to this client.
+ example: BD1B4B54-D752-A76D-5A9BD8A17F39DB61
+ readOnly: true
+ type: string
+ apps:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The apps this Client is monitoring on your
+ Linode. This is configured when you install the Longview
+ Client application, and is present here for information
+ purposes only.
+ properties:
+ apache:
+ description: >-
+ __Read-only__ If `true`, the Apache Longview Client
+ module is monitoring Apache on your server.
+ example: true
+ readOnly: true
+ type: boolean
+ mysql:
+ description: >-
+ __Read-only__ If `true`, the MySQL Longview Client
+ modules is monitoring MySQL on your server.
+ example: true
+ readOnly: true
+ type: boolean
+ nginx:
+ description: >-
+ __Read-only__ If `true`, the Nginx Longview Client
+ module is monitoring Nginx on your server.
+ example: false
+ readOnly: true
+ type: boolean
+ readOnly: true
+ type: object
+ created:
+ description: __Read-only__ When this Longview Client was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ This Client's unique ID.
+ example: 789
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ install_code:
+ description: >-
+ __Read-only__ The install code for this Client, used when
+ configuring the Longview Client application on your
+ Linode.
+
+
+ Returns as `[REDACTED]` if you do not have read-write
+ access to this client.
+ example: BD1B5605-BF5E-D385-BA07AD518BE7F321
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ label:
+ description: >-
+ __Filterable__ This Client's unique label. This is for
+ display purposes only.
+ example: client789
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_]{3,32}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this Longview Client was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/longview-client.yaml
+ x-example:
+ x-ref: ../examples/get-longview-client-200.json
+ description: Longview Client updated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - longview:read_write
+ summary: Update a Longview client
+ tags:
+ - Clients
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli longview update 789 \
+ --label client789
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: longview:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update
+ x-linode-grant: read_write
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-longview-client
+ operationId: delete-longview-client
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-longview-client-200.json
+ description: Longview Client deleted successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - longview:read_write
+ summary: Delete a Longview client
+ tags:
+ - Clients
+ x-akamai:
+ tabs:
+ - syntax: linode-cli longview delete 789
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: longview:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - delete
+ - rm
+ x-linode-grant: read_write
+ parameters:
+ - description: The Longview Client ID to access.
+ example: '{{clientId}}'
+ in: path
+ name: clientId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/client-id-path-0c50f505.yaml
+ x-akamai:
+ file-path: paths/longview-client.yaml
+ path-info: /{apiVersion}/longview/clients/{clientId}
+ x-linode-cli-command: longview
+ /longview/plan:
+ get:
+ 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` [List a user's
+ grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ in order to run this operation:
+
+ - `"account_access": read_write`
+ - `"account_access": read_only`
+ - `"longview_subscription": true`
+ - `"add_longview": true`
+
+ To update your subscription plan, send a request to [Update a Longview
+ plan](https://techdocs.akamai.com/linode-api/reference/put-longview-plan).
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-longview-plan
+ operationId: get-longview-plan
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A Longview Subscription represents a tier of Longview service
+ you can subscribe to.
+ properties:
+ clients_included:
+ description: >-
+ __Read-only__ The number of Longview Clients that may be
+ created with this Subscription tier.
+ example: 10
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ The unique ID of this Subscription tier.
+ enum:
+ - longview-3
+ - longview-10
+ - longview-40
+ - longview-100
+ example: longview-10
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: __Read-only__ A display name for this Subscription tier.
+ example: Longview Pro 10 pack
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ price:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Pricing information about this Subscription
+ tier.
+ properties:
+ hourly:
+ description: >-
+ __Read-only__ The hourly price, in US dollars, for
+ this Subscription tier.
+ example: 0.06
+ readOnly: true
+ type: number
+ monthly:
+ description: >-
+ __Read-only__ The maximum monthly price in US Dollars
+ for this Subscription tier. You will never be charged
+ more than this amount per month for this subscription.
+ example: 40
+ readOnly: true
+ type: number
+ readOnly: true
+ type: object
+ x-linode-cli-display: 4
+ type: object
+ x-akamai:
+ file-path: schemas/longview-subscription.yaml
+ x-example:
+ x-ref: ../examples/get-longview-plan-200.json
+ description: The Longview plan details for this account.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - longview:read_only
+ summary: Get a Longview plan
+ tags:
+ - Plans
+ x-akamai:
+ tabs:
+ - syntax: linode-cli longview plan-view
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: longview:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: plan-view
+ put:
+ description: >-
+ Update your Longview plan to that of the given subscription ID. This
+ returns a `LongviewSubscription` object for the updated Longview Pro
+ plan, or an empty set `{}` if the updated plan is Longview Free.
+
+
+ You must have `"longview_subscription": true` configured as a `global`
+ [user
+ grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ in order to run this operation.
+
+
+ You can send a request to the [List Longview
+ subscriptions](https://techdocs.akamai.com/linode-api/reference/get-longview-subscriptions)
+ operation to receive the details, including `id`'s, of each plan.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-longview-plan
+ operationId: put-longview-plan
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Longview Plan object.
+ properties:
+ longview_subscription:
+ description: >-
+ The subscription ID for a particular Longview plan. A value
+ of `null` corresponds to Longview Free. You can send a
+ request to the [List Longview
+ subscriptions](https://techdocs.akamai.com/linode-api/reference/get-longview-subscriptions)
+ operation to receive the details of each plan.
+ enum:
+ - longview-3
+ - longview-10
+ - longview-40
+ - longview-100
+ example: '{{longview_subscription}}'
+ nullable: true
+ type: string
+ x-linode-cli-display: 1
+ type: object
+ x-akamai:
+ file-path: schemas/longview-plan.yaml
+ x-example:
+ x-ref: ../examples/put-longview-plan.json
+ description: Update your Longview subscription plan.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A Longview Subscription represents a tier of Longview service
+ you can subscribe to.
+ properties:
+ clients_included:
+ description: >-
+ __Read-only__ The number of Longview Clients that may be
+ created with this Subscription tier.
+ example: 10
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ The unique ID of this Subscription tier.
+ enum:
+ - longview-3
+ - longview-10
+ - longview-40
+ - longview-100
+ example: longview-10
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: __Read-only__ A display name for this Subscription tier.
+ example: Longview Pro 10 pack
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ price:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Pricing information about this Subscription
+ tier.
+ properties:
+ hourly:
+ description: >-
+ __Read-only__ The hourly price, in US dollars, for
+ this Subscription tier.
+ example: 0.06
+ readOnly: true
+ type: number
+ monthly:
+ description: >-
+ __Read-only__ The maximum monthly price in US Dollars
+ for this Subscription tier. You will never be charged
+ more than this amount per month for this subscription.
+ example: 40
+ readOnly: true
+ type: number
+ readOnly: true
+ type: object
+ x-linode-cli-display: 4
+ type: object
+ x-akamai:
+ file-path: schemas/longview-subscription.yaml
+ x-example:
+ x-ref: ../examples/get-longview-plan-200.json
+ description: The updated Longview plan details for this account.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - longview:read_write
+ summary: Update a Longview plan
+ tags:
+ - Plans
+ x-akamai:
+ tabs:
+ - syntax: >-
+ linode-cli longview plan-update --longview_subscription
+ longview-10
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: longview:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: plan-update
+ parameters: []
+ x-akamai:
+ file-path: paths/plan.yaml
+ path-info: /{apiVersion}/longview/plan
+ x-linode-cli-command: longview
+ /longview/subscriptions:
+ get:
+ description: >-
+ Returns a paginated list of available Longview Subscriptions. This is a
+ public endpoint and requires no authentication.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-longview-subscriptions
+ operationId: get-longview-subscriptions
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ A Longview Subscription represents a tier of Longview
+ service you can subscribe to.
+ properties:
+ clients_included:
+ description: >-
+ __Read-only__ The number of Longview Clients that
+ may be created with this Subscription tier.
+ example: 10
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 3
+ id:
+ description: >-
+ __Read-only__ The unique ID of this Subscription
+ tier.
+ enum:
+ - longview-3
+ - longview-10
+ - longview-40
+ - longview-100
+ example: longview-10
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Read-only__ A display name for this Subscription
+ tier.
+ example: Longview Pro 10 pack
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ price:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Pricing information about this
+ Subscription tier.
+ properties:
+ hourly:
+ description: >-
+ __Read-only__ The hourly price, in US dollars,
+ for this Subscription tier.
+ example: 0.06
+ readOnly: true
+ type: number
+ monthly:
+ description: >-
+ __Read-only__ The maximum monthly price in US
+ Dollars for this Subscription tier. You will
+ never be charged more than this amount per month
+ for this subscription.
+ example: 40
+ readOnly: true
+ type: number
+ readOnly: true
+ type: object
+ x-linode-cli-display: 4
+ type: object
+ x-akamai:
+ file-path: schemas/longview-subscription.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-longview-subscriptions-200.yaml
+ x-example:
+ x-ref: ../examples/get-longview-subscriptions-200.json
+ description: A paginated list of Longview Subscriptions.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: List Longview subscriptions
+ tags:
+ - Subscriptions
+ x-akamai:
+ tabs:
+ - syntax: linode-cli longview subscriptions-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: subscriptions-list
+ parameters: []
+ x-akamai:
+ file-path: paths/subscriptions.yaml
+ path-info: /{apiVersion}/longview/subscriptions
+ x-linode-cli-command: longview
+ /longview/subscriptions/{subscriptionId}:
+ get:
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-longview-subscription
+ operationId: get-longview-subscription
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A Longview Subscription represents a tier of Longview service
+ you can subscribe to.
+ properties:
+ clients_included:
+ description: >-
+ __Read-only__ The number of Longview Clients that may be
+ created with this Subscription tier.
+ example: 10
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ The unique ID of this Subscription tier.
+ enum:
+ - longview-3
+ - longview-10
+ - longview-40
+ - longview-100
+ example: longview-10
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: __Read-only__ A display name for this Subscription tier.
+ example: Longview Pro 10 pack
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ price:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Pricing information about this Subscription
+ tier.
+ properties:
+ hourly:
+ description: >-
+ __Read-only__ The hourly price, in US dollars, for
+ this Subscription tier.
+ example: 0.06
+ readOnly: true
+ type: number
+ monthly:
+ description: >-
+ __Read-only__ The maximum monthly price in US Dollars
+ for this Subscription tier. You will never be charged
+ more than this amount per month for this subscription.
+ example: 40
+ readOnly: true
+ type: number
+ readOnly: true
+ type: object
+ x-linode-cli-display: 4
+ type: object
+ x-akamai:
+ file-path: schemas/longview-subscription.yaml
+ x-example:
+ x-ref: ../examples/get-longview-subscription-200.json
+ description: The requested Longview Subscription details.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: Get a Longview subscription
+ tags:
+ - Subscriptions
+ x-akamai:
+ tabs:
+ - syntax: linode-cli longview subscription-view
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: subscription-view
+ parameters:
+ - description: The Longview Subscription to look up.
+ example: '{{subscriptionId}}'
+ in: path
+ name: subscriptionId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/subscription-id-path.yaml
+ x-akamai:
+ file-path: paths/subscription.yaml
+ path-info: /{apiVersion}/longview/subscriptions/{subscriptionId}
+ x-linode-cli-command: longview
+ /longview/types:
+ get:
+ description: >-
+ Returns Longview types and prices, including any region-specific rates.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-longview-types
+ operationId: get-longview-types
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ description: The Longview types.
+ items:
+ additionalProperties: false
+ description: >-
+ Returns collection of Longview types and prices,
+ including any region-specific rates.
+ properties:
+ id:
+ description: __Read-only__ The ID representing the Longview type.
+ example: longview-3
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__, __Read-only__ The Longview type
+ label is for display purposes only.
+ example: Longview Pro 3 pack
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ price:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The default cost of this Longview
+ type. Prices are in US dollars, broken down into
+ hourly and monthly charges.
+
+
+ Certain regions have different prices from the
+ default. For region-specific prices, see
+ `region_prices`.
+ properties:
+ hourly:
+ description: __Filterable__ Cost (in US dollars) per hour.
+ example: 0.0015
+ type: number
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ monthly:
+ description: __Filterable__ Cost per month, in US dollars.
+ example: 0.1
+ type: number
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ readOnly: true
+ type: object
+ region_prices:
+ items:
+ additionalProperties: false
+ properties:
+ hourly:
+ description: Cost per hour for this region, in US dollars.
+ example: 0.00018
+ type: number
+ x-linode-cli-display: 6
+ id:
+ description: The Region ID for these prices.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ monthly:
+ description: Cost per month for this region, in US dollars.
+ example: 0.12
+ type: number
+ x-linode-cli-display: 7
+ type: object
+ type: array
+ transfer:
+ description: >-
+ __Filterable__, __Read-only__ The monthly outbound
+ transfer amount, in MB.
+ example: 0
+ minimum: 0
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/longview-type.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/get-longview-types-200.yaml
+ x-example:
+ x-ref: ../examples/get-longview-types-200.json
+ description: A collection of Longview types.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: List Longview types
+ tags:
+ - Longview types
+ x-akamai:
+ tabs:
+ - syntax: linode-cli longview types
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: types
+ x-linode-redoc-load-ids: true
+ parameters: []
+ x-akamai:
+ file-path: paths/longview-types.yaml
+ path-info: /{apiVersion}/longview/types
+ x-linode-cli-command: longview
components:
- schemas:
- LongviewClient:
- type: object
- description: |
- A LongviewClient is a single monitor set up to track statistics about one of your servers.
- properties:
- id:
- type: integer
- description: |
- This Client's unique ID.
- example: 789
- readOnly: true
- x-linode-cli-display: 1
- label:
- x-linode-filterable: true
- type: string
- minLength: 3
- maxLength: 32
- pattern: '[a-zA-Z0-9-_]{3,32}'
- description: |
- This Client's unique label. This is for display purposes only.
- example: client789
- x-linode-cli-display: 2
- api_key:
- type: string
- description: |
- The API key for this Client, used when configuring the Longview
- Client application on your Linode.
-
- Returns as `[REDACTED]` if you do not have read-write access to this client.
- example: BD1B4B54-D752-A76D-5A9BD8A17F39DB61
- readOnly: true
- install_code:
- type: string
- description: |
- The install code for this Client, used when configuring the Longview
- Client application on your Linode.
-
- Returns as `[REDACTED]` if you do not have read-write access to this client.
- example: BD1B5605-BF5E-D385-BA07AD518BE7F321
- readOnly: true
- x-linode-cli-display: 4
- apps:
- type: object
- description: |
- The apps this Client is monitoring on your Linode. This is configured when you install the Longview Client application, and is present here for information purposes only.
- readOnly: true
- properties:
- apache:
- type: boolean
- description: |
- If True, the Apache Longview Client module is monitoring Apache on your server.
- example: true
- readOnly: true
- nginx:
- type: boolean
- description: |
- If True, the Nginx Longview Client module is monitoring Nginx on your server.
- example: false
- readOnly: true
- mysql:
- type: boolean
- description: |
- If True, the MySQL Longview Client modules is monitoring MySQL on your server.
- example: true
- readOnly: true
- created:
- type: string
- format: date-time
- description: |
- When this Longview Client was created.
- example: 2018-01-01T00:01:01.000Z
- readOnly: true
- x-linode-cli-display: 3
- updated:
- type: string
- format: date-time
- description: |
- When this Longview Client was last updated.
- example: 2018-01-01T00:01:01.000Z
- readOnly: true
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- LongviewSubscription:
- type: object
- description: |
- A Longview Subscription represents a tier of Longview service you can subscribe to.
- properties:
- id:
- type: string
- enum:
- - longview-3
- - longview-10
- - longview-40
- - longview-100
- description: |
- The unique ID of this Subscription tier.
- example: longview-10
- readOnly: true
- x-linode-cli-display: 1
- price:
- type: object
- description: |
- Pricing information about this Subscription tier.
- readOnly: true
- x-linode-cli-display: 4
- properties:
- hourly:
- type: number
- description: |
- The hourly price, in US dollars, for this Subscription tier.
- example: 0.06
- readOnly: true
- monthly:
- type: number
- description: |
- The maximum monthly price in US Dollars for this Subscription tier. You will never be charged more than this amount per month for this subscription.
- example: 40
- readOnly: true
- label:
- type: string
- description: |
- A display name for this Subscription tier.
- example: Longview Pro 10 pack
- readOnly: true
- x-linode-cli-display: 2
- clients_included:
- type: integer
- description: |
- The number of Longview Clients that may be created with this Subscription tier.
- example: 10
- readOnly: true
- x-linode-cli-display: 3
- LongviewPlan:
- type: object
- description: |
- Longview Plan object.
- properties:
- longview_subscription:
- type: string
- enum:
- - longview-3
- - longview-10
- - longview-40
- - longview-100
- nullable: true
- description: |
- The subscription ID for a particular Longview plan. A value of `null` corresponds to Longview Free.
-
- You can send a request to the [List Longview Subscriptions](/docs/api/longview/#longview-subscriptions-list) endpoint to receive the details of each plan.
- example: longview-10
- x-linode-cli-display: 1
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
x-stackQL-resources:
clients:
id: linode.longview.clients
name: clients
title: Clients
methods:
- getLongviewClients:
- operation:
- $ref: '#/paths/~1longview~1clients/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getLongviewClients:
- operation:
- $ref: '#/paths/~1longview~1clients/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createLongviewClient:
+ post_longview_client:
operation:
$ref: '#/paths/~1longview~1clients/post'
response:
mediaType: application/json
openAPIDocKey: '200'
- getLongviewClient:
+ get_longview_clients:
operation:
- $ref: '#/paths/~1longview~1clients~1{clientId}/get'
+ $ref: '#/paths/~1longview~1clients/get'
response:
mediaType: application/json
openAPIDocKey: '200'
- objectKey: $.data
- _getLongviewClient:
+ get_longview_client:
operation:
$ref: '#/paths/~1longview~1clients~1{clientId}/get'
response:
mediaType: application/json
openAPIDocKey: '200'
- updateLongviewClient:
+ put_longview_client:
operation:
$ref: '#/paths/~1longview~1clients~1{clientId}/put'
response:
mediaType: application/json
openAPIDocKey: '200'
- deleteLongviewClient:
+ delete_longview_client:
operation:
$ref: '#/paths/~1longview~1clients~1{clientId}/delete'
response:
@@ -410,32 +2039,32 @@ components:
openAPIDocKey: '200'
sqlVerbs:
select:
- - $ref: '#/components/x-stackQL-resources/clients/methods/getLongviewClients'
- - $ref: '#/components/x-stackQL-resources/clients/methods/getLongviewClient'
+ - $ref: >-
+ #/components/x-stackQL-resources/clients/methods/get_longview_client
+ - $ref: >-
+ #/components/x-stackQL-resources/clients/methods/get_longview_clients
insert:
- - $ref: '#/components/x-stackQL-resources/clients/methods/createLongviewClient'
+ - $ref: >-
+ #/components/x-stackQL-resources/clients/methods/post_longview_client
update: []
delete:
- - $ref: '#/components/x-stackQL-resources/clients/methods/deleteLongviewClient'
- plan:
- id: linode.longview.plan
- name: plan
- title: Plan
+ - $ref: >-
+ #/components/x-stackQL-resources/clients/methods/delete_longview_client
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/clients/methods/put_longview_client
+ plans:
+ id: linode.longview.plans
+ name: plans
+ title: Plans
methods:
- getLongviewPlan:
- operation:
- $ref: '#/paths/~1longview~1plan/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getLongviewPlan:
+ get_longview_plan:
operation:
$ref: '#/paths/~1longview~1plan/get'
response:
mediaType: application/json
openAPIDocKey: '200'
- updateLongviewPlan:
+ put_longview_plan:
operation:
$ref: '#/paths/~1longview~1plan/put'
response:
@@ -443,424 +2072,56 @@ components:
openAPIDocKey: '200'
sqlVerbs:
select:
- - $ref: '#/components/x-stackQL-resources/plan/methods/getLongviewPlan'
+ - $ref: '#/components/x-stackQL-resources/plans/methods/get_longview_plan'
insert: []
update: []
delete: []
+ replace:
+ - $ref: '#/components/x-stackQL-resources/plans/methods/put_longview_plan'
subscriptions:
id: linode.longview.subscriptions
name: subscriptions
title: Subscriptions
methods:
- getLongviewSubscriptions:
+ get_longview_subscriptions:
operation:
$ref: '#/paths/~1longview~1subscriptions/get'
response:
mediaType: application/json
openAPIDocKey: '200'
- objectKey: $.data
- _getLongviewSubscriptions:
- operation:
- $ref: '#/paths/~1longview~1subscriptions/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getLongviewSubscription:
+ get_longview_subscription:
operation:
$ref: '#/paths/~1longview~1subscriptions~1{subscriptionId}/get'
response:
mediaType: application/json
openAPIDocKey: '200'
- objectKey: $.data
- _getLongviewSubscription:
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/subscriptions/methods/get_longview_subscription
+ - $ref: >-
+ #/components/x-stackQL-resources/subscriptions/methods/get_longview_subscriptions
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ types:
+ id: linode.longview.types
+ name: types
+ title: Types
+ methods:
+ get_longview_types:
operation:
- $ref: '#/paths/~1longview~1subscriptions~1{subscriptionId}/get'
+ $ref: '#/paths/~1longview~1types/get'
response:
mediaType: application/json
openAPIDocKey: '200'
sqlVerbs:
select:
- - $ref: '#/components/x-stackQL-resources/subscriptions/methods/getLongviewSubscriptions'
- - $ref: '#/components/x-stackQL-resources/subscriptions/methods/getLongviewSubscription'
+ - $ref: '#/components/x-stackQL-resources/types/methods/get_longview_types'
insert: []
update: []
delete: []
-paths:
- /longview/clients:
- get:
- x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- tags:
- - 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
- - ls
- security:
- - personalAccessToken: []
- - oauth:
- - 'longview:read_only'
- responses:
- '200':
- description: A paginated list of Longview Clients.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/LongviewClient'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/longview/clients
- - lang: CLI
- source: |
- linode-cli longview list
- post:
- x-linode-grant: add_longview
- tags:
- - Longview
- summary: 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'
- responses:
- '200':
- description: Longview Client created successfully.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/LongviewClient'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "label": "client789"
- }' \
- https://api.linode.com/v4/longview/clients
- - lang: CLI
- source: |
- linode-cli longview create \
- --label client789
- '/longview/clients/{clientId}':
- get:
- x-linode-grant: read_only
- tags:
- - Longview
- summary: Longview Client View
- description: |
- Returns a single Longview Client you can access.
- operationId: getLongviewClient
- x-linode-cli-action: view
- security:
- - personalAccessToken: []
- - oauth:
- - 'longview:read_only'
- responses:
- '200':
- description: The requested Longview Client.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/LongviewClient'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/longview/clients/789
- - lang: CLI
- source: |
- linode-cli longview view 789
- parameters:
- - name: clientId
- in: path
- required: true
- description: The Longview Client ID to access.
- schema:
- type: integer
- put:
- x-linode-grant: read_write
- tags:
- - 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:
- - 'longview:read_write'
- requestBody:
- description: The fields to update.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/LongviewClient'
- responses:
- '200':
- description: Longview Client updated successfully.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/LongviewClient'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "label": "client789"
- }' \
- https://api.linode.com/v4/longview/clients/789
- - lang: CLI
- source: |
- linode-cli longview update 789 \
- --label client789
- parameters:
- - name: clientId
- in: path
- required: true
- description: The Longview Client ID to access.
- schema:
- type: integer
- delete:
- x-linode-grant: read_write
- tags:
- - 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
- - rm
- security:
- - personalAccessToken: []
- - oauth:
- - 'longview:read_write'
- responses:
- '200':
- description: Longview Client deleted successfully.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/longview/clients/789
- - lang: CLI
- source: |
- linode-cli longview delete 789
- parameters:
- - name: clientId
- in: path
- required: true
- description: The Longview Client ID to access.
- schema:
- type: integer
- /longview/plan:
- get:
- 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`
-
-
- 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:
- - 'longview:read_only'
- responses:
- '200':
- description: The 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 "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/longview/plan
- - lang: CLI
- source: |
- linode-cli longview plan-view
- put:
- tags:
- - 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.
-
- You must have `"longview_subscription": true` configured as a `global` [User Grant](/docs/api/account/#users-grants-view) in order to access this endpoint.
-
- 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:
- - 'longview:read_write'
- requestBody:
- description: Update your Longview subscription plan.
- required: true
- content:
- 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:
- 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
- responses:
- '200':
- description: A paginated list of Longview Subscriptions.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/LongviewSubscription'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/longview/subscriptions
- - lang: CLI
- source: |
- linode-cli longview subscriptions-list
- '/longview/subscriptions/{subscriptionId}':
- get:
- tags:
- - 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: 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
- parameters:
- - name: subscriptionId
- in: path
- required: true
- description: The Longview Subscription to look up.
- schema:
- type: string
+ replace: []
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/managed.yaml b/providers/src/linode/v00.00.00000/services/managed.yaml
index cd9d9efb..2d386f8e 100644
--- a/providers/src/linode/v00.00.00000/services/managed.yaml
+++ b/providers/src/linode/v00.00.00000/services/managed.yaml
@@ -1,2153 +1,4758 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
info:
- version: 4.147.0
- title: Linode API - managed
- description: managed
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- ManagedContact:
- type: object
- description: |
- Information about someone Linode's special forces may contact in case an issue is detected with a manager service.
- properties:
- id:
- type: integer
- description: |
- This Contact's unique ID.
- example: 567
- readOnly: true
- x-linode-cli-display: 1
- name:
- type: string
- minLength: 2
- maxLength: 64
- pattern: '[a-zA-Z0-9-_ ]{2,64}'
- description: |
- The name of this Contact.
- example: John Doe
- x-linode-cli-display: 2
- email:
- type: string
- format: email
- description: |
- The address to email this Contact to alert them of issues.
- example: john.doe@example.org
- x-linode-cli-display: 3
- phone:
- type: object
- description: |
- Information about how to reach this Contact by phone.
- x-linode-cli-display: 4
- properties:
- primary:
- type: string
- nullable: true
- format: phone
- description: |
- This Contact's primary phone number.
- example: 123-456-7890
- secondary:
- type: string
- nullable: true
- format: phone
- description: |
- This Contact's secondary phone number.
- example: null
- group:
- x-linode-filterable: true
- nullable: true
- type: string
- minLength: 2
- maxLength: 50
- description: |
- A grouping for this Contact. This is for display purposes only.
- example: on-call
- x-linode-cli-display: 5
- updated:
- type: string
- format: date-time
- description: |
- When this Contact was last updated.
- example: '2018-01-01T00:01:01'
- readOnly: true
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- ManagedCredential:
- type: object
- description: |
- A securely-stored Credential that allows Linode's special forces to access a Managed server to respond to Issues.
- properties:
- id:
- type: integer
- description: |
- This Credential's unique ID.
- example: 9991
- readOnly: true
- x-linode-cli-display: 1
- label:
- type: string
- minLength: 2
- maxLength: 75
- pattern: '[a-zA-Z0-9-_ \.]{2,75}'
- description: |
- The unique label for this Credential. This is for display purposes only.
- example: prod-password-1
- x-linode-cli-display: 2
- last_decrypted:
- type: string
- format: date-time
- description: |
- The date this Credential was last decrypted by a member of Linode special forces.
- readOnly: true
- example: '2018-01-01T00:01:01'
- x-linode-cli-display: 3
- ManagedIssue:
- type: object
- description: |
- An Issue that was detected with a service Linode is managing.
- properties:
- id:
- type: integer
- description: |
- This Issue's unique ID.
- example: 823
- readOnly: true
- x-linode-cli-display: 1
- created:
- type: string
- format: date-time
- description: |
- When this Issue was created. Issues are created in response to issues detected with Managed Services, so this is also when the Issue was detected.
- example: '2018-01-01T00:01:01'
- readOnly: true
- x-linode-cli-display: 2
- services:
- type: array
- items:
- type: integer
- example: 654
- description: |
- An array of Managed Service IDs that were affected by this Issue.
- readOnly: true
- x-linode-cli-display: 3
- entity:
- type: object
- description: |
- The ticket this Managed Issue opened.
- readOnly: true
- x-linode-cli-display: 4
- properties:
- id:
- type: integer
- description: |
- This ticket's ID
- example: 98765
- readOnly: true
- type:
- type: string
- enum:
- - ticket
- description: |
- The type of entity this is. In this case, it is always a Ticket.
- example: ticket
- readOnly: true
- label:
- type: string
- description: |
- The summary for this Ticket.
- example: Managed Issue opened!
- readOnly: true
- url:
- type: string
- format: url
- description: |
- The relative URL where you can access this Ticket.
- example: /support/tickets/98765
- readOnly: true
- ManagedLinodeSettings:
- type: object
- description: |
- Settings for a specific Linode related to Managed Services. There is one ManagedLinodeSettings object for each Linode on your Account.
- properties:
- id:
- type: integer
- description: |
- The ID of the Linode these Settings are for.
- example: 123
- readOnly: true
- x-linode-cli-display: 1
- label:
- type: string
- description: |
- The label of the Linode these Settings are for.
- example: linode123
- readOnly: true
- x-linode-cli-display: 2
- group:
- deprecated: true
- type: string
- description: |
- The group of the Linode these Settings are for. This is for display purposes only.
- example: linodes
- readOnly: true
- x-linode-cli-display: 3
- ssh:
- type: object
- description: |
- The SSH settings for this Linode.
- x-linode-cli-display: 4
- properties:
- access:
- type: boolean
- description: |
- If true, Linode special forces may access this Linode over ssh to respond to Issues.
- example: true
- default: true
- user:
- type: string
- minLength: 0
- maxLength: 32
- 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: |
- The IP Linode special forces should use to access this Linode
- when responding to an Issue.
-
- By default, any of a Linode's IP addresses can be used for incident response access.
- example: 203.0.113.1
- default: any
- port:
- type: integer
- minimum: 1
- maximum: 65535
- description: |
- The port Linode special forces should use to access this Linode
- over ssh to respond to an Issue.
-
- The default `null` value corresponds to port 22.
- example: 22
- nullable: true
- default: null
- ManagedService:
- type: object
- description: |
- A service that Linode is monitoring as part of your Managed services. If issues are detected with this service, a ManagedIssue will be opened and, optionally, Linode special forces will attempt to resolve the Issue.
- properties:
- id:
- type: integer
- description: |
- This Service's unique ID.
- example: 9944
- readOnly: true
- x-linode-cli-display: 1
- status:
- type: string
- enum:
- - disabled
- - pending
- - ok
- - problem
- description: |
- The current status of this Service.
- example: ok
- readOnly: true
- x-linode-cli-display: 2
- x-linode-cli-color:
- ok: green
- disabled: red
- default_: yellow
- service_type:
- type: string
- enum:
- - url
- - tcp
- description: |
- How this Service is monitored.
- example: url
- x-linode-cli-display: 3
- label:
- type: string
- minLength: 3
- maxLength: 64
- pattern: '[a-zA-Z0-9-_ \.]{3,64}'
- description: |
- The label for this Service. This is for display purposes only.
- example: prod-1
- x-linode-cli-display: 4
- address:
- type: string
- format: url
- minLength: 3
- maxLength: 100
- description: |
- The URL at which this Service is monitored.
-
- URL parameters such as `?no-cache=1` are preserved.
-
- URL fragments/anchors such as `#monitor` are **not** preserved.
- example: 'https://example.org'
- x-linode-cli-display: 5
- timeout:
- type: integer
+ title: managed API
+ description: linode managed API
+ version: 4.208.1
+paths:
+ /managed/contacts:
+ post:
+ 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.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-managed-contact
+ operationId: post-managed-contact
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Information about someone Linode's special forces may contact
+ in case an issue is detected with a manager service.
+ properties:
+ email:
+ description: The address to email this Contact to alert them of
+ issues.
+ example: '{{email}}'
+ format: email
+ type: string
+ x-linode-cli-display: 3
+ group:
+ description: __Filterable__ A grouping for this Contact. This is
+ for display purposes only.
+ example: '{{group}}'
+ maxLength: 50
+ minLength: 2
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This Contact's unique ID.
+ example: '{{id}}'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ name:
+ description: The name of this Contact.
+ example: '{{name}}'
+ maxLength: 64
+ minLength: 2
+ pattern: '[a-zA-Z0-9-_ ]{2,64}'
+ type: string
+ x-linode-cli-display: 2
+ phone:
+ additionalProperties: false
+ description: Information about how to reach this Contact by phone.
+ properties:
+ primary:
+ description: This Contact's primary phone number.
+ example: 123-456-7890
+ format: phone
+ nullable: true
+ type: string
+ secondary:
+ description: This Contact's secondary phone number.
+ example: null
+ format: phone
+ nullable: true
+ type: string
+ type: object
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this Contact was last updated.
+ example: '{{updated}}'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/managed-contact.yaml
+ x-example:
+ x-ref: ../examples/post-managed-contact.json
+ description: Information about the contact to create.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Information about someone Linode's special forces may
+ contact in case an issue is detected with a manager service.
+ properties:
+ email:
+ description: The address to email this Contact to alert them of
+ issues.
+ example: john.doe@example.org
+ format: email
+ type: string
+ x-linode-cli-display: 3
+ group:
+ description: __Filterable__ A grouping for this Contact. This
+ is for display purposes only.
+ example: on-call
+ maxLength: 50
+ minLength: 2
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This Contact's unique ID.
+ example: 567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ name:
+ description: The name of this Contact.
+ example: John Doe
+ maxLength: 64
+ minLength: 2
+ pattern: '[a-zA-Z0-9-_ ]{2,64}'
+ type: string
+ x-linode-cli-display: 2
+ phone:
+ additionalProperties: false
+ description: Information about how to reach this Contact by phone.
+ properties:
+ primary:
+ description: This Contact's primary phone number.
+ example: 123-456-7890
+ format: phone
+ nullable: true
+ type: string
+ secondary:
+ description: This Contact's secondary phone number.
+ example: null
+ format: phone
+ nullable: true
+ type: string
+ type: object
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this Contact was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/managed-contact.yaml
+ x-example:
+ x-ref: ../examples/post-managed-contact-200.json
+ description: Contact created.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Create a managed contact
+ tags:
+ - Contacts
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli managed contact-create \\\n --name \"John Doe\" \\\n\
+ \ --email \"john.doe@example.org\" \\\n --phone.primary \"123-456-7890\""
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: contact-create
+ x-linode-grant: unrestricted only
+ get:
+ description: 'Returns a paginated list of Managed Contacts on your Account.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-managed-contacts
+ operationId: get-managed-contacts
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
minimum: 1
- maximum: 255
- description: |
- How long to wait, in seconds, for a response before considering the Service to be down.
- example: 30
- body:
- type: string
- nullable: true
- minLength: 0
- maxLength: 100
- description: |
- What to expect to find in the response body for the Service to be considered up.
- example: it worked
- consultation_group:
- type: string
- minLength: 0
- maxLength: 50
- description: |
- The group of ManagedContacts who should be notified or consulted with when an Issue is detected.
- example: on-call
- x-linode-cli-display: 6
- notes:
- type: string
- nullable: true
- description: |
- Any information relevant to the Service that Linode special forces should know when attempting to resolve Issues.
- example: The service name is my-cool-application
- region:
- type: string
- description: |
- The Region in which this Service is located. This is required if address is a private IP, and may not be set otherwise.
- example: null
- credentials:
- type: array
- items:
- type: integer
- example: 9991
- description: |
- An array of ManagedCredential IDs that should be used when attempting to resolve issues with this Service.
- created:
- type: string
- format: date-time
- description: When this Managed Service was created.
- example: '2018-01-01T00:01:01'
- readOnly: true
- updated:
- type: string
- format: date-time
- description: When this Managed Service was last updated.
- example: '2018-03-01T00:01:01'
- readOnly: true
- StatsDataAvailable:
- type: object
- description: |
- A collection of graph data returned for managed stats.
- properties:
- cpu:
- type: array
- description: CPU usage stats from the last 24 hours.
- items:
- $ref: '#/components/schemas/StatsData'
- disk:
- type: array
- description: Disk usage stats from the last 24 hours.
- items:
- $ref: '#/components/schemas/StatsData'
- swap:
- type: array
- description: Swap usage stats from the last 24 hours.
- items:
- $ref: '#/components/schemas/StatsData'
- net_in:
- type: array
- description: Inbound network traffic stats from the last 24 hours.
- items:
- $ref: '#/components/schemas/StatsData'
- net_out:
- type: array
- description: Outbound network traffic stats from the last 24 hours.
- items:
- $ref: '#/components/schemas/StatsData'
- StatsDataUnavailable:
- type: array
- readOnly: true
- description: |
- An array of error messages if managed stats are unavaliable.
- items:
- type: string
- example: Graphs are not yet available.
- StatsData:
- type: object
- description: |
- A stat data point.
- properties:
- x:
type: integer
- readOnly: true
- description: |
- A stats graph data point.
- example: 11513761600000
- 'y':
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
type: integer
- readOnly: true
- description: |
- A stats graph data point.
- example: 29.94
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: Information about someone Linode's special forces
+ may contact in case an issue is detected with a manager service.
+ properties:
+ email:
+ description: The address to email this Contact to alert
+ them of issues.
+ example: john.doe@example.org
+ format: email
+ type: string
+ x-linode-cli-display: 3
+ group:
+ description: __Filterable__ A grouping for this Contact.
+ This is for display purposes only.
+ example: on-call
+ maxLength: 50
+ minLength: 2
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This Contact's unique ID.
+ example: 567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ name:
+ description: The name of this Contact.
+ example: John Doe
+ maxLength: 64
+ minLength: 2
+ pattern: '[a-zA-Z0-9-_ ]{2,64}'
+ type: string
+ x-linode-cli-display: 2
+ phone:
+ additionalProperties: false
+ description: Information about how to reach this Contact
+ by phone.
+ properties:
+ primary:
+ description: This Contact's primary phone number.
+ example: 123-456-7890
+ format: phone
+ nullable: true
+ type: string
+ secondary:
+ description: This Contact's secondary phone number.
+ example: null
+ format: phone
+ nullable: true
+ type: string
+ type: object
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this Contact was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/managed-contact.yaml
+ type: array
+ page:
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-managed-contacts-200.yaml
+ x-example:
+ x-ref: ../examples/get-managed-contacts-200.json
+ description: A paginated list of ManagedContacts.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List managed contacts
+ tags:
+ - Contacts
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed contacts-list
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: contacts-list
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/contacts.yaml
+ path-info: /{apiVersion}/managed/contacts
+ x-linode-cli-command: managed
+ /managed/contacts/{contactId}:
+ get:
+ description: 'Returns a single Managed Contact.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-managed-contact
+ operationId: get-managed-contact
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Information about someone Linode's special forces may
+ contact in case an issue is detected with a manager service.
+ properties:
+ email:
+ description: The address to email this Contact to alert them of
+ issues.
+ example: john.doe@example.org
+ format: email
+ type: string
+ x-linode-cli-display: 3
+ group:
+ description: __Filterable__ A grouping for this Contact. This
+ is for display purposes only.
+ example: on-call
+ maxLength: 50
+ minLength: 2
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This Contact's unique ID.
+ example: 567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ name:
+ description: The name of this Contact.
+ example: John Doe
+ maxLength: 64
+ minLength: 2
+ pattern: '[a-zA-Z0-9-_ ]{2,64}'
+ type: string
+ x-linode-cli-display: 2
+ phone:
+ additionalProperties: false
+ description: Information about how to reach this Contact by phone.
+ properties:
+ primary:
+ description: This Contact's primary phone number.
+ example: 123-456-7890
+ format: phone
+ nullable: true
+ type: string
+ secondary:
+ description: This Contact's secondary phone number.
+ example: null
+ format: phone
+ nullable: true
+ type: string
+ type: object
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this Contact was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/managed-contact.yaml
+ x-example:
+ x-ref: ../examples/get-managed-contact-200.json
+ description: The requested Managed Contact.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Get a managed contact
+ tags:
+ - Contacts
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed contact-view 567
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: contact-view
+ x-linode-grant: unrestricted only
+ put:
+ description: 'Updates information about a Managed Contact. This operation can
+ only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-managed-contact
+ operationId: put-managed-contact
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Information about someone Linode's special forces may contact
+ in case an issue is detected with a manager service.
+ properties:
+ email:
+ description: The address to email this Contact to alert them of
+ issues.
+ example: '{{email}}'
+ format: email
+ type: string
+ x-linode-cli-display: 3
+ group:
+ description: __Filterable__ A grouping for this Contact. This is
+ for display purposes only.
+ example: '{{group}}'
+ maxLength: 50
+ minLength: 2
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This Contact's unique ID.
+ example: '{{id}}'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ name:
+ description: The name of this Contact.
+ example: '{{name}}'
+ maxLength: 64
+ minLength: 2
+ pattern: '[a-zA-Z0-9-_ ]{2,64}'
+ type: string
+ x-linode-cli-display: 2
+ phone:
+ additionalProperties: false
+ description: Information about how to reach this Contact by phone.
+ properties:
+ primary:
+ description: This Contact's primary phone number.
+ example: 123-456-7890
+ format: phone
+ nullable: true
+ type: string
+ secondary:
+ description: This Contact's secondary phone number.
+ example: null
+ format: phone
+ nullable: true
+ type: string
+ type: object
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this Contact was last updated.
+ example: '{{updated}}'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/managed-contact.yaml
+ x-example:
+ x-ref: ../examples/put-managed-contact.json
+ description: The fields to update.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Information about someone Linode's special forces may
+ contact in case an issue is detected with a manager service.
+ properties:
+ email:
+ description: The address to email this Contact to alert them of
+ issues.
+ example: john.doe@example.org
+ format: email
+ type: string
+ x-linode-cli-display: 3
+ group:
+ description: __Filterable__ A grouping for this Contact. This
+ is for display purposes only.
+ example: on-call
+ maxLength: 50
+ minLength: 2
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This Contact's unique ID.
+ example: 567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ name:
+ description: The name of this Contact.
+ example: John Doe
+ maxLength: 64
+ minLength: 2
+ pattern: '[a-zA-Z0-9-_ ]{2,64}'
+ type: string
+ x-linode-cli-display: 2
+ phone:
+ additionalProperties: false
+ description: Information about how to reach this Contact by phone.
+ properties:
+ primary:
+ description: This Contact's primary phone number.
+ example: 123-456-7890
+ format: phone
+ nullable: true
+ type: string
+ secondary:
+ description: This Contact's secondary phone number.
+ example: null
+ format: phone
+ nullable: true
+ type: string
+ type: object
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this Contact was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/managed-contact.yaml
+ x-example:
+ x-ref: ../examples/get-managed-contact-200.json
+ description: Contact updated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Update a managed contact
+ tags:
+ - Contacts
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli managed contact-update 567 \\\n --name \"John Doe\"\
+ \ \\\n --email \"john.doe@example.org\" \\\n --phone.primary \"123-456-7890\""
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: contact-update
+ x-linode-grant: unrestricted only
+ delete:
+ description: 'Deletes a Managed Contact.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-managed-contact
+ operationId: delete-managed-contact
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-managed-contact-200.json
+ description: Contact deleted successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Delete a managed contact
+ tags:
+ - Contacts
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed contact-delete 567
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: contact-delete
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The ID of the contact to access.
+ example: '{{contactId}}'
+ in: path
+ name: contactId
+ required: true
schema:
+ example: 174
type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- contacts:
- id: linode.managed.contacts
- name: contacts
- title: Contacts
- methods:
- getManagedContacts:
- operation:
- $ref: '#/paths/~1managed~1contacts/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getManagedContacts:
- operation:
- $ref: '#/paths/~1managed~1contacts/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createManagedContact:
- operation:
- $ref: '#/paths/~1managed~1contacts/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getManagedContact:
- operation:
- $ref: '#/paths/~1managed~1contacts~1{contactId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getManagedContact:
- operation:
- $ref: '#/paths/~1managed~1contacts~1{contactId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateManagedContact:
- operation:
- $ref: '#/paths/~1managed~1contacts~1{contactId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteManagedContact:
- operation:
- $ref: '#/paths/~1managed~1contacts~1{contactId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/contacts/methods/getManagedContacts'
- - $ref: '#/components/x-stackQL-resources/contacts/methods/getManagedContact'
- insert:
- - $ref: '#/components/x-stackQL-resources/contacts/methods/createManagedContact'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/contacts/methods/deleteManagedContact'
- credentials:
- id: linode.managed.credentials
- name: credentials
- title: Credentials
- methods:
- getManagedCredentials:
- operation:
- $ref: '#/paths/~1managed~1credentials/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getManagedCredentials:
- operation:
- $ref: '#/paths/~1managed~1credentials/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createManagedCredential:
- operation:
- $ref: '#/paths/~1managed~1credentials/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getManagedCredential:
- operation:
- $ref: '#/paths/~1managed~1credentials~1{credentialId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getManagedCredential:
- operation:
- $ref: '#/paths/~1managed~1credentials~1{credentialId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateManagedCredential:
- operation:
- $ref: '#/paths/~1managed~1credentials~1{credentialId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateManagedCredentialUsernamePassword:
- operation:
- $ref: '#/paths/~1managed~1credentials~1{credentialId}~1update/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteManagedCredential:
- operation:
- $ref: '#/paths/~1managed~1credentials~1{credentialId}~1revoke/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- viewManagedSSHKey:
- operation:
- $ref: '#/paths/~1managed~1credentials~1sshkey/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _viewManagedSSHKey:
- operation:
- $ref: '#/paths/~1managed~1credentials~1sshkey/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/credentials/methods/getManagedCredentials'
- - $ref: '#/components/x-stackQL-resources/credentials/methods/getManagedCredential'
- insert:
- - $ref: '#/components/x-stackQL-resources/credentials/methods/createManagedCredential'
- update: []
- delete: []
- issues:
- id: linode.managed.issues
- name: issues
- title: Issues
- methods:
- getManagedIssues:
- operation:
- $ref: '#/paths/~1managed~1issues/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getManagedIssues:
- operation:
- $ref: '#/paths/~1managed~1issues/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getManagedIssue:
- operation:
- $ref: '#/paths/~1managed~1issues~1{issueId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getManagedIssue:
- operation:
- $ref: '#/paths/~1managed~1issues~1{issueId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/issues/methods/getManagedIssues'
- - $ref: '#/components/x-stackQL-resources/issues/methods/getManagedIssue'
- insert: []
- update: []
- delete: []
- linode_settings:
- id: linode.managed.linode_settings
- name: linode_settings
- title: Linode Settings
- methods:
- getManagedLinodeSettings:
- operation:
- $ref: '#/paths/~1managed~1linode-settings/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getManagedLinodeSettings:
- operation:
- $ref: '#/paths/~1managed~1linode-settings/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getManagedLinodeSetting:
- operation:
- $ref: '#/paths/~1managed~1linode-settings~1{linodeId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getManagedLinodeSetting:
- operation:
- $ref: '#/paths/~1managed~1linode-settings~1{linodeId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateManagedLinodeSetting:
- operation:
- $ref: '#/paths/~1managed~1linode-settings~1{linodeId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/linode_settings/methods/getManagedLinodeSettings'
- - $ref: '#/components/x-stackQL-resources/linode_settings/methods/getManagedLinodeSetting'
- insert: []
- update: []
- delete: []
- services:
- id: linode.managed.services
- name: services
- title: Services
- methods:
- getManagedServices:
- operation:
- $ref: '#/paths/~1managed~1services/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getManagedServices:
- operation:
- $ref: '#/paths/~1managed~1services/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createManagedService:
- operation:
- $ref: '#/paths/~1managed~1services/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getManagedService:
- operation:
- $ref: '#/paths/~1managed~1services~1{serviceId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getManagedService:
- operation:
- $ref: '#/paths/~1managed~1services~1{serviceId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateManagedService:
- operation:
- $ref: '#/paths/~1managed~1services~1{serviceId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteManagedService:
- operation:
- $ref: '#/paths/~1managed~1services~1{serviceId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- disableManagedService:
- operation:
- $ref: '#/paths/~1managed~1services~1{serviceId}~1disable/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- enableManagedService:
- operation:
- $ref: '#/paths/~1managed~1services~1{serviceId}~1enable/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/services/methods/getManagedServices'
- - $ref: '#/components/x-stackQL-resources/services/methods/getManagedService'
- insert:
- - $ref: '#/components/x-stackQL-resources/services/methods/createManagedService'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/services/methods/deleteManagedService'
- stats:
- id: linode.managed.stats
- name: stats
- title: Stats
- methods:
- getManagedStats:
- operation:
- $ref: '#/paths/~1managed~1stats/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getManagedStats:
- operation:
- $ref: '#/paths/~1managed~1stats/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select: []
- insert: []
- update: []
- delete: []
-paths:
- /managed/contacts:
- get:
+ x-akamai:
+ file-path: parameters/contact-id-path.yaml
+ x-akamai:
+ file-path: paths/contact.yaml
+ path-info: /{apiVersion}/managed/contacts/{contactId}
+ x-linode-cli-command: managed
+ /managed/credentials:
+ post:
+ description: 'Creates a Managed Credential. A Managed Credential is stored securely
+ to allow Linode special forces to access your Managed Services and resolve
+ issues.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-managed-credential
+ operationId: post-managed-credential
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: A securely stored Credential that allows Linode's special
+ forces to access a Managed server to respond to Issues.
+ properties:
+ id:
+ description: __Read-only__ This Credential's unique ID.
+ example: 9991
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The unique label for this Credential. This is for
+ display purposes only.
+ example: prod-password-1
+ maxLength: 75
+ minLength: 2
+ pattern: '[a-zA-Z0-9-_ \.]{2,75}'
+ type: string
+ x-linode-cli-display: 2
+ last_decrypted:
+ description: __Read-only__ The date this Credential was last decrypted
+ by a member of Linode special forces.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ type: object
+ x-akamai:
+ file-path: schemas/managed-credential.yaml
+ - properties:
+ password:
+ description: The password to use when accessing the Managed Service.
+ example: s3cur3P@ssw0rd
+ type: string
+ username:
+ description: The username to use when accessing the Managed Service.
+ example: johndoe
+ maxLength: 5000
+ minLength: 0
+ type: string
+ type: object
+ required:
+ - label
+ - password
+ x-akamai:
+ file-path: schemas/added-post-managed-credential.yaml
+ x-example:
+ x-ref: ../examples/post-managed-credential.json
+ description: Information about the Credential to create.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A securely stored Credential that allows Linode's special
+ forces to access a Managed server to respond to Issues.
+ properties:
+ id:
+ description: __Read-only__ This Credential's unique ID.
+ example: 9991
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The unique label for this Credential. This is for
+ display purposes only.
+ example: prod-password-1
+ maxLength: 75
+ minLength: 2
+ pattern: '[a-zA-Z0-9-_ \.]{2,75}'
+ type: string
+ x-linode-cli-display: 2
+ last_decrypted:
+ description: __Read-only__ The date this Credential was last decrypted
+ by a member of Linode special forces.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ type: object
+ x-akamai:
+ file-path: schemas/managed-credential.yaml
+ x-example:
+ x-ref: ../examples/post-managed-credential-200.json
+ description: Credential created.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Create a managed credential
+ tags:
+ - Credentials
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli managed credential-create \\\n --label prod-password-1\
+ \ \\\n --username johndoe \\\n --password s3cur3P@ssw0rd"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: credential-create
x-linode-grant: unrestricted only
+ get:
+ description: 'Returns a paginated list of Managed Credentials on your Account.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-managed-credentials
+ operationId: get-managed-credentials
parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: A securely stored Credential that allows Linode's
+ special forces to access a Managed server to respond to Issues.
+ properties:
+ id:
+ description: __Read-only__ This Credential's unique ID.
+ example: 9991
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The unique label for this Credential. This
+ is for display purposes only.
+ example: prod-password-1
+ maxLength: 75
+ minLength: 2
+ pattern: '[a-zA-Z0-9-_ \.]{2,75}'
+ type: string
+ x-linode-cli-display: 2
+ last_decrypted:
+ description: __Read-only__ The date this Credential was
+ last decrypted by a member of Linode special forces.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ type: object
+ x-akamai:
+ file-path: schemas/managed-credential.yaml
+ type: array
+ page:
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-managed-credentials-200.yaml
+ x-example:
+ x-ref: ../examples/get-managed-credentials-200.json
+ description: A paginated list of ManagedCredentials.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List managed credentials
tags:
- - Managed
- summary: Managed Contacts List
- description: |
- Returns a paginated list of Managed Contacts on your Account.
+ - Credentials
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed credentials-list
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: credentials-list
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/credentials.yaml
+ path-info: /{apiVersion}/managed/credentials
+ x-linode-cli-command: managed
+ /managed/credentials/sshkey:
+ get:
+ description: 'Returns the unique SSH public key assigned to your Linode account''s
+ Managed service. If you [add this public key](https://www.linode.com/docs/products/services/managed/get-started/#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.
- This command can only be accessed by the unrestricted users of an account.
- operationId: getManagedContacts
- x-linode-cli-action: contacts-list
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-managed-ssh-key
+ operationId: get-managed-ssh-key
responses:
'200':
- description: A paginated list of ManagedContacts
content:
application/json:
schema:
+ additionalProperties: false
+ description: A unique SSH public key that allows Linode's special
+ forces to access a Managed server to respond to Issues.
+ properties:
+ ssh_key:
+ description: __Read-only__ The unique SSH public key assigned
+ to your Linode account's Managed service.
+ example: ssh-rsa AAAAB...oD2ZQ== managedservices@linode
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
type: object
+ x-akamai:
+ file-path: schemas/added-get-managed-ssh-key-200.yaml
+ x-example:
+ x-ref: ../examples/get-managed-ssh-key-200.json
+ description: The requested Managed SSH public key.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
items:
- $ref: '#/components/schemas/ManagedContact'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/contacts
- - lang: CLI
- source: |
- linode-cli managed contacts-list
- post:
- x-linode-grant: unrestricted only
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: Get a managed SSH key
tags:
- - 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.
+ - Managed SSH keys
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed credential-sshkey-view
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: credential-sshkey-view
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/managed-ssh-key.yaml
+ path-info: /{apiVersion}/managed/credentials/sshkey
+ x-linode-cli-command: managed
+ /managed/credentials/{credentialId}:
+ get:
+ description: 'Returns a single Managed Credential.
- This command can only be accessed by the unrestricted users of an account.
- operationId: createManagedContact
- x-linode-cli-action: contact-create
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-managed-credential
+ operationId: get-managed-credential
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A securely stored Credential that allows Linode's special
+ forces to access a Managed server to respond to Issues.
+ properties:
+ id:
+ description: __Read-only__ This Credential's unique ID.
+ example: 9991
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The unique label for this Credential. This is for
+ display purposes only.
+ example: prod-password-1
+ maxLength: 75
+ minLength: 2
+ pattern: '[a-zA-Z0-9-_ \.]{2,75}'
+ type: string
+ x-linode-cli-display: 2
+ last_decrypted:
+ description: __Read-only__ The date this Credential was last decrypted
+ by a member of Linode special forces.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ type: object
+ x-akamai:
+ file-path: schemas/managed-credential.yaml
+ x-example:
+ x-ref: ../examples/get-managed-credential-200.json
+ description: The requested Managed Credential.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Get a managed credential
+ tags:
+ - Credentials
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed credential-view 9991
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: credential-view
+ x-linode-grant: unrestricted only
+ put:
+ description: 'Updates the label of a Managed Credential. This operation does
+ not update the username and password for a Managed Credential. To do this,
+ run the [Update a managed credential''s username and password](https://techdocs.akamai.com/linode-api/reference/post-managed-credential-username-password))
+ operation instead. This operation can only be accessed by the unrestricted
+ users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-managed-credential
+ operationId: put-managed-credential
requestBody:
- description: Information about the contact to create.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedContact'
+ additionalProperties: false
+ description: A securely stored Credential that allows Linode's special
+ forces to access a Managed server to respond to Issues.
+ properties:
+ id:
+ description: __Read-only__ This Credential's unique ID.
+ example: '{{id}}'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The unique label for this Credential. This is for display
+ purposes only.
+ example: '{{label}}'
+ maxLength: 75
+ minLength: 2
+ pattern: '[a-zA-Z0-9-_ \.]{2,75}'
+ type: string
+ x-linode-cli-display: 2
+ last_decrypted:
+ description: __Read-only__ The date this Credential was last decrypted
+ by a member of Linode special forces.
+ example: '{{last_decrypted}}'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ type: object
+ x-akamai:
+ file-path: schemas/managed-credential.yaml
+ x-example:
+ x-ref: ../examples/put-managed-credential.json
+ description: The fields to update.
+ required: true
responses:
'200':
- description: Contact created.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedContact'
+ additionalProperties: false
+ description: A securely stored Credential that allows Linode's special
+ forces to access a Managed server to respond to Issues.
+ properties:
+ id:
+ description: __Read-only__ This Credential's unique ID.
+ example: 9991
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The unique label for this Credential. This is for
+ display purposes only.
+ example: prod-password-1
+ maxLength: 75
+ minLength: 2
+ pattern: '[a-zA-Z0-9-_ \.]{2,75}'
+ type: string
+ x-linode-cli-display: 2
+ last_decrypted:
+ description: __Read-only__ The date this Credential was last decrypted
+ by a member of Linode special forces.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ type: object
+ x-akamai:
+ file-path: schemas/managed-credential.yaml
+ x-example:
+ x-ref: ../examples/get-managed-credential-200.json
+ description: Credential updated successfully.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "name": "John Doe",
- "email": "john.doe@example.org",
- "phone": {
- "primary": "123-456-7890",
- "secondary": null
- },
- "group": "on-call"
- }' \
- https://api.linode.com/v4/managed/contacts
- - lang: CLI
- source: |
- linode-cli managed contact-create \
- --name "John Doe" \
- --email "john.doe@example.org" \
- --phone.primary "123-456-7890"
- '/managed/contacts/{contactId}':
- get:
- x-linode-grant: unrestricted only
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Update a managed credential
tags:
- - Managed
- summary: Managed Contact View
- description: |
- Returns a single Managed Contact.
+ - Credentials
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli managed credential-update 9991 \\\n --label prod-password-1"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: credential-update
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The ID of the Credential to access.
+ example: '{{credentialId}}'
+ in: path
+ name: credentialId
+ required: true
+ schema:
+ example: 692
+ type: integer
+ x-akamai:
+ file-path: parameters/credential-id-path.yaml
+ x-akamai:
+ file-path: paths/credential.yaml
+ path-info: /{apiVersion}/managed/credentials/{credentialId}
+ x-linode-cli-command: managed
+ /managed/credentials/{credentialId}/revoke:
+ post:
+ description: 'Deletes a Managed Credential. Linode special forces will no longer
+ have access to this Credential when attempting to resolve issues.
- This command can only be accessed by the unrestricted users of an account.
- operationId: getManagedContact
- x-linode-cli-action: contact-view
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-managed-credential-revoke
+ operationId: post-managed-credential-revoke
responses:
'200':
- description: The requested Managed Contact.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedContact'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-managed-credential-revoke-200.json
+ description: Credential deleted successfully.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/contacts/567
- - lang: CLI
- source: |
- linode-cli managed contact-view 567
- parameters:
- - name: contactId
- in: path
- required: true
- description: The ID of the contact to access.
- schema:
- type: integer
- put:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Contact Update
- description: |
- Updates information about a Managed Contact.
- This command can only be accessed by the unrestricted users of an account.
- operationId: updateManagedContact
- x-linode-cli-action: contact-update
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Delete a managed credential
+ tags:
+ - Credentials
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed credential-revoke 9991
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: credential-revoke
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The ID of the Credential to access.
+ example: '{{credentialId}}'
+ in: path
+ name: credentialId
+ required: true
+ schema:
+ example: 692
+ type: integer
+ x-akamai:
+ file-path: parameters/credential-id-path-7162d62f.yaml
+ x-akamai:
+ file-path: paths/revoke.yaml
+ path-info: /{apiVersion}/managed/credentials/{credentialId}/revoke
+ x-linode-cli-command: managed
+ /managed/credentials/{credentialId}/update:
+ post:
+ description: 'Updates the username and password for a Managed Credential.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-managed-credential-username-password
+ operationId: post-managed-credential-username-password
requestBody:
- description: The fields to update.
- required: true
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedContact'
+ additionalProperties: false
+ properties:
+ password:
+ description: The password to use when accessing the Managed Service.
+ example: '{{password}}'
+ type: string
+ username:
+ description: The username to use when accessing the Managed Service.
+ example: '{{username}}'
+ maxLength: 5000
+ minLength: 0
+ type: string
+ required:
+ - password
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-managed-credential-username-password.yaml
+ x-example:
+ x-ref: ../examples/post-managed-credential-username-password.json
+ description: The new username and password to assign to the Managed Credential.
responses:
'200':
- description: Contact updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedContact'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-managed-credential-username-password-200.json
+ description: Credential username and password updated.
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"
- parameters:
- - name: contactId
- in: path
- required: true
- description: The ID of the contact to access.
- schema:
- type: integer
- delete:
- x-linode-grant: unrestricted only
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Update a managed credential's username and password
tags:
- - Managed
- summary: Managed Contact Delete
- description: |
- Deletes a Managed Contact.
+ - Credentials
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli managed credential-update-username-password 9991 \\\n\
+ \ --username johndoe \\\n --password s3cur3P@ssw0rd"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: credential-update-username-password
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The ID of the Credential to update.
+ example: '{{credentialId}}'
+ in: path
+ name: credentialId
+ required: true
+ schema:
+ example: 692
+ type: integer
+ x-akamai:
+ file-path: parameters/credential-id-path-78b1aa7e.yaml
+ x-akamai:
+ file-path: paths/update.yaml
+ path-info: /{apiVersion}/managed/credentials/{credentialId}/update
+ x-linode-cli-command: managed
+ /managed/issues:
+ get:
+ description: 'Returns a paginated list of recent and ongoing issues detected
+ on your Managed Services.
- This command can only be accessed by the unrestricted users of an account.
- operationId: deleteManagedContact
- x-linode-cli-action: contact-delete
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-managed-issues
+ operationId: get-managed-issues
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Contact deleted successfully.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: An Issue that was detected with a service Linode
+ is managing.
+ properties:
+ created:
+ description: __Read-only__ When this Issue was created.
+ Issues are created in response to issues detected with
+ Managed Services, so this is also when the Issue was detected.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ entity:
+ additionalProperties: false
+ description: __Read-only__ The ticket this Managed Issue
+ opened.
+ properties:
+ id:
+ description: __Read-only__ This ticket's ID.
+ example: 98765
+ readOnly: true
+ type: integer
+ label:
+ description: __Read-only__ The summary for this Ticket.
+ example: Managed Issue opened!
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of entity this is.
+ In this case, it is always a Ticket.
+ enum:
+ - ticket
+ example: ticket
+ readOnly: true
+ type: string
+ url:
+ description: __Read-only__ The relative URL where you
+ can access this Ticket.
+ example: /support/tickets/98765
+ format: url
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ x-linode-cli-display: 4
+ id:
+ description: __Read-only__ This Issue's unique ID.
+ example: 823
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ services:
+ description: __Read-only__ An array of Managed Service IDs
+ that were affected by this Issue.
+ items:
+ example: 654
+ type: integer
+ readOnly: true
+ type: array
+ x-linode-cli-display: 3
+ type: object
+ x-akamai:
+ file-path: schemas/managed-issue.yaml
+ type: array
+ page:
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
type: object
+ x-akamai:
+ file-path: schemas/added-get-managed-issues-200.yaml
+ x-example:
+ x-ref: ../examples/get-managed-issues-200.json
+ description: A paginated list of open or ongoing Managed Issues.
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
- parameters:
- - name: contactId
- in: path
- required: true
- description: The ID of the contact to access.
- schema:
- type: integer
- /managed/credentials:
- get:
- x-linode-grant: unrestricted only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List managed issues
tags:
- - Managed
- summary: Managed Credentials List
- description: |
- Returns a paginated list of Managed Credentials on your Account.
+ - Issues
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed issues-list
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: issues-list
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/issues.yaml
+ path-info: /{apiVersion}/managed/issues
+ x-linode-cli-command: managed
+ /managed/issues/{issueId}:
+ get:
+ description: 'Returns a single Issue that is impacting or did impact one of
+ your Managed Services.
- This command can only be accessed by the unrestricted users of an account.
- operationId: getManagedCredentials
- x-linode-cli-action: credentials-list
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-managed-issue
+ operationId: get-managed-issue
responses:
'200':
- description: A paginated list of ManagedCredentials
content:
application/json:
schema:
+ additionalProperties: false
+ description: An Issue that was detected with a service Linode is managing.
+ properties:
+ created:
+ description: __Read-only__ When this Issue was created. Issues
+ are created in response to issues detected with Managed Services,
+ so this is also when the Issue was detected.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ entity:
+ additionalProperties: false
+ description: __Read-only__ The ticket this Managed Issue opened.
+ properties:
+ id:
+ description: __Read-only__ This ticket's ID.
+ example: 98765
+ readOnly: true
+ type: integer
+ label:
+ description: __Read-only__ The summary for this Ticket.
+ example: Managed Issue opened!
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of entity this is. In
+ this case, it is always a Ticket.
+ enum:
+ - ticket
+ example: ticket
+ readOnly: true
+ type: string
+ url:
+ description: __Read-only__ The relative URL where you can
+ access this Ticket.
+ example: /support/tickets/98765
+ format: url
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ x-linode-cli-display: 4
+ id:
+ description: __Read-only__ This Issue's unique ID.
+ example: 823
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ services:
+ description: __Read-only__ An array of Managed Service IDs that
+ were affected by this Issue.
+ items:
+ example: 654
+ type: integer
+ readOnly: true
+ type: array
+ x-linode-cli-display: 3
+ type: object
+ x-akamai:
+ file-path: schemas/managed-issue.yaml
+ x-example:
+ x-ref: ../examples/get-managed-issue-200.json
+ description: The requested issue.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: Get a managed issue
+ tags:
+ - Issues
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed issue-view 823
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: issue-view
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The Issue to look up.
+ example: '{{issueId}}'
+ in: path
+ name: issueId
+ required: true
+ schema:
+ example: 574
+ type: integer
+ x-akamai:
+ file-path: parameters/issue-id-path.yaml
+ x-akamai:
+ file-path: paths/issue.yaml
+ path-info: /{apiVersion}/managed/issues/{issueId}
+ x-linode-cli-command: managed
+ /managed/linode-settings:
+ get:
+ description: 'Returns a paginated list of Managed Settings for your Linodes.
+ There will be one entry per Linode on your Account.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-managed-linode-settings
+ operationId: get-managed-linode-settings
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
properties:
data:
+ items:
+ additionalProperties: false
+ description: Settings for a specific Linode related to Managed
+ Services. There is one ManagedLinodeSettings object for each
+ Linode on your Account.
+ properties:
+ group:
+ deprecated: true
+ description: __Read-only__ The group of the Linode these
+ Settings are for. This is for display purposes only.
+ example: linodes
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ The ID of the Linode these Settings
+ are for.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: __Read-only__ The label of the Linode these
+ Settings are for.
+ example: linode123
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ ssh:
+ additionalProperties: false
+ description: The SSH settings for this Linode.
+ properties:
+ access:
+ default: true
+ description: If `true`, Linode special forces may access
+ this Linode over ssh to respond to Issues.
+ example: true
+ type: boolean
+ ip:
+ default: any
+ description: 'The IP Linode special forces should use
+ to access this Linode when responding to an Issue.
+
+
+ By default, any of a Linode''s IP addresses can be
+ used for incident response access.'
+ example: 203.0.113.1
+ format: ip
+ type: string
+ port:
+ default: null
+ 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
+ maximum: 65535
+ minimum: 1
+ nullable: true
+ type: integer
+ user:
+ default: null
+ 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
+ maxLength: 32
+ minLength: 0
+ nullable: true
+ type: string
+ type: object
+ x-linode-cli-display: 4
+ type: object
+ x-akamai:
+ file-path: schemas/managed-linode-settings.yaml
type: array
- items:
- $ref: '#/components/schemas/ManagedCredential'
page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-managed-linode-settings-200.yaml
+ x-example:
+ x-ref: ../examples/get-managed-linode-settings-200.json
+ description: A paginated list of Managed settings for your Linodes.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/credentials
- - lang: CLI
- source: |
- linode-cli managed credentials-list
- post:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Credential Create
- description: |
- Creates a Managed Credential. A Managed Credential is stored securely
- to allow Linode special forces to access your Managed Services and resolve
- issues.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: createManagedCredential
- x-linode-cli-action: credential-create
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
- requestBody:
- description: Information about the Credential to create.
- content:
- application/json:
- schema:
- required:
- - label
- - 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: Credential created.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedCredential'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "label": "prod-password-1",
- "username": "johndoe",
- "password": "s3cur3P@ssw0rd"
- }' \
- https://api.linode.com/v4/managed/credentials
- - lang: CLI
- source: |
- linode-cli managed credential-create \
- --label prod-password-1 \
- --username johndoe \
- --password s3cur3P@ssw0rd
- '/managed/credentials/{credentialId}':
- get:
- x-linode-grant: unrestricted only
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List managed Linode settings
tags:
- - Managed
- summary: Managed Credential View
- description: |
- Returns a single Managed Credential.
+ - Linode settings
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed linode-settings-list
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: linode-settings-list
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/linode-settings.yaml
+ path-info: /{apiVersion}/managed/linode-settings
+ x-linode-cli-command: managed
+ /managed/linode-settings/{linodeId}:
+ get:
+ description: 'Returns a single Linode''s Managed settings.
- This command can only be accessed by the unrestricted users of an account.
- operationId: getManagedCredential
- x-linode-cli-action: credential-view
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-managed-linode-setting
+ operationId: get-managed-linode-setting
responses:
'200':
- description: The requested Managed Credential.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedCredential'
+ additionalProperties: false
+ description: Settings for a specific Linode related to Managed Services.
+ There is one ManagedLinodeSettings object for each Linode on your
+ Account.
+ properties:
+ group:
+ deprecated: true
+ description: __Read-only__ The group of the Linode these Settings
+ are for. This is for display purposes only.
+ example: linodes
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ The ID of the Linode these Settings
+ are for.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: __Read-only__ The label of the Linode these Settings
+ are for.
+ example: linode123
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ ssh:
+ additionalProperties: false
+ description: The SSH settings for this Linode.
+ properties:
+ access:
+ default: true
+ description: If `true`, Linode special forces may access this
+ Linode over ssh to respond to Issues.
+ example: true
+ type: boolean
+ ip:
+ default: any
+ description: 'The IP Linode special forces should use to access
+ this Linode when responding to an Issue.
+
+
+ By default, any of a Linode''s IP addresses can be used
+ for incident response access.'
+ example: 203.0.113.1
+ format: ip
+ type: string
+ port:
+ default: null
+ 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
+ maximum: 65535
+ minimum: 1
+ nullable: true
+ type: integer
+ user:
+ default: null
+ 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
+ maxLength: 32
+ minLength: 0
+ nullable: true
+ type: string
+ type: object
+ x-linode-cli-display: 4
+ type: object
+ x-akamai:
+ file-path: schemas/managed-linode-settings.yaml
+ x-example:
+ x-ref: ../examples/get-managed-linode-setting-200.json
+ description: The requested Linode's Managed settings.
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
- parameters:
- - name: credentialId
- in: path
- required: true
- description: The ID of the Credential to access.
- schema:
- type: integer
- put:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Credential Update
- 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.
- This command can only be accessed by the unrestricted users of an account.
- operationId: updateManagedCredential
- x-linode-cli-action: credential-update
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
- requestBody:
- description: The fields to update.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ManagedCredential'
- responses:
- '200':
- description: Credential updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedCredential'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "label": "prod-password-1"
- }' \
- https://api.linode.com/v4/managed/credentials/9991
- - lang: CLI
- source: |
- linode-cli managed credential-update 9991 \
- --label prod-password-1
- parameters:
- - name: credentialId
- in: path
- required: true
- description: The ID of the Credential to access.
- schema:
- type: integer
- '/managed/credentials/{credentialId}/update':
- post:
- x-linode-grant: unrestricted only
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: Get a Linode's managed settings
tags:
- - Managed
- summary: Managed Credential Username and Password Update
- description: |
- Updates the username and password for a Managed Credential.
+ - Managed settings
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed linode-setting-view 123
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: linode-setting-view
+ x-linode-grant: unrestricted only
+ put:
+ description: 'Updates a single Linode''s Managed settings. This operation can
+ only be accessed by the unrestricted users of an account.
- This command can only be accessed by the unrestricted users of an account.
- operationId: updateManagedCredentialUsernamePassword
- x-linode-cli-action: credential-update-username-password
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-managed-linode-setting
+ operationId: put-managed-linode-setting
requestBody:
- description: |
- The new username and password to assign to the Managed Credential.
content:
application/json:
schema:
- required:
- - password
+ additionalProperties: false
+ description: Settings for a specific Linode related to Managed Services.
+ There is one ManagedLinodeSettings object for each Linode on your
+ Account.
properties:
- username:
+ group:
+ deprecated: true
+ description: __Read-only__ The group of the Linode these Settings
+ are for. This is for display purposes only.
+ example: '{{group}}'
+ readOnly: true
type: string
- minLength: 0
- maxLength: 5000
- description: |
- The username to use when accessing the Managed Service.
- example: johndoe
- password:
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ The ID of the Linode these Settings are
+ for.
+ example: '{{id}}'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: __Read-only__ The label of the Linode these Settings
+ are for.
+ example: '{{label}}'
+ readOnly: true
type: string
- description: |
- The password to use when accessing the Managed Service.
- example: s3cur3P@ssw0rd
+ x-linode-cli-display: 2
+ ssh:
+ additionalProperties: false
+ description: The SSH settings for this Linode.
+ properties:
+ access:
+ default: true
+ description: If `true`, Linode special forces may access this
+ Linode over ssh to respond to Issues.
+ example: true
+ type: boolean
+ ip:
+ default: any
+ description: 'The IP Linode special forces should use to access
+ this Linode when responding to an Issue.
+
+
+ By default, any of a Linode''s IP addresses can be used for
+ incident response access.'
+ example: 203.0.113.1
+ format: ip
+ type: string
+ port:
+ default: null
+ 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
+ maximum: 65535
+ minimum: 1
+ nullable: true
+ type: integer
+ user:
+ default: null
+ 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
+ maxLength: 32
+ minLength: 0
+ nullable: true
+ type: string
+ type: object
+ x-linode-cli-display: 4
+ type: object
+ x-akamai:
+ file-path: schemas/managed-linode-settings.yaml
+ x-example:
+ x-ref: ../examples/put-managed-linode-setting.json
+ description: The settings to update.
+ required: true
responses:
'200':
- description: Credential username and password updated.
content:
application/json:
schema:
+ additionalProperties: false
+ description: Settings for a specific Linode related to Managed Services.
+ There is one ManagedLinodeSettings object for each Linode on your
+ Account.
+ properties:
+ group:
+ deprecated: true
+ description: __Read-only__ The group of the Linode these Settings
+ are for. This is for display purposes only.
+ example: linodes
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ The ID of the Linode these Settings
+ are for.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: __Read-only__ The label of the Linode these Settings
+ are for.
+ example: linode123
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ ssh:
+ additionalProperties: false
+ description: The SSH settings for this Linode.
+ properties:
+ access:
+ default: true
+ description: If `true`, Linode special forces may access this
+ Linode over ssh to respond to Issues.
+ example: true
+ type: boolean
+ ip:
+ default: any
+ description: 'The IP Linode special forces should use to access
+ this Linode when responding to an Issue.
+
+
+ By default, any of a Linode''s IP addresses can be used
+ for incident response access.'
+ example: 203.0.113.1
+ format: ip
+ type: string
+ port:
+ default: null
+ 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
+ maximum: 65535
+ minimum: 1
+ nullable: true
+ type: integer
+ user:
+ default: null
+ 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
+ maxLength: 32
+ minLength: 0
+ nullable: true
+ type: string
+ type: object
+ x-linode-cli-display: 4
type: object
+ x-akamai:
+ file-path: schemas/managed-linode-settings.yaml
+ x-example:
+ x-ref: ../examples/get-managed-linode-setting-200.json
+ description: Settings updated successfully.
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
- - lang: CLI
- source: |
- linode-cli managed credential-update-username-password 9991 \
- --username johndoe \
- --password s3cur3P@ssw0rd
- parameters:
- - name: credentialId
- in: path
- required: true
- description: The ID of the Credential to update.
- schema:
- type: integer
- '/managed/credentials/{credentialId}/revoke':
- post:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Credential Delete
- description: |
- Deletes a Managed Credential. Linode special forces will no longer
- have access to this Credential when attempting to resolve issues.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: deleteManagedCredential
- x-linode-cli-action: credential-revoke
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
- responses:
- '200':
- description: Credential deleted successfully.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/managed/credentials/9991
- - lang: CLI
- source: |
- linode-cli managed credential-revoke 9991
- parameters:
- - name: credentialId
- in: path
- required: true
- description: The ID of the Credential to access.
- schema:
- type: integer
- /managed/credentials/sshkey:
- get:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed SSH Key View
- description: |
- Returns the unique SSH public key assigned to your Linode account's
- Managed service. If you [add this public key](/docs/guides/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.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: viewManagedSSHKey
- x-linode-cli-action: credential-sshkey-view
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Update a Linode's managed settings
+ tags:
+ - Managed settings
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli managed linode-setting-update \\\n 7833234 \\\n --ssh.access\
+ \ true \\\n --ssh.user linode \\\n --ssh.port 22 \\\n --ssh.ip 203.0.113.1"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: linode-setting-update
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The Linode ID whose settings we are accessing.
+ example: '{{linodeId}}'
+ in: path
+ name: linodeId
+ required: true
+ schema:
+ example: 234
+ type: integer
+ x-akamai:
+ file-path: parameters/linode-id-path-56000749.yaml
+ x-akamai:
+ file-path: paths/linode-settings-per-linode.yaml
+ path-info: /{apiVersion}/managed/linode-settings/{linodeId}
+ x-linode-cli-command: managed
+ /managed/services:
+ post:
+ description: 'Creates a Managed Service. Linode Managed will begin monitoring
+ this service and reporting and attempting to resolve any Issues.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-managed-service
+ operationId: post-managed-service
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: A service that Linode is monitoring as part of your Managed
+ services. If issues are detected with this service, a ManagedIssue
+ will be opened and, optionally, Linode special forces will attempt
+ to resolve the Issue.
+ properties:
+ address:
+ description: The URL at which this Service is monitored. URL parameters
+ such as `?no-cache=1` are preserved. URL fragments/anchors such
+ as `#monitor` are __not__ preserved.
+ example: https://example.org
+ format: url
+ maxLength: 100
+ minLength: 3
+ type: string
+ x-linode-cli-display: 5
+ body:
+ description: What to expect to find in the response body for the
+ Service to be considered up.
+ example: it worked
+ maxLength: 100
+ minLength: 0
+ nullable: true
+ type: string
+ consultation_group:
+ description: The group of ManagedContacts who should be notified
+ or consulted with when an Issue is detected.
+ example: on-call
+ maxLength: 50
+ minLength: 0
+ type: string
+ x-linode-cli-display: 6
+ created:
+ description: __Read-only__ When this Managed Service was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ credentials:
+ description: An array of ManagedCredential IDs that should be
+ used when attempting to resolve issues with this Service.
+ items:
+ example: 9991
+ type: integer
+ type: array
+ id:
+ description: __Read-only__ This Service's unique ID.
+ example: 9944
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The label for this Service. This is for display purposes
+ only.
+ example: prod-1
+ maxLength: 64
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_ \.]{3,64}'
+ type: string
+ x-linode-cli-display: 4
+ notes:
+ description: Any information relevant to the Service that Linode
+ special forces should know when attempting to resolve Issues.
+ example: The service name is my-cool-application
+ nullable: true
+ type: string
+ region:
+ description: The Region in which this Service is located. This
+ is required if address is a private IP, and may not be set otherwise.
+ example: null
+ nullable: true
+ type: string
+ service_type:
+ description: How this Service is monitored.
+ enum:
+ - url
+ - tcp
+ example: url
+ type: string
+ x-linode-cli-display: 3
+ status:
+ description: __Read-only__ The current status of this Service.
+ enum:
+ - disabled
+ - pending
+ - ok
+ - problem
+ example: ok
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ disabled: red
+ ok: green
+ x-linode-cli-display: 2
+ timeout:
+ description: How long to wait, in seconds, for a response before
+ considering the Service to be down.
+ example: 30
+ maximum: 255
+ minimum: 1
+ type: integer
+ updated:
+ description: __Read-only__ When this Managed Service was last
+ updated.
+ example: '2018-03-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/managed-service.yaml
+ required:
+ - label
+ - service_type
+ - address
+ - timeout
+ x-akamai:
+ file-path: schemas/added-post-managed-service.yaml
+ x-example:
+ x-ref: ../examples/post-managed-service.json
+ description: Information about the service to monitor.
responses:
'200':
- description: The requested Managed SSH public key.
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.
+ additionalProperties: false
+ description: A service that Linode is monitoring as part of your Managed
+ services. If issues are detected with this service, a ManagedIssue
+ will be opened and, optionally, Linode special forces will attempt
+ to resolve the Issue.
properties:
- ssh_key:
+ address:
+ description: The URL at which this Service is monitored. URL parameters
+ such as `?no-cache=1` are preserved. URL fragments/anchors such
+ as `#monitor` are __not__ preserved.
+ example: https://example.org
+ format: url
+ maxLength: 100
+ minLength: 3
type: string
- description: |
- The unique SSH public key assigned to your Linode account's Managed service.
- example: ssh-rsa AAAAB...oD2ZQ== managedservices@linode
+ x-linode-cli-display: 5
+ body:
+ description: What to expect to find in the response body for the
+ Service to be considered up.
+ example: it worked
+ maxLength: 100
+ minLength: 0
+ nullable: true
+ type: string
+ consultation_group:
+ description: The group of ManagedContacts who should be notified
+ or consulted with when an Issue is detected.
+ example: on-call
+ maxLength: 50
+ minLength: 0
+ type: string
+ x-linode-cli-display: 6
+ created:
+ description: __Read-only__ When this Managed Service was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ credentials:
+ description: An array of ManagedCredential IDs that should be
+ used when attempting to resolve issues with this Service.
+ items:
+ example: 9991
+ type: integer
+ type: array
+ id:
+ description: __Read-only__ This Service's unique ID.
+ example: 9944
readOnly: true
+ type: integer
x-linode-cli-display: 1
+ label:
+ description: The label for this Service. This is for display purposes
+ only.
+ example: prod-1
+ maxLength: 64
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_ \.]{3,64}'
+ type: string
+ x-linode-cli-display: 4
+ notes:
+ description: Any information relevant to the Service that Linode
+ special forces should know when attempting to resolve Issues.
+ example: The service name is my-cool-application
+ nullable: true
+ type: string
+ region:
+ description: The Region in which this Service is located. This
+ is required if address is a private IP, and may not be set otherwise.
+ example: null
+ nullable: true
+ type: string
+ service_type:
+ description: How this Service is monitored.
+ enum:
+ - url
+ - tcp
+ example: url
+ type: string
+ x-linode-cli-display: 3
+ status:
+ description: __Read-only__ The current status of this Service.
+ enum:
+ - disabled
+ - pending
+ - ok
+ - problem
+ example: ok
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ disabled: red
+ ok: green
+ x-linode-cli-display: 2
+ timeout:
+ description: How long to wait, in seconds, for a response before
+ considering the Service to be down.
+ example: 30
+ maximum: 255
+ minimum: 1
+ type: integer
+ updated:
+ description: __Read-only__ When this Managed Service was last
+ updated.
+ example: '2018-03-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/managed-service.yaml
+ x-example:
+ x-ref: ../examples/post-managed-service-200.json
+ description: Service created.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/credentials/sshkey
- - lang: CLI
- source: |
- linode-cli managed credential-sshkey-view
- /managed/issues:
- get:
- x-linode-grant: unrestricted only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- tags:
- - Managed
- summary: Managed Issues List
- description: |
- Returns a paginated list of recent and ongoing issues detected on your
- Managed Services.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: getManagedIssues
- x-linode-cli-action: issues-list
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: |
- A paginated list of open or ongoing Managed Issues.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
items:
- $ref: '#/components/schemas/ManagedIssue'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/issues
- - lang: CLI
- source: |
- linode-cli managed issues-list
- '/managed/issues/{issueId}':
- get:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Issue View
- description: |
- Returns a single Issue that is impacting or did impact one of your
- Managed Services.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: getManagedIssue
- x-linode-cli-action: issue-view
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: The requested issue.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ManagedIssue'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/issues/823
- - lang: CLI
- source: |
- linode-cli managed issue-view 823
- parameters:
- - name: issueId
- in: path
- required: true
- description: The Issue to look up.
- schema:
- type: integer
- /managed/linode-settings:
- get:
- x-linode-grant: unrestricted only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Create a managed service
tags:
- - Managed
- summary: Managed Linode Settings List
- description: |
- Returns a paginated list of Managed Settings for your Linodes. There will
- be one entry per Linode on your Account.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: getManagedLinodeSettings
- x-linode-cli-action: linode-settings-list
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
+ - Services
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli managed service-create \\\n --service_type url \\\n\
+ \ --label prod-1 \\\n --address \"https://example.org\" \\\n --timeout\
+ \ 30 \\\n --body \"it worked\" \\\n --consultation_group on-call \\\n\
+ \ --notes \"The service name is \\\n my-cool-application\" \\\n --credentials\
+ \ 9991"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: service-create
+ x-linode-grant: unrestricted only
+ get:
+ 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.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-managed-services
+ operationId: get-managed-services
responses:
'200':
- description: |
- A paginated list of Managed settings for your Linodes.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
data:
- type: array
items:
- $ref: '#/components/schemas/ManagedLinodeSettings'
+ additionalProperties: false
+ description: A service that Linode is monitoring as part of
+ your Managed services. If issues are detected with this service,
+ a ManagedIssue will be opened and, optionally, Linode special
+ forces will attempt to resolve the Issue.
+ properties:
+ address:
+ description: The URL at which this Service is monitored.
+ URL parameters such as `?no-cache=1` are preserved. URL
+ fragments/anchors such as `#monitor` are __not__ preserved.
+ example: https://example.org
+ format: url
+ maxLength: 100
+ minLength: 3
+ type: string
+ x-linode-cli-display: 5
+ body:
+ description: What to expect to find in the response body
+ for the Service to be considered up.
+ example: it worked
+ maxLength: 100
+ minLength: 0
+ nullable: true
+ type: string
+ consultation_group:
+ description: The group of ManagedContacts who should be
+ notified or consulted with when an Issue is detected.
+ example: on-call
+ maxLength: 50
+ minLength: 0
+ type: string
+ x-linode-cli-display: 6
+ created:
+ description: __Read-only__ When this Managed Service was
+ created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ credentials:
+ description: An array of ManagedCredential IDs that should
+ be used when attempting to resolve issues with this Service.
+ items:
+ example: 9991
+ type: integer
+ type: array
+ id:
+ description: __Read-only__ This Service's unique ID.
+ example: 9944
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The label for this Service. This is for display
+ purposes only.
+ example: prod-1
+ maxLength: 64
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_ \.]{3,64}'
+ type: string
+ x-linode-cli-display: 4
+ notes:
+ description: Any information relevant to the Service that
+ Linode special forces should know when attempting to resolve
+ Issues.
+ example: The service name is my-cool-application
+ nullable: true
+ type: string
+ region:
+ description: The Region in which this Service is located.
+ This is required if address is a private IP, and may not
+ be set otherwise.
+ example: null
+ nullable: true
+ type: string
+ service_type:
+ description: How this Service is monitored.
+ enum:
+ - url
+ - tcp
+ example: url
+ type: string
+ x-linode-cli-display: 3
+ status:
+ description: __Read-only__ The current status of this Service.
+ enum:
+ - disabled
+ - pending
+ - ok
+ - problem
+ example: ok
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ disabled: red
+ ok: green
+ x-linode-cli-display: 2
+ timeout:
+ description: How long to wait, in seconds, for a response
+ before considering the Service to be down.
+ example: 30
+ maximum: 255
+ minimum: 1
+ type: integer
+ updated:
+ description: __Read-only__ When this Managed Service was
+ last updated.
+ example: '2018-03-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/managed-service.yaml
+ type: array
page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
+ description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
+ description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-managed-services-200.yaml
+ x-example:
+ x-ref: ../examples/get-managed-services-200.json
+ description: A paginated list of Managed Services.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/linode-settings
- - lang: CLI
- source: |
- linode-cli managed linode-settings-list
- '/managed/linode-settings/{linodeId}':
- get:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Linode's Managed Settings View
- description: |
- Returns a single Linode's Managed settings.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: getManagedLinodeSetting
- x-linode-cli-action: linode-setting-view
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: The requested Linode's Managed settings.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedLinodeSettings'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/linode-settings/123
- - lang: CLI
- source: |
- linode-cli managed linode-setting-view 123
- parameters:
- - name: linodeId
- in: path
- required: true
- description: The Linode ID whose settings we are accessing.
- schema:
- type: integer
- put:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Linode's Managed Settings Update
- description: |
- Updates a single Linode's Managed settings.
- This command can only be accessed by the unrestricted users of an account.
- operationId: updateManagedLinodeSetting
- x-linode-cli-action: linode-setting-update
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
- requestBody:
- description: The settings to update.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ManagedLinodeSettings'
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List managed services
+ tags:
+ - Services
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed services-list
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: services-list
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/services.yaml
+ path-info: /{apiVersion}/managed/services
+ x-linode-cli-command: managed
+ /managed/services/{serviceId}:
+ get:
+ description: 'Returns information about a single Managed Service on your Account.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-managed-service
+ operationId: get-managed-service
responses:
'200':
- description: Settings updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedLinodeSettings'
+ additionalProperties: false
+ description: A service that Linode is monitoring as part of your Managed
+ services. If issues are detected with this service, a ManagedIssue
+ will be opened and, optionally, Linode special forces will attempt
+ to resolve the Issue.
+ properties:
+ address:
+ description: The URL at which this Service is monitored. URL parameters
+ such as `?no-cache=1` are preserved. URL fragments/anchors such
+ as `#monitor` are __not__ preserved.
+ example: https://example.org
+ format: url
+ maxLength: 100
+ minLength: 3
+ type: string
+ x-linode-cli-display: 5
+ body:
+ description: What to expect to find in the response body for the
+ Service to be considered up.
+ example: it worked
+ maxLength: 100
+ minLength: 0
+ nullable: true
+ type: string
+ consultation_group:
+ description: The group of ManagedContacts who should be notified
+ or consulted with when an Issue is detected.
+ example: on-call
+ maxLength: 50
+ minLength: 0
+ type: string
+ x-linode-cli-display: 6
+ created:
+ description: __Read-only__ When this Managed Service was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ credentials:
+ description: An array of ManagedCredential IDs that should be
+ used when attempting to resolve issues with this Service.
+ items:
+ example: 9991
+ type: integer
+ type: array
+ id:
+ description: __Read-only__ This Service's unique ID.
+ example: 9944
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The label for this Service. This is for display purposes
+ only.
+ example: prod-1
+ maxLength: 64
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_ \.]{3,64}'
+ type: string
+ x-linode-cli-display: 4
+ notes:
+ description: Any information relevant to the Service that Linode
+ special forces should know when attempting to resolve Issues.
+ example: The service name is my-cool-application
+ nullable: true
+ type: string
+ region:
+ description: The Region in which this Service is located. This
+ is required if address is a private IP, and may not be set otherwise.
+ example: null
+ nullable: true
+ type: string
+ service_type:
+ description: How this Service is monitored.
+ enum:
+ - url
+ - tcp
+ example: url
+ type: string
+ x-linode-cli-display: 3
+ status:
+ description: __Read-only__ The current status of this Service.
+ enum:
+ - disabled
+ - pending
+ - ok
+ - problem
+ example: ok
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ disabled: red
+ ok: green
+ x-linode-cli-display: 2
+ timeout:
+ description: How long to wait, in seconds, for a response before
+ considering the Service to be down.
+ example: 30
+ maximum: 255
+ minimum: 1
+ type: integer
+ updated:
+ description: __Read-only__ When this Managed Service was last
+ updated.
+ example: '2018-03-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/managed-service.yaml
+ x-example:
+ x-ref: ../examples/get-managed-service-200.json
+ description: The requested Managed Service.
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": "203.0.113.1",
- "port": 22
- }
- }' \
- https://api.linode.com/v4/managed/linode-settings/123
- - lang: CLI
- source: |
- linode-cli managed linode-setting-update \
- 7833234 \
- --ssh.access true \
- --ssh.user linode \
- --ssh.port 22 \
- --ssh.ip 203.0.113.1
- parameters:
- - name: linodeId
- in: path
- required: true
- description: The Linode ID whose settings we are accessing.
- schema:
- type: integer
- /managed/services:
- 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.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: getManagedServices
- x-linode-cli-action: services-list
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: A paginated list of Managed Services
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
items:
- $ref: '#/components/schemas/ManagedService'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/services
- - lang: CLI
- source: |
- linode-cli managed services-list
- post:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Service Create
- description: |
- Creates a Managed Service. Linode Managed will begin monitoring this
- service and reporting and attempting to resolve any Issues.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: createManagedService
- x-linode-cli-action: service-create
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: Get a managed service
+ tags:
+ - Services
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed service-view 9994
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: service-view
+ x-linode-grant: unrestricted only
+ put:
+ description: 'Updates information about a Managed Service.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-managed-service
+ operationId: put-managed-service
requestBody:
- description: Information about the service to monitor.
content:
application/json:
schema:
- required:
- - label
- - service_type
- - address
- - timeout
- allOf:
- - $ref: '#/components/schemas/ManagedService'
+ additionalProperties: false
+ description: A service that Linode is monitoring as part of your Managed
+ services. If issues are detected with this service, a ManagedIssue
+ will be opened and, optionally, Linode special forces will attempt
+ to resolve the Issue.
+ properties:
+ address:
+ description: The URL at which this Service is monitored. URL parameters
+ such as `?no-cache=1` are preserved. URL fragments/anchors such
+ as `#monitor` are __not__ preserved.
+ example: '{{address}}'
+ format: url
+ maxLength: 100
+ minLength: 3
+ type: string
+ x-linode-cli-display: 5
+ body:
+ description: What to expect to find in the response body for the
+ Service to be considered up.
+ example: '{{body}}'
+ maxLength: 100
+ minLength: 0
+ nullable: true
+ type: string
+ consultation_group:
+ description: The group of ManagedContacts who should be notified
+ or consulted with when an Issue is detected.
+ example: '{{consultation_group}}'
+ maxLength: 50
+ minLength: 0
+ type: string
+ x-linode-cli-display: 6
+ created:
+ description: __Read-only__ When this Managed Service was created.
+ example: '{{created}}'
+ format: date-time
+ readOnly: true
+ type: string
+ credentials:
+ description: An array of ManagedCredential IDs that should be used
+ when attempting to resolve issues with this Service.
+ items:
+ example: 9991
+ type: integer
+ type: array
+ id:
+ description: __Read-only__ This Service's unique ID.
+ example: '{{id}}'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The label for this Service. This is for display purposes
+ only.
+ example: '{{label}}'
+ maxLength: 64
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_ \.]{3,64}'
+ type: string
+ x-linode-cli-display: 4
+ notes:
+ description: Any information relevant to the Service that Linode
+ special forces should know when attempting to resolve Issues.
+ example: '{{notes}}'
+ nullable: true
+ type: string
+ region:
+ description: The Region in which this Service is located. This is
+ required if address is a private IP, and may not be set otherwise.
+ example: '{{region}}'
+ nullable: true
+ type: string
+ service_type:
+ description: How this Service is monitored.
+ enum:
+ - url
+ - tcp
+ example: '{{service_type}}'
+ type: string
+ x-linode-cli-display: 3
+ status:
+ description: __Read-only__ The current status of this Service.
+ enum:
+ - disabled
+ - pending
+ - ok
+ - problem
+ example: '{{status}}'
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ disabled: red
+ ok: green
+ x-linode-cli-display: 2
+ timeout:
+ description: How long to wait, in seconds, for a response before
+ considering the Service to be down.
+ example: '{{timeout}}'
+ maximum: 255
+ minimum: 1
+ type: integer
+ updated:
+ description: __Read-only__ When this Managed Service was last updated.
+ example: '{{updated}}'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/managed-service.yaml
+ x-example:
+ x-ref: ../examples/put-managed-service.json
+ description: The fields to update.
+ required: true
responses:
'200':
- description: Service created.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedService'
+ additionalProperties: false
+ description: A service that Linode is monitoring as part of your Managed
+ services. If issues are detected with this service, a ManagedIssue
+ will be opened and, optionally, Linode special forces will attempt
+ to resolve the Issue.
+ properties:
+ address:
+ description: The URL at which this Service is monitored. URL parameters
+ such as `?no-cache=1` are preserved. URL fragments/anchors such
+ as `#monitor` are __not__ preserved.
+ example: https://example.org
+ format: url
+ maxLength: 100
+ minLength: 3
+ type: string
+ x-linode-cli-display: 5
+ body:
+ description: What to expect to find in the response body for the
+ Service to be considered up.
+ example: it worked
+ maxLength: 100
+ minLength: 0
+ nullable: true
+ type: string
+ consultation_group:
+ description: The group of ManagedContacts who should be notified
+ or consulted with when an Issue is detected.
+ example: on-call
+ maxLength: 50
+ minLength: 0
+ type: string
+ x-linode-cli-display: 6
+ created:
+ description: __Read-only__ When this Managed Service was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ credentials:
+ description: An array of ManagedCredential IDs that should be
+ used when attempting to resolve issues with this Service.
+ items:
+ example: 9991
+ type: integer
+ type: array
+ id:
+ description: __Read-only__ This Service's unique ID.
+ example: 9944
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The label for this Service. This is for display purposes
+ only.
+ example: prod-1
+ maxLength: 64
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_ \.]{3,64}'
+ type: string
+ x-linode-cli-display: 4
+ notes:
+ description: Any information relevant to the Service that Linode
+ special forces should know when attempting to resolve Issues.
+ example: The service name is my-cool-application
+ nullable: true
+ type: string
+ region:
+ description: The Region in which this Service is located. This
+ is required if address is a private IP, and may not be set otherwise.
+ example: null
+ nullable: true
+ type: string
+ service_type:
+ description: How this Service is monitored.
+ enum:
+ - url
+ - tcp
+ example: url
+ type: string
+ x-linode-cli-display: 3
+ status:
+ description: __Read-only__ The current status of this Service.
+ enum:
+ - disabled
+ - pending
+ - ok
+ - problem
+ example: ok
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ disabled: red
+ ok: green
+ x-linode-cli-display: 2
+ timeout:
+ description: How long to wait, in seconds, for a response before
+ considering the Service to be down.
+ example: 30
+ maximum: 255
+ minimum: 1
+ type: integer
+ updated:
+ description: __Read-only__ When this Managed Service was last
+ updated.
+ example: '2018-03-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/managed-service.yaml
+ x-example:
+ x-ref: ../examples/get-managed-service-200.json
+ description: Service updated successfully.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "service_type": "url",
- "label": "prod-1",
- "address": "https://example.org",
- "timeout": 30,
- "body": "it worked",
- "consultation_group": "on-call",
- "notes": "The service name is my-cool-application",
- "credentials": [
- 9991
- ]
- }' \
- https://api.linode.com/v4/managed/services
- - lang: CLI
- source: |
- linode-cli managed service-create \
- --service_type url \
- --label prod-1 \
- --address "https://example.org" \
- --timeout 30 \
- --body "it worked" \
- --consultation_group on-call \
- --notes "The service name is \
- my-cool-application" \
- --credentials 9991
- '/managed/services/{serviceId}':
- get:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Service View
- description: |
- Returns information about a single Managed Service on your Account.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: getManagedService
- x-linode-cli-action: service-view
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: The requested Managed Service.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedService'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/services/9994
- - lang: CLI
- source: |
- linode-cli managed service-view 9994
- parameters:
- - name: serviceId
- in: path
- required: true
- description: The ID of the Managed Service to access.
- schema:
- type: integer
- put:
- x-linode-grant: unrestricted only
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Update a managed service
tags:
- - Managed
- summary: Managed Service Update
- description: |
- Updates information about a Managed Service.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: updateManagedService
+ - Services
+ x-akamai:
+ tabs:
+ - syntax: "linode-cli managed service-update 9994 \\\n --service_type url\
+ \ \\\n --label prod-1 \\\n --address \"https://example.org\" \\\n --timeout\
+ \ 30 \\\n --body \"it worked\" \\\n --consultation_group on-call \\\n\
+ \ --notes \"The service name is my-cool-application\" \\\n --credentials\
+ \ 9991"
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
x-linode-cli-action: service-update
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
- requestBody:
- description: The fields to update.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ManagedService'
+ x-linode-grant: unrestricted only
+ delete:
+ description: 'Deletes a Managed Service. This service will no longer be monitored
+ by Linode Managed.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-managed-service
+ operationId: delete-managed-service
responses:
'200':
- description: Service updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedService'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-managed-service-200.json
+ description: Service deleted successfully.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "service_type": "url",
- "label": "prod-1",
- "address": "https://example.org",
- "timeout": 30,
- "body": "it worked",
- "consultation_group": "on-call",
- "notes": "The service name is my-cool-application",
- "credentials": [
- 9991
- ]
- }' \
- https://api.linode.com/v4/managed/services/9994
- - lang: CLI
- source: |
- linode-cli managed service-update 9994 \
- --service_type url \
- --label prod-1 \
- --address "https://example.org" \
- --timeout 30 \
- --body "it worked" \
- --consultation_group on-call \
- --notes "The service name is my-cool-application" \
- --credentials 9991
- parameters:
- - name: serviceId
- in: path
- required: true
- description: The ID of the Managed Service to access.
- schema:
- type: integer
- delete:
- x-linode-grant: unrestricted only
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Delete a managed service
tags:
- - Managed
- summary: Managed Service Delete
- description: |
- Deletes a Managed Service. This service will no longer be monitored by
- Linode Managed.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: deleteManagedService
+ - Services
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed service-delete 9994
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
x-linode-cli-action: service-delete
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The ID of the Managed Service to access.
+ example: '{{serviceId}}'
+ in: path
+ name: serviceId
+ required: true
+ schema:
+ example: 429
+ type: integer
+ x-akamai:
+ file-path: parameters/service-id-path-d31c71b2.yaml
+ x-akamai:
+ file-path: paths/service.yaml
+ path-info: /{apiVersion}/managed/services/{serviceId}
+ x-linode-cli-command: managed
+ /managed/services/{serviceId}/disable:
+ post:
+ description: 'Temporarily disables monitoring of a Managed Service.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-disable-managed-service
+ operationId: post-disable-managed-service
responses:
'200':
- description: Service deleted successfully.
content:
application/json:
schema:
+ additionalProperties: false
+ description: A service that Linode is monitoring as part of your Managed
+ services. If issues are detected with this service, a ManagedIssue
+ will be opened and, optionally, Linode special forces will attempt
+ to resolve the Issue.
+ properties:
+ address:
+ description: The URL at which this Service is monitored. URL parameters
+ such as `?no-cache=1` are preserved. URL fragments/anchors such
+ as `#monitor` are __not__ preserved.
+ example: https://example.org
+ format: url
+ maxLength: 100
+ minLength: 3
+ type: string
+ x-linode-cli-display: 5
+ body:
+ description: What to expect to find in the response body for the
+ Service to be considered up.
+ example: it worked
+ maxLength: 100
+ minLength: 0
+ nullable: true
+ type: string
+ consultation_group:
+ description: The group of ManagedContacts who should be notified
+ or consulted with when an Issue is detected.
+ example: on-call
+ maxLength: 50
+ minLength: 0
+ type: string
+ x-linode-cli-display: 6
+ created:
+ description: __Read-only__ When this Managed Service was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ credentials:
+ description: An array of ManagedCredential IDs that should be
+ used when attempting to resolve issues with this Service.
+ items:
+ example: 9991
+ type: integer
+ type: array
+ id:
+ description: __Read-only__ This Service's unique ID.
+ example: 9944
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The label for this Service. This is for display purposes
+ only.
+ example: prod-1
+ maxLength: 64
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_ \.]{3,64}'
+ type: string
+ x-linode-cli-display: 4
+ notes:
+ description: Any information relevant to the Service that Linode
+ special forces should know when attempting to resolve Issues.
+ example: The service name is my-cool-application
+ nullable: true
+ type: string
+ region:
+ description: The Region in which this Service is located. This
+ is required if address is a private IP, and may not be set otherwise.
+ example: null
+ nullable: true
+ type: string
+ service_type:
+ description: How this Service is monitored.
+ enum:
+ - url
+ - tcp
+ example: url
+ type: string
+ x-linode-cli-display: 3
+ status:
+ description: __Read-only__ The current status of this Service.
+ enum:
+ - disabled
+ - pending
+ - ok
+ - problem
+ example: ok
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ disabled: red
+ ok: green
+ x-linode-cli-display: 2
+ timeout:
+ description: How long to wait, in seconds, for a response before
+ considering the Service to be down.
+ example: 30
+ maximum: 255
+ minimum: 1
+ type: integer
+ updated:
+ description: __Read-only__ When this Managed Service was last
+ updated.
+ example: '2018-03-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
type: object
+ x-akamai:
+ file-path: schemas/managed-service.yaml
+ x-example:
+ x-ref: ../examples/post-disable-managed-service-200.json
+ description: Service disabled.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/managed/services/9994
- - lang: CLI
- source: |
- linode-cli managed service-delete 9994
- parameters:
- - name: serviceId
- in: path
- required: true
- description: The ID of the Managed Service to access.
- schema:
- type: integer
- '/managed/services/{serviceId}/disable':
- post:
- x-linode-grant: unrestricted only
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Disable a managed service
tags:
- - Managed
- summary: Managed Service Disable
- description: |
- Temporarily disables monitoring of a Managed Service.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: disableManagedService
+ - Services
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed service-disable 9994
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
x-linode-cli-action: service-disable
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The ID of the Managed Service to disable.
+ example: '{{serviceId}}'
+ in: path
+ name: serviceId
+ required: true
+ schema:
+ example: 429
+ type: integer
+ x-akamai:
+ file-path: parameters/service-id-path-67e33f47.yaml
+ x-akamai:
+ file-path: paths/disable.yaml
+ path-info: /{apiVersion}/managed/services/{serviceId}/disable
+ x-linode-cli-command: managed
+ /managed/services/{serviceId}/enable:
+ post:
+ description: 'Enables monitoring of a Managed Service.
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-enable-managed-service
+ operationId: post-enable-managed-service
responses:
'200':
- description: Service disabled.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedService'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/managed/services/9994/disable
- - lang: CLI
- source: |
- linode-cli managed service-disable 9994
- parameters:
- - name: serviceId
- in: path
- required: true
- description: The ID of the Managed Service to disable.
- schema:
- type: integer
- '/managed/services/{serviceId}/enable':
- post:
- x-linode-grant: unrestricted only
+ additionalProperties: false
+ description: A service that Linode is monitoring as part of your Managed
+ services. If issues are detected with this service, a ManagedIssue
+ will be opened and, optionally, Linode special forces will attempt
+ to resolve the Issue.
+ properties:
+ address:
+ description: The URL at which this Service is monitored. URL parameters
+ such as `?no-cache=1` are preserved. URL fragments/anchors such
+ as `#monitor` are __not__ preserved.
+ example: https://example.org
+ format: url
+ maxLength: 100
+ minLength: 3
+ type: string
+ x-linode-cli-display: 5
+ body:
+ description: What to expect to find in the response body for the
+ Service to be considered up.
+ example: it worked
+ maxLength: 100
+ minLength: 0
+ nullable: true
+ type: string
+ consultation_group:
+ description: The group of ManagedContacts who should be notified
+ or consulted with when an Issue is detected.
+ example: on-call
+ maxLength: 50
+ minLength: 0
+ type: string
+ x-linode-cli-display: 6
+ created:
+ description: __Read-only__ When this Managed Service was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ credentials:
+ description: An array of ManagedCredential IDs that should be
+ used when attempting to resolve issues with this Service.
+ items:
+ example: 9991
+ type: integer
+ type: array
+ id:
+ description: __Read-only__ This Service's unique ID.
+ example: 9944
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The label for this Service. This is for display purposes
+ only.
+ example: prod-1
+ maxLength: 64
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_ \.]{3,64}'
+ type: string
+ x-linode-cli-display: 4
+ notes:
+ description: Any information relevant to the Service that Linode
+ special forces should know when attempting to resolve Issues.
+ example: The service name is my-cool-application
+ nullable: true
+ type: string
+ region:
+ description: The Region in which this Service is located. This
+ is required if address is a private IP, and may not be set otherwise.
+ example: null
+ nullable: true
+ type: string
+ service_type:
+ description: How this Service is monitored.
+ enum:
+ - url
+ - tcp
+ example: url
+ type: string
+ x-linode-cli-display: 3
+ status:
+ description: __Read-only__ The current status of this Service.
+ enum:
+ - disabled
+ - pending
+ - ok
+ - problem
+ example: ok
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: yellow
+ disabled: red
+ ok: green
+ x-linode-cli-display: 2
+ timeout:
+ description: How long to wait, in seconds, for a response before
+ considering the Service to be down.
+ example: 30
+ maximum: 255
+ minimum: 1
+ type: integer
+ updated:
+ description: __Read-only__ When this Managed Service was last
+ updated.
+ example: '2018-03-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/managed-service.yaml
+ x-example:
+ x-ref: ../examples/post-enable-managed-service-200.json
+ description: Service enabled.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Enable a managed service
tags:
- - Managed
- summary: Managed Service Enable
- description: |
- Enables monitoring of a Managed Service.
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: enableManagedService
+ - Services
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed service-enable 9994
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
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
- parameters:
- - name: serviceId
- in: path
- required: true
- description: The ID of the Managed Service to enable.
- schema:
- type: integer
+ x-linode-grant: unrestricted only
+ parameters:
+ - description: The ID of the Managed Service to enable.
+ example: '{{serviceId}}'
+ in: path
+ name: serviceId
+ required: true
+ schema:
+ example: 429
+ type: integer
+ x-akamai:
+ file-path: parameters/service-id-path-ea3ecd21.yaml
+ x-akamai:
+ file-path: paths/service-enable.yaml
+ path-info: /{apiVersion}/managed/services/{serviceId}/enable
+ x-linode-cli-command: managed
/managed/stats:
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
-
- This command can only be accessed by the unrestricted users of an account.
- operationId: getManagedStats
- x-linode-cli-action: stats-list
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
+ 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
+
+
+ This operation can only be accessed by the unrestricted users of an account.
+
+
+ [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)'
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-managed-stats
+ operationId: get-managed-stats
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
+ properties:
+ cpu:
+ description: CPU usage stats from the last 24 hours.
+ items:
+ description: A stat data point.
+ properties:
+ x:
+ description: '**Read-only** A stats graph data point.'
+ example: 11513761600000
+ readOnly: true
+ type: integer
+ y:
+ description: '**Read-only** A stats graph data point.'
+ example: 29.94
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ disk:
+ description: Disk usage stats from the last 24 hours.
+ items:
+ description: A stat data point.
+ properties:
+ x:
+ description: '**Read-only** A stats graph data point.'
+ example: 11513761600000
+ readOnly: true
+ type: integer
+ y:
+ description: '**Read-only** A stats graph data point.'
+ example: 29.94
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ net_in:
+ description: Inbound network traffic stats from the last 24
+ hours.
+ items:
+ description: A stat data point.
+ properties:
+ x:
+ description: '**Read-only** A stats graph data point.'
+ example: 11513761600000
+ readOnly: true
+ type: integer
+ y:
+ description: '**Read-only** A stats graph data point.'
+ example: 29.94
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ net_out:
+ description: Outbound network traffic stats from the last
+ 24 hours.
+ items:
+ description: A stat data point.
+ properties:
+ x:
+ description: '**Read-only** A stats graph data point.'
+ example: 11513761600000
+ readOnly: true
+ type: integer
+ y:
+ description: '**Read-only** A stats graph data point.'
+ example: 29.94
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ swap:
+ description: Swap usage stats from the last 24 hours.
+ items:
+ description: A stat data point.
+ properties:
+ x:
+ description: '**Read-only** A stats graph data point.'
+ example: 11513761600000
+ readOnly: true
+ type: integer
+ y:
+ description: '**Read-only** A stats graph data point.'
+ example: 29.94
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ '0':
+ example: Graphs are not yet available.
+ type: string
+ '1':
+ example: Graphs are not yet available.
+ type: string
+ '2':
+ example: Graphs are not yet available.
+ type: string
+ description: Stats data that can either be detailed metrics or
+ error messages if unavailable.
+ type: object
+ x-example:
+ x-ref: ../examples/get-managed-stats-200.json
+ description: A list of Managed Stats from the last 24 hours.
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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: The field in the request that caused this error.
+ This may be a path, separated by periods in the case of
+ nested fields. In some cases this may come back as `null`
+ if the error is not specific to any single element of
+ the request.
+ example: fieldname
+ type: string
+ reason:
+ description: What happened to cause this error. In most
+ cases, this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will be
+ instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete the
+ request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List managed stats
+ tags:
+ - Statistics
+ x-akamai:
+ tabs:
+ - syntax: linode-cli managed stats-list
+ title: CLI
+ url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: stats-list
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/managed-stats.yaml
+ path-info: /{apiVersion}/managed/stats
+ x-linode-cli-command: managed
+components:
+ x-stackQL-resources:
+ contacts:
+ id: linode.managed.contacts
+ name: contacts
+ title: Contacts
+ methods:
+ post_managed_contact:
+ operation:
+ $ref: '#/paths/~1managed~1contacts/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_managed_contacts:
+ operation:
+ $ref: '#/paths/~1managed~1contacts/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_managed_contact:
+ operation:
+ $ref: '#/paths/~1managed~1contacts~1{contactId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_managed_contact:
+ operation:
+ $ref: '#/paths/~1managed~1contacts~1{contactId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_managed_contact:
+ operation:
+ $ref: '#/paths/~1managed~1contacts~1{contactId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/contacts/methods/get_managed_contact'
+ - $ref: '#/components/x-stackQL-resources/contacts/methods/get_managed_contacts'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/contacts/methods/post_managed_contact'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/contacts/methods/delete_managed_contact'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/contacts/methods/put_managed_contact'
+ credentials:
+ id: linode.managed.credentials
+ name: credentials
+ title: Credentials
+ methods:
+ post_managed_credential:
+ operation:
+ $ref: '#/paths/~1managed~1credentials/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_managed_credentials:
+ operation:
+ $ref: '#/paths/~1managed~1credentials/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_managed_credential:
+ operation:
+ $ref: '#/paths/~1managed~1credentials~1{credentialId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_managed_credential:
+ operation:
+ $ref: '#/paths/~1managed~1credentials~1{credentialId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_managed_credential_revoke:
+ operation:
+ $ref: '#/paths/~1managed~1credentials~1{credentialId}~1revoke/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_managed_credential_username_password:
+ operation:
+ $ref: '#/paths/~1managed~1credentials~1{credentialId}~1update/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/credentials/methods/get_managed_credential'
+ - $ref: '#/components/x-stackQL-resources/credentials/methods/get_managed_credentials'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/credentials/methods/post_managed_credential'
+ update: []
+ delete: []
+ replace:
+ - $ref: '#/components/x-stackQL-resources/credentials/methods/put_managed_credential'
+ managed_ssh_keys:
+ id: linode.managed.managed_ssh_keys
+ name: managed_ssh_keys
+ title: Managed Ssh Keys
+ methods:
+ get_managed_ssh_key:
+ operation:
+ $ref: '#/paths/~1managed~1credentials~1sshkey/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/managed_ssh_keys/methods/get_managed_ssh_key'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ issues:
+ id: linode.managed.issues
+ name: issues
+ title: Issues
+ methods:
+ get_managed_issues:
+ operation:
+ $ref: '#/paths/~1managed~1issues/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_managed_issue:
+ operation:
+ $ref: '#/paths/~1managed~1issues~1{issueId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/issues/methods/get_managed_issue'
+ - $ref: '#/components/x-stackQL-resources/issues/methods/get_managed_issues'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ linode_settings:
+ id: linode.managed.linode_settings
+ name: linode_settings
+ title: Linode Settings
+ methods:
+ get_managed_linode_settings:
+ operation:
+ $ref: '#/paths/~1managed~1linode-settings/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/linode_settings/methods/get_managed_linode_settings'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ settings:
+ id: linode.managed.settings
+ name: settings
+ title: Settings
+ methods:
+ get_managed_linode_setting:
+ operation:
+ $ref: '#/paths/~1managed~1linode-settings~1{linodeId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_managed_linode_setting:
+ operation:
+ $ref: '#/paths/~1managed~1linode-settings~1{linodeId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/settings/methods/get_managed_linode_setting'
+ insert: []
+ update: []
+ delete: []
+ replace:
+ - $ref: '#/components/x-stackQL-resources/settings/methods/put_managed_linode_setting'
+ services:
+ id: linode.managed.services
+ name: services
+ title: Services
+ methods:
+ post_managed_service:
+ operation:
+ $ref: '#/paths/~1managed~1services/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_managed_services:
+ operation:
+ $ref: '#/paths/~1managed~1services/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_managed_service:
+ operation:
+ $ref: '#/paths/~1managed~1services~1{serviceId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_managed_service:
+ operation:
+ $ref: '#/paths/~1managed~1services~1{serviceId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_managed_service:
+ operation:
+ $ref: '#/paths/~1managed~1services~1{serviceId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_disable_managed_service:
+ operation:
+ $ref: '#/paths/~1managed~1services~1{serviceId}~1disable/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_enable_managed_service:
+ operation:
+ $ref: '#/paths/~1managed~1services~1{serviceId}~1enable/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/services/methods/get_managed_service'
+ - $ref: '#/components/x-stackQL-resources/services/methods/get_managed_services'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/services/methods/post_managed_service'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/services/methods/delete_managed_service'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/services/methods/put_managed_service'
+ statistics:
+ id: linode.managed.statistics
+ name: statistics
+ title: Statistics
+ methods:
+ get_managed_stats:
+ operation:
+ $ref: '#/paths/~1managed~1stats/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/statistics/methods/get_managed_stats'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+servers:
+- url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/monitor.yaml b/providers/src/linode/v00.00.00000/services/monitor.yaml
new file mode 100644
index 00000000..e14fff5d
--- /dev/null
+++ b/providers/src/linode/v00.00.00000/services/monitor.yaml
@@ -0,0 +1,6258 @@
+openapi: 3.0.1
+info:
+ title: monitor API
+ description: linode monitor API
+ version: 4.208.1
+paths:
+ /monitor/alert-channels:
+ get:
+ description: >-
+ __Beta__ Returns all of the monitoring alert channels available to your
+ user.
+
+
+ > 📘
+
+ >
+
+ > - This operation is beta. Call it using the `v4beta` path in its URL.
+
+ >
+
+ > -
+ [Filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting)
+ is supported for specific objects, labeled as **Filterable**. However,
+ only the `+and` and `+or` operators are supported, and you can't nest
+ filter operators. __OAuth scopes__.
+
+ ```
+ monitor:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+
+
+ -
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-alert-channels
+ operationId: get-alert-channels
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - alerts:
+ - id: 10000
+ label: High Memory Usage Plan Dedicated
+ type: alerts-definitions
+ url: /monitor/alerts-definitions/10000
+ - id: 10001
+ label: High Memory Usage Plan Shared
+ type: alerts-definitions
+ url: /monitor/alerts-definitions/10001
+ channel_type: email
+ content:
+ email:
+ email_addresses:
+ - Users-with-read-write-access-to-resources
+ created: '2025-03-20T01:41:09'
+ created_by: system
+ id: 10000
+ label: Read-Write Channel
+ type: system
+ updated: '2025-03-20T01:41:09'
+ updated_by: system
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ properties:
+ alerts:
+ description: >-
+ Details about the alerts where you've applied this
+ alert channel.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: The unique identifier for the alert.
+ example: 10000
+ type: integer
+ label:
+ description: The name of the alert.
+ example: High Memory Usage Plan Dedicated
+ type: string
+ type:
+ description: The entity type of the alert.
+ example: alerts-definitions
+ type: string
+ url:
+ description: The URL to access the alert.
+ example: /monitor/alerts-definitions/10000
+ format: url
+ type: string
+ type: object
+ type: array
+ channel_type:
+ description: >-
+ The type of notification used with the alert
+ channel. Currently, only `email` is supported.
+ enum:
+ - email
+ example: email
+ type: string
+ content:
+ additionalProperties: false
+ description: The configuration of the alert channel.
+ properties:
+ email:
+ additionalProperties: false
+ description: >-
+ An alert channel set up to deliver an email for
+ an alert.
+ properties:
+ email_addresses:
+ description: >-
+ Email addresses that receive the message for
+ the alert. For a `user` alert, these are the
+ email addresses you defined in the alert
+ channel. For a `system` alert, this is
+ returned as
+ `Users-with-read-write-access-to-resources`.
+ This represents all users on your account
+ that have read-write access to the object
+ that triggered the alert.
+
+
+ > 📘
+
+ >
+
+ > Currently, only `system` alert channels
+ are supported for use.
+ example:
+ - Users-with-read-write-access-to-resources
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ created:
+ description: When the alert channel was created.
+ example: '2025-03-20 01:41:09'
+ format: date-time
+ type: string
+ created_by:
+ description: >-
+ For a `user` alert channel, this is the user on your
+ account that created it. For a `system` alert
+ channel, this value is returned as `system`.
+
+
+ > 📘
+
+ >
+
+ > Currently, only `system` alert channels are
+ supported for use. This value will always return a
+ value of `system`.
+ example: system
+ type: string
+ id:
+ description: The unique identifier for the alert channel.
+ example: 10000
+ type: integer
+ x-linode-filterable: true
+ label:
+ description: >-
+ The name of the alert channel, used to display it in
+ Akamai Cloud Manager.
+ example: Read-Write Channel
+ type: string
+ x-linode-filterable: true
+ type:
+ description: >-
+ The type of alert channel. This can be either
+ `system` for a channel provided by Akamai, or `user`
+ for one you've created.
+
+
+ > 📘
+
+ >
+
+ > Currently, only `system` alert channels are
+ supported for use. This value will always return a
+ value of `system`.
+ enum:
+ - system
+ - user
+ example: system
+ type: string
+ updated:
+ description: >-
+ When the alert channel was last updated. This is the
+ same as `created` if the channel hasn't been
+ updated.
+ example: '2025-03-20 01:41:09'
+ format: date-time
+ type: string
+ updated_by:
+ description: >-
+ For a `user` alert channel, this is the user on your
+ account that last updated it. For a `system` alert
+ channel, this is returned as `system`. If it hasn't
+ been updated, this value is the same as
+ `created_by`.
+
+
+ > 📘
+
+ >
+
+ > Currently, only `system` alert channels are
+ supported for use. This value will always return a
+ value of `system`.
+ example: system
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-alert-channel-response.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-alert-channels-response.yaml
+ description: Returns a paginated list of alerts channels.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - monitor:read_only
+ summary: List alert channels
+ tags:
+ - Alerts
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: monitor:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ - syntax: linode-cli alerts channels-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: channels-list
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/aclp-alert-channels.yaml
+ path-info: /monitor/alert-channels
+ x-linode-cli-command: alerts
+ /monitor/alert-definitions:
+ get:
+ description: >-
+ __Beta__ Returns all available alert definitions on your account.
+
+
+ > 📘
+
+ >
+
+ > - This operation is beta. Call it using the `v4beta` path in its URL.
+
+ >
+
+ > -
+ [Filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting)
+ is supported for specific objects, labeled as **Filterable**. However,
+ only the `+and` and `+or` operators are supported, and you can't nest
+ filter operators. __OAuth scopes__.
+
+ ```
+ monitor:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+
+
+ -
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-alert-definitions
+ operationId: get-alert-definitions
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - alert_channels:
+ - id: 10000
+ label: Read-Write Channel
+ type: alert-channels
+ url: /monitor/alert-channels/10000
+ class: dedicated
+ created: '2025-03-20T01:42:11'
+ created_by: system
+ description: >-
+ Alert triggers when dedicated plan nodes consistently
+ reach critical memory usage, risking application
+ performance degradation.
+ entity_ids:
+ - '126905'
+ - '126906'
+ - '137435'
+ - '141496'
+ - '190003'
+ - '257625'
+ - '257626'
+ has_more_resources: false
+ id: 10000
+ label: High Memory Usage Plan Dedicated
+ rule_criteria:
+ rules:
+ - aggregate_function: avg
+ dimension_filters:
+ - dimension_label: node_type
+ label: Node Type
+ operator: eq
+ value: primary
+ label: Memory Usage
+ metric: memory_usage
+ operator: gt
+ threshold: 95
+ unit: percent
+ service_type: dbaas
+ severity: 2
+ status: enabled
+ trigger_conditions:
+ criteria_condition: ALL
+ evaluation_period_seconds: 300
+ polling_interval_seconds: 300
+ trigger_occurrences: 3
+ type: system
+ updated: '2025-03-20T01:42:11'
+ updated_by: system
+ - alert_channels:
+ - id: 10000
+ label: Read-Write Channel
+ type: alert-channels
+ url: /monitor/alert-channels/10000
+ class: null
+ created: '2025-03-20T02:15:18'
+ created_by: John Q. Linode
+ description: >-
+ Custom alert set up for high memory usage for shared plan
+ nodes.
+ entity_ids:
+ - '126907'
+ - '126908'
+ - '137436'
+ - '141497'
+ - '190004'
+ - '257627'
+ - '257628'
+ has_more_resources: false
+ id: 10001
+ label: High Memory Usage Plan Shared
+ rule_criteria:
+ rules:
+ - aggregate_function: avg
+ dimension_filters:
+ - dimension_label: node_type
+ label: Node Type
+ operator: eq
+ value: primary
+ label: Memory Usage
+ metric: memory_usage
+ operator: gt
+ threshold: 95
+ unit: percent
+ service_type: dbaas
+ severity: 2
+ status: enabled
+ trigger_conditions:
+ criteria_condition: ALL
+ evaluation_period_seconds: 300
+ polling_interval_seconds: 300
+ trigger_occurrences: 3
+ type: user
+ updated: '2025-03-20T02:15:18'
+ updated_by: John Q. Linode
+ page: 1
+ pages: 1
+ results: 6
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ properties:
+ alert_channels:
+ description: >-
+ The alert channels set up for use with this alert.
+ Run the [List alert
+ channels](https://techdocs.akamai.com/linode-api/reference/get-alert-channels)
+ operation to see all of the available channels.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: >-
+ The unique identifier for this alert channel
+ on your account.
+ example: 10000
+ type: integer
+ label:
+ description: >-
+ The name of the channel, used to display it in
+ Akamai Cloud Manager.
+ example: Read-Write Channel
+ type: string
+ type:
+ description: >-
+ The type of notification used with the
+ channel. For a `user` alert definition, only
+ `email` is supported.
+ enum:
+ - email
+ example: email
+ type: string
+ url:
+ description: >-
+ The URL for the channel that ends in the
+ channel's `id`.
+ example: /monitor/alert-channels/10000
+ format: url
+ type: string
+ type: object
+ type: array
+ class:
+ description: >-
+ The plan type for the Managed Database cluster,
+ either `shared` or `dedicated`. This only applies to
+ a `system` alert for a `service_type` of `dbaas`
+ (Managed Databases). For `user` alerts for `dbaas`,
+ this is returned as `null`.
+ enum:
+ - shared
+ - dedicated
+ example: dedicated
+ nullable: true
+ type: string
+ created:
+ description: When the alert definition was created.
+ example: '2025-03-20 01:42:11'
+ format: date-time
+ type: string
+ created_by:
+ description: >-
+ For a `user` alert definition, this is the user on
+ your account that
+ [created](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type)
+ it. For a `system` alert definition, this is
+ returned as `system`.
+ example: system
+ type: string
+ description:
+ description: An additional description for the alert definition.
+ example: Alert for my PostgreSQL database
+ type: string
+ entity_ids:
+ description: >-
+ The `id` for each individual entity from a
+ `service_type`. Get this value by running the list
+ operation for the appropriate entity. For example,
+ if your entity is one of your PostgreSQL databases,
+ run the [List PostgreSQL Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances)
+ operation and store the `id` for the appropriate
+ database from the response.
+
+
+ > 📘
+
+ >
+
+ > The format `type` for an `entity_id` may vary,
+ based on the Akamai Cloud `service_type`. For
+ example, the `dbaas` service returns an integer
+ value for an `id`, that you'd use for the
+ `entity_id`, while other services may return a
+ string for their `id`. With the Alerts operations,
+ all of these formats are recognized as an
+ `entity_id`, when you include them as a `string`.
+ example:
+ - '126905'
+ - '126906'
+ - '137435'
+ - '141496'
+ - '190003'
+ - '257625'
+ - '257626'
+ items:
+ type: string
+ type: array
+ has_more_resources:
+ description: >-
+ Whether there are additional `entity_ids` associated
+ with the alert for which the user doesn't have at
+ least `read-only` access.
+ example: false
+ type: boolean
+ id:
+ description: The unique identifier for the alert definition.
+ example: 10000
+ type: integer
+ x-linode-filterable: true
+ label:
+ description: >-
+ The name of the alert definition. This is used for
+ display purposes in Akamai Cloud Manager.
+ example: High Memory Usage Plan Dedicated
+ type: string
+ x-linode-filterable: true
+ rule_criteria:
+ additionalProperties: false
+ description: Details for the rules required to trigger the alert.
+ properties:
+ rules:
+ description: >-
+ The individual rules that make up the alert
+ definition.
+ items:
+ additionalProperties: false
+ properties:
+ aggregate_function:
+ description: >-
+ The aggregation function applied to the
+ `metric`. Available values are `avg`,
+ `sum`, `min`, and `max`.
+ enum:
+ - avg
+ - sum
+ - min
+ - max
+ example: avg
+ type: string
+ dimension_filters:
+ description: Dimension filters for the rule.
+ items:
+ additionalProperties: false
+ properties:
+ dimension_label:
+ description: >-
+ The name of the dimension to be used in
+ the filter.
+ example: node_type
+ type: string
+ label:
+ description: >-
+ The name of the dimension filter. Used
+ for display purposes.
+ example: Node Type
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the dimension
+ filter. Available values are `eq` for
+ equal, `neq` for not equal,
+ `startswith`, and `endswith`.
+ enum:
+ - eq
+ - neq
+ - startswith
+ - endswith
+ example: eq
+ type: string
+ value:
+ description: >-
+ The value to compare the
+ `dimension_label` against.
+ example: primary
+ type: string
+ type: object
+ type: array
+ label:
+ description: >-
+ The name of the individual rule. This is
+ used for display purposes in Akamai Cloud
+ Manager.
+ example: Memory Usage
+ type: string
+ metric:
+ description: The metric to query.
+ example: memory_usage
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the metric.
+ Available values are `eq` for equal, `gt`
+ for greater than, `lt` for less than,
+ `gte` for greater than or equal, and `lte`
+ for less than or equal.
+ enum:
+ - eq
+ - gt
+ - lt
+ - gte
+ - lte
+ example: eq
+ type: string
+ threshold:
+ description: >-
+ The predefined value or condition that
+ triggers an alert when met or exceeded.
+ For example, for `avg(cpu_usage) > 80`,
+ the `threshold` is 80.
+ example: 95
+ format: float
+ type: number
+ unit:
+ description: >-
+ The unit of the metric. This can be values
+ like `percent` for percentage or `GB` for
+ gigabyte.
+ enum:
+ - number
+ - byte
+ - second
+ - percent
+ - bit_per_second
+ - millisecond
+ - KB
+ - MB
+ - GB
+ example: percent
+ type: string
+ type: object
+ type: array
+ type: object
+ service_type:
+ description: >-
+ The identifier for the Akamai Cloud Computing
+ service. Use this value to call out the service in
+ other Monitor operations in the API. Currently, only
+ the Managed Databases (`dbaas`) service is
+ supported.
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ severity:
+ description: >-
+ The severity of the alert. Supported values include
+ `3` for info, `2` for low, `1` for medium, and `0`
+ for severe.
+ enum:
+ - 0
+ - 1
+ - 2
+ - 3
+ example: 2
+ type: integer
+ status:
+ description: >-
+ The current status of the alert. This can be either
+ `enabled`, `disabled`, `in progress`, or `failed`.
+ enum:
+ - enabled
+ - disabled
+ - in progress
+ - failed
+ example: enabled
+ type: string
+ x-linode-filterable: true
+ trigger_conditions:
+ additionalProperties: false
+ description: >-
+ The conditions that need to be met to send a
+ notification for the alert.
+ properties:
+ criteria_condition:
+ description: >-
+ Signifies the logical operation applied when
+ multiple metrics are set for an alert
+ definition. For example, if you wanted to apply
+ both `cpu_usage > 90` and `memory_usage > 80`,
+ `ALL` is the `criteria_condition`. Currently,
+ only `ALL` is supported.
+ enum:
+ - ALL
+ example: ALL
+ type: string
+ evaluation_period_seconds:
+ description: >-
+ The time period over which data is collected
+ before evaluating whether the alert definition's
+ `threshold` has been met or exceeded.
+
+
+ > 📘
+
+ >
+
+ > During the beta, only a value of `300` seconds
+ is supported.
+ example: 300
+ type: integer
+ polling_interval_seconds:
+ description: >-
+ The frequency at which the `metric` is checked
+ for a change in state. For example, with
+ `cpu_usage` set as your `metric` and this set to
+ `300`, your `cpu_usage` is checked every 5
+ minutes for some change in its state.
+
+
+ > 📘
+
+ >
+
+ > During the beta, only a value of `300` seconds
+ is supported.
+ example: 300
+ type: integer
+ trigger_occurrences:
+ description: >-
+ The minimum number of consecutive
+ `polling_interval_seconds` periods that the
+ `threshold` needs to be breached to trigger the
+ alert.
+ example: 3
+ type: integer
+ type: object
+ type:
+ description: >-
+ The type of alert. This can be either `user` for an
+ alert specific to the current user, or `system` for
+ one that applies to all users on your account.
+ enum:
+ - user
+ - system
+ example: system
+ type: string
+ x-linode-filterable: true
+ updated:
+ description: >-
+ When the alert definition was last updated. This is
+ the same as `created` if the alert definition hasn't
+ been updated.
+ example: '2025-03-20 01:42:11'
+ format: date-time
+ type: string
+ updated_by:
+ description: >-
+ For a `user` alert definition, this is the user on
+ your account that last
+ [updated](https://techdocs.akamai.com/linode-api/reference/put-alert-definition)
+ it. For a `system` alert definition, this is
+ returned as `system`. If it hasn't been updated,
+ this value is the same as `created_by`.
+ example: system
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-alert-definition-response.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-alert-definitions-response.yaml
+ description: Returns a paginated list of all alert definitions.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - monitor:read_only
+ summary: List alert definitions
+ tags:
+ - Alerts
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: monitor:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ - syntax: linode-cli alerts definitions-list-all
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: definitions-list-all
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/aclp-alert-definitions.yaml
+ path-info: /monitor/alert-definitions
+ x-linode-cli-command: alerts
+ /monitor/dashboards:
+ get:
+ description: >-
+ __Beta__ Returns all available dashboards.
+
+
+ > 📘
+
+ >
+
+ > This operation is beta. Call it using the `v4beta` path in its URL.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-dashboards-all
+ operationId: get-dashboards-all
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - created: '2024-10-10T05:01:58'
+ id: 1
+ label: Resource Usage
+ service_type: dbaas
+ type: standard
+ updated: '2024-10-10T05:01:58'
+ widgets:
+ - aggregate_function: sum
+ chart_type: area
+ color: default
+ label: CPU Usage
+ metric: cpu_usage
+ size: 12
+ unit: '%'
+ y_label: cpu_usage
+ - aggregate_function: sum
+ chart_type: area
+ color: default
+ label: Disk I/O Write
+ metric: write_iops
+ size: 6
+ unit: IOPS
+ y_label: write_iops
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ allOf:
+ - additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ properties:
+ created:
+ description: When the dashboard was created.
+ example: '2024-10-10T05:01:58Z'
+ format: date-time
+ type: string
+ id:
+ description: The unique identifier for the dashboard.
+ example: 1
+ type: integer
+ label:
+ description: >-
+ The name of the dashboard. This is used for
+ display purposes in Akamai Cloud Manager.
+ example: Resource Usage
+ type: string
+ service_type:
+ description: >-
+ The Akamai Cloud Computing service used by this
+ dashboard. Currently, only the Managed Databases
+ (`dbaas`) service is supported.
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ type:
+ description: >-
+ The type of dashboard. Currently, this can only
+ be `standard` for a dashboard that uses default
+ formatting.
+ enum:
+ - standard
+ example: standard
+ type: string
+ updated:
+ description: When the dashboard was last updated.
+ example: '2024-10-12T08:15:37Z'
+ format: date-time
+ type: string
+ widgets:
+ description: The widgets used in the dashboard.
+ items:
+ additionalProperties: false
+ properties:
+ aggregate_function:
+ description: >-
+ The aggregate function for the metric.
+ This defaults to `avg` for average.
+ enum:
+ - min
+ - max
+ - avg
+ - sum
+ - rate
+ example: avg
+ type: string
+ chart_type:
+ description: >-
+ The type of chart used in the widget. This
+ can be `line` for a line chart or `area`
+ for an area chart.
+ enum:
+ - line
+ - area
+ example: line
+ type: string
+ color:
+ description: The color used in the widget.
+ example: red
+ type: string
+ label:
+ description: >-
+ The name of the widget. This is used for
+ display purposes in Akamai Cloud Manager.
+ example: CPU Usage
+ type: string
+ metric:
+ description: The metric to query.
+ example: cpu_usage
+ type: string
+ size:
+ description: >-
+ The size of the widget. This can be `6` or
+ `12` grid units, expressed as strings.
+ enum:
+ - '6'
+ - '12'
+ example: '6'
+ type: string
+ unit:
+ description: >-
+ The unit of the metric. This can be values
+ like `%` for percentage or `GB` for
+ gigabyte.
+ enum:
+ - '%'
+ - Bytes
+ - sec
+ - bps
+ - msec
+ - Bps
+ - KB
+ - MB
+ - GB
+ - rate
+ - percentile
+ - ratio
+ - OPS
+ - IOPS
+ type: string
+ y_label:
+ description: >-
+ The label for the y-axis in the widget's
+ chart.
+ example: Usage
+ type: string
+ type: object
+ type: array
+ required:
+ - id
+ - type
+ - service_type
+ - label
+ - created
+ - updated
+ - widgets
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-dashboard.yaml
+ type: array
+ type: object
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ x-akamai:
+ file-path: schemas/aclp-dashboards.yaml
+ description: Returns a paginated list of dashboards.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - monitor:read_only
+ summary: List dashboards
+ tags:
+ - Metrics
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli monitor dashboards-list-all
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: monitor:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: dashboards-list-all
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/aclp-get-all-dashboards.yaml
+ path-info: /{apiVersion}/monitor/dashboards
+ x-linode-cli-command: monitor
+ /monitor/dashboards/{dashboard_id}:
+ get:
+ description: >-
+ __Beta__ Returns a specific dashboard, based on its unique ID. You can
+ run the [List
+ dashboards](https://techdocs.akamai.com/linode-api/reference/get-dashboards-all)
+ operation to see the ID for all dashboards.
+
+
+ > 📘
+
+ >
+
+ > This operation is beta. Call it using the `v4beta` path in its URL.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-dashboards-by-id
+ operationId: get-dashboards-by-id
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ created: '2024-10-10T05:01:58'
+ id: 1
+ label: Resource Usage
+ service_type: dbaas
+ type: standard
+ updated: '2024-10-10T05:01:58'
+ widgets:
+ - aggregate_function: sum
+ chart_type: area
+ color: default
+ label: CPU Usage
+ metric: cpu_usage
+ size: 12
+ unit: '%'
+ y_label: cpu_usage
+ - aggregate_function: sum
+ chart_type: area
+ color: default
+ label: Available Memory
+ metric: available_memory
+ size: 6
+ unit: GB
+ y_label: available_memory
+ schema:
+ additionalProperties: false
+ properties:
+ created:
+ description: When the dashboard was created.
+ example: '2024-10-10T05:01:58Z'
+ format: date-time
+ type: string
+ id:
+ description: The unique identifier for the dashboard.
+ example: 1
+ type: integer
+ label:
+ description: >-
+ The name of the dashboard. This is used for display
+ purposes in Akamai Cloud Manager.
+ example: Resource Usage
+ type: string
+ service_type:
+ description: >-
+ The Akamai Cloud Computing service used by this dashboard.
+ Currently, only the Managed Databases (`dbaas`) service is
+ supported.
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ type:
+ description: >-
+ The type of dashboard. Currently, this can only be
+ `standard` for a dashboard that uses default formatting.
+ enum:
+ - standard
+ example: standard
+ type: string
+ updated:
+ description: When the dashboard was last updated.
+ example: '2024-10-12T08:15:37Z'
+ format: date-time
+ type: string
+ widgets:
+ description: The widgets used in the dashboard.
+ items:
+ additionalProperties: false
+ properties:
+ aggregate_function:
+ description: >-
+ The aggregate function for the metric. This defaults
+ to `avg` for average.
+ enum:
+ - min
+ - max
+ - avg
+ - sum
+ - rate
+ example: avg
+ type: string
+ chart_type:
+ description: >-
+ The type of chart used in the widget. This can be
+ `line` for a line chart or `area` for an area chart.
+ enum:
+ - line
+ - area
+ example: line
+ type: string
+ color:
+ description: The color used in the widget.
+ example: red
+ type: string
+ label:
+ description: >-
+ The name of the widget. This is used for display
+ purposes in Akamai Cloud Manager.
+ example: CPU Usage
+ type: string
+ metric:
+ description: The metric to query.
+ example: cpu_usage
+ type: string
+ size:
+ description: >-
+ The size of the widget. This can be `6` or `12` grid
+ units, expressed as strings.
+ enum:
+ - '6'
+ - '12'
+ example: '6'
+ type: string
+ unit:
+ description: >-
+ The unit of the metric. This can be values like `%`
+ for percentage or `GB` for gigabyte.
+ enum:
+ - '%'
+ - Bytes
+ - sec
+ - bps
+ - msec
+ - Bps
+ - KB
+ - MB
+ - GB
+ - rate
+ - percentile
+ - ratio
+ - OPS
+ - IOPS
+ type: string
+ y_label:
+ description: The label for the y-axis in the widget's chart.
+ example: Usage
+ type: string
+ type: object
+ type: array
+ required:
+ - id
+ - type
+ - service_type
+ - label
+ - created
+ - updated
+ - widgets
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-dashboard.yaml
+ description: Returns a dashboard.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - monitor:read_only
+ summary: Get a dashboard
+ tags:
+ - Metrics
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli monitor dashboards-view 1
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: monitor:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: dashboards-view
+ x-linode-grant: read_only
+ parameters:
+ - description: ID of the Dashboard
+ example: '{{dashboard_id}}'
+ in: path
+ name: dashboard_id
+ required: true
+ schema:
+ example: 12345
+ type: integer
+ x-akamai:
+ file-path: parameters/dashboard-id.yaml
+ x-akamai:
+ file-path: paths/aclp-get-dashboard-by-id.yaml
+ path-info: /{apiVersion}/monitor/dashboards/{dashboard_id}
+ x-linode-cli-command: monitor
+ /monitor/services:
+ get:
+ description: >-
+ __Beta__ Returns a paginated list of all current supported service
+ types.
+
+
+ > 📘
+
+ >
+
+ > This operation is beta. Call it using the `v4beta` path in its URL.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-monitor-services
+ operationId: get-monitor-services
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - label: Databases
+ service_type: dbaas
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ properties:
+ label:
+ description: >-
+ The full name of Akamai Cloud Computing service.
+ This is used for display purposes in Akamai Cloud
+ Manager.
+ example: Databases
+ type: string
+ service_type:
+ description: >-
+ The identifier for the Akamai Cloud Computing
+ service. Use this value to call out the service in
+ other Monitor operations in the API. Currently, only
+ the Managed Databases (`dbaas`) service is
+ supported.
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ type: object
+ type: array
+ page:
+ description: >-
+ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ type: integer
+ pages:
+ description: >-
+ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ type: integer
+ results:
+ description: The total number of results.
+ example: 1
+ type: integer
+ required:
+ - data
+ - page
+ - pages
+ - results
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-monitor-services.yaml
+ description: Returns a paginated list of metric definitions.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - monitor:read_only
+ summary: List supported service types
+ tags:
+ - Metrics
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli monitor service-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: monitor:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: service-list
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/aclp-get-metric-definitions.yaml
+ path-info: /{apiVersion}/monitor/services
+ x-linode-cli-command: monitor
+ /monitor/services/{service_type}:
+ get:
+ description: >-
+ __Beta__ Returns details for a specific service type. Include the
+ appropriate `service_type` as a path parameter.
+
+
+ > 📘
+
+ >
+
+ > - This operation is beta. Call it using the `v4beta` path in its URL.
+
+ >
+
+ > - Currently, only the Managed Databases (`dbaas`) service type is
+ supported.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-monitor-services-for-service-type
+ operationId: get-monitor-services-for-service-type
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - label: Databases
+ service_type: dbaas
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ properties:
+ label:
+ description: >-
+ The full name of Akamai Cloud Computing service.
+ This is used for display purposes in Akamai Cloud
+ Manager.
+ example: Databases
+ type: string
+ service_type:
+ description: >-
+ The identifier for the Akamai Cloud Computing
+ service. Use this value to call out the service in
+ other Monitor operations in the API. Currently, only
+ the Managed Databases (`dbaas`) service is
+ supported.
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ type: object
+ type: array
+ page:
+ description: >-
+ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ type: integer
+ pages:
+ description: >-
+ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ type: integer
+ results:
+ description: The total number of results.
+ example: 1
+ type: integer
+ required:
+ - data
+ - page
+ - pages
+ - results
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-monitor-services-for-service-type.yaml
+ description: Returns a paginated list of metric definitions.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - monitor:read_only
+ summary: Get details for a supported service type
+ tags:
+ - Metrics
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli monitor service-view dbaas
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: monitor:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: service-view
+ x-linode-grant: read_only
+ parameters:
+ - description: >-
+ __Enum__ The Akamai Cloud Computing service being monitored.
+ Currently, only the Managed Databases (`dbaas`) service type is
+ supported.
+ example: '{{service_type}}'
+ in: path
+ name: service_type
+ required: true
+ schema:
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ x-akamai:
+ file-path: parameters/aclp-service-type.yaml
+ x-akamai:
+ file-path: paths/aclp-get-metric-definition-for-service-type.yaml
+ path-info: /{apiVersion}/monitor/services/{service_type}
+ x-linode-cli-command: monitor
+ /monitor/services/{service_type}/alert-definitions:
+ post:
+ description: >-
+ __Beta__ Create a new alert definition for a specific service type.
+ Include the appropriate `service_type` as a path parameter. These are
+ referred to as `user` alerts. You need `read_only` access to the
+ [scope](https://techdocs.akamai.com/linode-api/reference/oauth-reference)
+ for the selected `service_type`.
+
+
+ > 📘
+
+ >
+
+ > - This operation is beta. Call it using the `v4beta` path in its URL.
+
+ >
+
+ > - Currently, only the Managed Databases (`dbaas`) service type is
+ supported. __OAuth scopes__.
+
+ ```
+ monitor:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+
+
+ -
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type
+ operationId: post-alert-definition-for-service-type
+ requestBody:
+ content:
+ application/json:
+ example:
+ channel_ids:
+ - 546
+ - 392
+ description: Alert for my PostgreSQL database.
+ entity_ids:
+ - '13116'
+ - '13217'
+ - '13331'
+ label: High Memory Usage Plan Dedicated
+ rule_criteria:
+ rules:
+ - aggregate_function: min
+ dimension_filters:
+ - dimension_label: node_type
+ operator: eq
+ value: primary
+ label: CPU Usage
+ metric: cpu_usage
+ operator: gt
+ threshold: 80
+ severity: 1
+ trigger_conditions:
+ criteria_condition: ALL
+ evaluation_period_seconds: 300
+ polling_interval_seconds: 300
+ trigger_occurrences: 3
+ schema:
+ additionalProperties: false
+ properties:
+ channel_ids:
+ description: >-
+ The identifiers for the alert channels to use for the alert.
+ Run the [List alert
+ channels](https://techdocs.akamai.com/linode-api/reference/get-alert-channels)
+ operation and store the `id` for the applicable channels.
+ example:
+ - 546
+ - 392
+ items:
+ type: integer
+ type: array
+ description:
+ description: An additional description for the alert definition.
+ example: '{{description}}'
+ type: string
+ entity_ids:
+ description: >-
+ The `id` for each individual entity from a `service_type`.
+ Get this value by running the list operation for the
+ appropriate entity. For example, if your entity is one of
+ your PostgreSQL databases, run the [List PostgreSQL Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances)
+ operation and store the `id` for the appropriate database
+ from the response.
+
+
+ > 📘
+
+ >
+
+ > - You need `read_only` access to the
+ [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference)
+ for the `service_type` for each of the `entity_ids`.
+
+ >
+
+ > - The format `type` for an `entity_id` may vary, based on
+ the Akamai Cloud `service_type`. For example, the `dbaas`
+ service returns an integer value for an `id`, that you'd use
+ for the `entity_id`, while other services may return a
+ string for their `id`. With the Alerts operations, all of
+ these formats are recognized as an `entity_id`, when you
+ include them as a `string`.
+ example:
+ - '13116'
+ - '13217'
+ - '13331'
+ items:
+ type: string
+ type: array
+ label:
+ description: >-
+ The name of the alert definition. This is used for display
+ purposes in Akamai Cloud Manager.
+ example: '{{label}}'
+ type: string
+ rule_criteria:
+ additionalProperties: false
+ description: Details for the rules required to trigger the alert.
+ properties:
+ rules:
+ description: The individual rules that make up the alert definition.
+ items:
+ additionalProperties: false
+ properties:
+ aggregate_function:
+ description: >-
+ The aggregation function applied to the `metric`.
+ Available values are `avg`, `sum`, `min`, and
+ `max`.
+ enum:
+ - avg
+ - sum
+ - min
+ - max
+ example: min
+ type: string
+ dimension_filters:
+ description: >-
+ Individual objects that define dimension filters
+ for the rule.
+ items:
+ additionalProperties: false
+ properties:
+ dimension_label:
+ description: >-
+ The name of the dimension to be used in the
+ filter.
+ example: node_type
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the dimension
+ filter. Available values are `eq` for equal,
+ `neq` for not equal, `startswith`, and
+ `endswith`.
+ enum:
+ - eq
+ - neq
+ - startswith
+ - endswith
+ example: eq
+ type: string
+ value:
+ description: >-
+ The value to compare the `dimension_label`
+ against.
+ example: primary
+ type: string
+ type: object
+ type: array
+ metric:
+ description: The metric to query.
+ example: cpu_usage
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the metric. Available
+ values are `eq` for equal, `gt` for greater than,
+ `lt` for less than `gte` for greater than or
+ equal, and `lte` for less than or equal.
+ enum:
+ - eq
+ - gt
+ - lt
+ - gte
+ - lte
+ example: gt
+ type: string
+ threshold:
+ description: >-
+ The predefined value or condition that triggers an
+ alert when met or exceeded. For example, for
+ `avg(cpu_usage) > 80`, the `threshold` is 80.
+ example: 80
+ format: float
+ type: number
+ type: object
+ type: array
+ type: object
+ severity:
+ description: >-
+ The severity of the alert. Supported values include `3` for
+ info, `2` for low, `1` for medium, and `0` for severe.
+ enum:
+ - 0
+ - 1
+ - 2
+ - 3
+ example: '{{severity}}'
+ type: integer
+ trigger_conditions:
+ additionalProperties: false
+ description: >-
+ The conditions that need to be met to send a notification
+ for the alert.
+ properties:
+ criteria_condition:
+ description: >-
+ Signifies the logical operation applied when multiple
+ metrics are set for an alert definition. For example, if
+ you wanted to apply both `cpu_usage > 90` and
+ `memory_usage > 80`, `ALL` is the `criteria_condition`.
+ Currently, only `ALL` is supported.
+ enum:
+ - ALL
+ example: ALL
+ type: string
+ evaluation_period_seconds:
+ description: >-
+ The time period over which data is collected before
+ evaluating whether the alert definition's `threshold`
+ has been met or exceeded.
+
+
+ > 📘
+
+ >
+
+ > During the beta, only a value of `300` seconds is
+ supported.
+ example: 300
+ type: integer
+ polling_interval_seconds:
+ description: >-
+ The frequency at which the `metric` is checked for a
+ change in state. For example, with `cpu_usage` set as
+ your `metric` and this set to `300`, your `cpu_usage` is
+ checked every 5 minutes for some change in its state.
+
+
+ > 📘
+
+ >
+
+ > During the beta, only a value of `300` seconds is
+ supported.
+ example: 300
+ type: integer
+ trigger_occurrences:
+ description: >-
+ The minimum number of consecutive
+ `polling_interval_seconds` periods that the `threshold`
+ needs to be breached to trigger the alert.
+ example: 3
+ type: integer
+ type: object
+ required:
+ - label
+ - severity
+ - rule_criteria
+ - trigger_conditions
+ - channel_ids
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-alert-definition-create.yaml
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ alert_channels:
+ - id: 10000
+ label: Read-Write Channel
+ type: alert-channels
+ url: /monitor/alert-channels/10000
+ class: dedicated
+ created: '2025-03-20T01:42:11'
+ created_by: system
+ description: >-
+ Alert triggers when dedicated plan nodes consistently reach
+ critical memory usage, risking application performance
+ degradation.
+ entity_ids:
+ - '126905'
+ - '126906'
+ - '137435'
+ - '141496'
+ - '190003'
+ - '257625'
+ - '257626'
+ has_more_resources: false
+ id: 10000
+ label: High Memory Usage Plan Dedicated
+ rule_criteria:
+ rules:
+ - aggregate_function: avg
+ dimension_filters:
+ - dimension_label: node_type
+ label: Node Type
+ operator: eq
+ value: primary
+ label: Memory Usage
+ metric: memory_usage
+ operator: gt
+ threshold: 95
+ unit: percent
+ service_type: dbaas
+ severity: 2
+ status: enabled
+ trigger_conditions:
+ criteria_condition: ALL
+ evaluation_period_seconds: 300
+ polling_interval_seconds: 300
+ trigger_occurrences: 3
+ type: system
+ updated: '2025-03-20T01:42:11'
+ updated_by: system
+ schema:
+ additionalProperties: false
+ properties:
+ alert_channels:
+ description: >-
+ The alert channels set up for use with this alert. Run the
+ [List alert
+ channels](https://techdocs.akamai.com/linode-api/reference/get-alert-channels)
+ operation to see all of the available channels.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: >-
+ The unique identifier for this alert channel on your
+ account.
+ example: 10000
+ type: integer
+ label:
+ description: >-
+ The name of the channel, used to display it in
+ Akamai Cloud Manager.
+ example: Read-Write Channel
+ type: string
+ type:
+ description: >-
+ The type of notification used with the channel. For
+ a `user` alert definition, only `email` is
+ supported.
+ enum:
+ - email
+ example: email
+ type: string
+ url:
+ description: >-
+ The URL for the channel that ends in the channel's
+ `id`.
+ example: /monitor/alert-channels/10000
+ format: url
+ type: string
+ type: object
+ type: array
+ class:
+ description: >-
+ The plan type for the Managed Database cluster, either
+ `shared` or `dedicated`. This only applies to a `system`
+ alert for a `service_type` of `dbaas` (Managed Databases).
+ For `user` alerts for `dbaas`, this is returned as `null`.
+ enum:
+ - shared
+ - dedicated
+ example: dedicated
+ nullable: true
+ type: string
+ created:
+ description: When the alert definition was created.
+ example: '2025-03-20 01:42:11'
+ format: date-time
+ type: string
+ created_by:
+ description: >-
+ For a `user` alert definition, this is the user on your
+ account that
+ [created](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type)
+ it. For a `system` alert definition, this is returned as
+ `system`.
+ example: system
+ type: string
+ description:
+ description: An additional description for the alert definition.
+ example: Alert for my PostgreSQL database
+ type: string
+ entity_ids:
+ description: >-
+ The `id` for each individual entity from a `service_type`.
+ Get this value by running the list operation for the
+ appropriate entity. For example, if your entity is one of
+ your PostgreSQL databases, run the [List PostgreSQL
+ Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances)
+ operation and store the `id` for the appropriate database
+ from the response.
+
+
+ > 📘
+
+ >
+
+ > The format `type` for an `entity_id` may vary, based on
+ the Akamai Cloud `service_type`. For example, the `dbaas`
+ service returns an integer value for an `id`, that you'd
+ use for the `entity_id`, while other services may return a
+ string for their `id`. With the Alerts operations, all of
+ these formats are recognized as an `entity_id`, when you
+ include them as a `string`.
+ example:
+ - '126905'
+ - '126906'
+ - '137435'
+ - '141496'
+ - '190003'
+ - '257625'
+ - '257626'
+ items:
+ type: string
+ type: array
+ has_more_resources:
+ description: >-
+ Whether there are additional `entity_ids` associated with
+ the alert for which the user doesn't have at least
+ `read-only` access.
+ example: false
+ type: boolean
+ id:
+ description: The unique identifier for the alert definition.
+ example: 10000
+ type: integer
+ x-linode-filterable: true
+ label:
+ description: >-
+ The name of the alert definition. This is used for display
+ purposes in Akamai Cloud Manager.
+ example: High Memory Usage Plan Dedicated
+ type: string
+ x-linode-filterable: true
+ rule_criteria:
+ additionalProperties: false
+ description: Details for the rules required to trigger the alert.
+ properties:
+ rules:
+ description: >-
+ The individual rules that make up the alert
+ definition.
+ items:
+ additionalProperties: false
+ properties:
+ aggregate_function:
+ description: >-
+ The aggregation function applied to the
+ `metric`. Available values are `avg`, `sum`,
+ `min`, and `max`.
+ enum:
+ - avg
+ - sum
+ - min
+ - max
+ example: avg
+ type: string
+ dimension_filters:
+ description: Dimension filters for the rule.
+ items:
+ additionalProperties: false
+ properties:
+ dimension_label:
+ description: >-
+ The name of the dimension to be used in
+ the filter.
+ example: node_type
+ type: string
+ label:
+ description: >-
+ The name of the dimension filter. Used for
+ display purposes.
+ example: Node Type
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the dimension
+ filter. Available values are `eq` for
+ equal, `neq` for not equal, `startswith`,
+ and `endswith`.
+ enum:
+ - eq
+ - neq
+ - startswith
+ - endswith
+ example: eq
+ type: string
+ value:
+ description: >-
+ The value to compare the `dimension_label`
+ against.
+ example: primary
+ type: string
+ type: object
+ type: array
+ label:
+ description: >-
+ The name of the individual rule. This is used
+ for display purposes in Akamai Cloud Manager.
+ example: Memory Usage
+ type: string
+ metric:
+ description: The metric to query.
+ example: memory_usage
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the metric. Available
+ values are `eq` for equal, `gt` for greater
+ than, `lt` for less than, `gte` for greater than
+ or equal, and `lte` for less than or equal.
+ enum:
+ - eq
+ - gt
+ - lt
+ - gte
+ - lte
+ example: eq
+ type: string
+ threshold:
+ description: >-
+ The predefined value or condition that triggers
+ an alert when met or exceeded. For example, for
+ `avg(cpu_usage) > 80`, the `threshold` is 80.
+ example: 95
+ format: float
+ type: number
+ unit:
+ description: >-
+ The unit of the metric. This can be values like
+ `percent` for percentage or `GB` for gigabyte.
+ enum:
+ - number
+ - byte
+ - second
+ - percent
+ - bit_per_second
+ - millisecond
+ - KB
+ - MB
+ - GB
+ example: percent
+ type: string
+ type: object
+ type: array
+ type: object
+ service_type:
+ description: >-
+ The identifier for the Akamai Cloud Computing service. Use
+ this value to call out the service in other Monitor
+ operations in the API. Currently, only the Managed
+ Databases (`dbaas`) service is supported.
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ severity:
+ description: >-
+ The severity of the alert. Supported values include `3`
+ for info, `2` for low, `1` for medium, and `0` for severe.
+ enum:
+ - 0
+ - 1
+ - 2
+ - 3
+ example: 2
+ type: integer
+ status:
+ description: >-
+ The current status of the alert. This can be either
+ `enabled`, `disabled`, `in progress`, or `failed`.
+ enum:
+ - enabled
+ - disabled
+ - in progress
+ - failed
+ example: enabled
+ type: string
+ x-linode-filterable: true
+ trigger_conditions:
+ additionalProperties: false
+ description: >-
+ The conditions that need to be met to send a notification
+ for the alert.
+ properties:
+ criteria_condition:
+ description: >-
+ Signifies the logical operation applied when multiple
+ metrics are set for an alert definition. For example,
+ if you wanted to apply both `cpu_usage > 90` and
+ `memory_usage > 80`, `ALL` is the
+ `criteria_condition`. Currently, only `ALL` is
+ supported.
+ enum:
+ - ALL
+ example: ALL
+ type: string
+ evaluation_period_seconds:
+ description: >-
+ The time period over which data is collected before
+ evaluating whether the alert definition's `threshold`
+ has been met or exceeded.
+
+
+ > 📘
+
+ >
+
+ > During the beta, only a value of `300` seconds is
+ supported.
+ example: 300
+ type: integer
+ polling_interval_seconds:
+ description: >-
+ The frequency at which the `metric` is checked for a
+ change in state. For example, with `cpu_usage` set as
+ your `metric` and this set to `300`, your `cpu_usage`
+ is checked every 5 minutes for some change in its
+ state.
+
+
+ > 📘
+
+ >
+
+ > During the beta, only a value of `300` seconds is
+ supported.
+ example: 300
+ type: integer
+ trigger_occurrences:
+ description: >-
+ The minimum number of consecutive
+ `polling_interval_seconds` periods that the
+ `threshold` needs to be breached to trigger the alert.
+ example: 3
+ type: integer
+ type: object
+ type:
+ description: >-
+ The type of alert. This can be either `user` for an alert
+ specific to the current user, or `system` for one that
+ applies to all users on your account.
+ enum:
+ - user
+ - system
+ example: system
+ type: string
+ x-linode-filterable: true
+ updated:
+ description: >-
+ When the alert definition was last updated. This is the
+ same as `created` if the alert definition hasn't been
+ updated.
+ example: '2025-03-20 01:42:11'
+ format: date-time
+ type: string
+ updated_by:
+ description: >-
+ For a `user` alert definition, this is the user on your
+ account that last
+ [updated](https://techdocs.akamai.com/linode-api/reference/put-alert-definition)
+ it. For a `system` alert definition, this is returned as
+ `system`. If it hasn't been updated, this value is the
+ same as `created_by`.
+ example: system
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-alert-definition-response.yaml
+ description: The alert definition is created.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - monitor:read_write
+ summary: Create an alert definition
+ tags:
+ - Alerts
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: monitor:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ - syntax: |-
+ linode-cli alerts definition-create \
+ --channel_ids 546 \
+ --label CPU usage threshold maximum \
+ --rule_criteria.metric cpu_usage \
+ --rule_criteria.operator gt \
+ --rule_criteria.threshold 80 \
+ --severity 2
+ --trigger_conditions.evaluation_period_seconds 300 \
+ --trigger_conditions.polling_interval_seconds 300 \
+ --trigger_conditions.trigger_occurrences 3 \
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: definition-create
+ x-linode-grant: read_write
+ get:
+ description: >-
+ __Beta__ Returns all available alert definitions for a specific service
+ type. Include the appropriate `service_type` as a path parameter.
+
+
+ > 📘
+
+ >
+
+ > - This operation is beta. Call it using the `v4beta` path in its URL.
+
+ >
+
+ > - Currently, only the Managed Databases (`dbaas`) service type is
+ supported. __OAuth scopes__.
+
+ ```
+ monitor:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+
+
+ -
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-alert-definitions-for-service-type
+ operationId: get-alert-definitions-for-service-type
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - alert_channels:
+ - id: 10000
+ label: Read-Write Channel
+ type: alert-channels
+ url: /monitor/alert-channels/10000
+ class: dedicated
+ created: '2025-03-20T01:42:11'
+ created_by: system
+ description: >-
+ Alert triggers when dedicated plan nodes consistently
+ reach critical memory usage, risking application
+ performance degradation.
+ entity_ids:
+ - '126905'
+ - '126906'
+ - '137435'
+ - '141496'
+ - '190003'
+ - '257625'
+ - '257626'
+ has_more_resources: false
+ id: 10000
+ label: High Memory Usage Plan Dedicated
+ rule_criteria:
+ rules:
+ - aggregate_function: avg
+ dimension_filters:
+ - dimension_label: node_type
+ label: Node Type
+ operator: eq
+ value: primary
+ label: Memory Usage
+ metric: memory_usage
+ operator: gt
+ threshold: 95
+ unit: percent
+ service_type: dbaas
+ severity: 2
+ status: enabled
+ trigger_conditions:
+ criteria_condition: ALL
+ evaluation_period_seconds: 300
+ polling_interval_seconds: 300
+ trigger_occurrences: 3
+ type: system
+ updated: '2025-03-20T01:42:11'
+ updated_by: system
+ - alert_channels:
+ - id: 10000
+ label: Read-Write Channel
+ type: alert-channels
+ url: /monitor/alert-channels/10000
+ class: null
+ created: '2025-03-20T02:15:18'
+ created_by: John Q. Linode
+ description: >-
+ Custom alert set up for high memory usage for shared plan
+ nodes.
+ entity_ids:
+ - '126907'
+ - '126908'
+ - '137436'
+ - '141497'
+ - '190004'
+ - '257627'
+ - '257628'
+ has_more_resources: false
+ id: 10001
+ label: High Memory Usage Plan Shared
+ rule_criteria:
+ rules:
+ - aggregate_function: avg
+ dimension_filters:
+ - dimension_label: node_type
+ label: Node Type
+ operator: eq
+ value: primary
+ label: Memory Usage
+ metric: memory_usage
+ operator: gt
+ threshold: 95
+ unit: percent
+ service_type: dbaas
+ severity: 2
+ status: enabled
+ trigger_conditions:
+ criteria_condition: ALL
+ evaluation_period_seconds: 300
+ polling_interval_seconds: 300
+ trigger_occurrences: 3
+ type: user
+ updated: '2025-03-20T02:15:18'
+ updated_by: John Q. Linode
+ page: 1
+ pages: 1
+ results: 6
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ properties:
+ alert_channels:
+ description: >-
+ The alert channels set up for use with this alert.
+ Run the [List alert
+ channels](https://techdocs.akamai.com/linode-api/reference/get-alert-channels)
+ operation to see all of the available channels.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: >-
+ The unique identifier for this alert channel
+ on your account.
+ example: 10000
+ type: integer
+ label:
+ description: >-
+ The name of the channel, used to display it in
+ Akamai Cloud Manager.
+ example: Read-Write Channel
+ type: string
+ type:
+ description: >-
+ The type of notification used with the
+ channel. For a `user` alert definition, only
+ `email` is supported.
+ enum:
+ - email
+ example: email
+ type: string
+ url:
+ description: >-
+ The URL for the channel that ends in the
+ channel's `id`.
+ example: /monitor/alert-channels/10000
+ format: url
+ type: string
+ type: object
+ type: array
+ class:
+ description: >-
+ The plan type for the Managed Database cluster,
+ either `shared` or `dedicated`. This only applies to
+ a `system` alert for a `service_type` of `dbaas`
+ (Managed Databases). For `user` alerts for `dbaas`,
+ this is returned as `null`.
+ enum:
+ - shared
+ - dedicated
+ example: dedicated
+ nullable: true
+ type: string
+ created:
+ description: When the alert definition was created.
+ example: '2025-03-20 01:42:11'
+ format: date-time
+ type: string
+ created_by:
+ description: >-
+ For a `user` alert definition, this is the user on
+ your account that
+ [created](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type)
+ it. For a `system` alert definition, this is
+ returned as `system`.
+ example: system
+ type: string
+ description:
+ description: An additional description for the alert definition.
+ example: Alert for my PostgreSQL database
+ type: string
+ entity_ids:
+ description: >-
+ The `id` for each individual entity from a
+ `service_type`. Get this value by running the list
+ operation for the appropriate entity. For example,
+ if your entity is one of your PostgreSQL databases,
+ run the [List PostgreSQL Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances)
+ operation and store the `id` for the appropriate
+ database from the response.
+
+
+ > 📘
+
+ >
+
+ > The format `type` for an `entity_id` may vary,
+ based on the Akamai Cloud `service_type`. For
+ example, the `dbaas` service returns an integer
+ value for an `id`, that you'd use for the
+ `entity_id`, while other services may return a
+ string for their `id`. With the Alerts operations,
+ all of these formats are recognized as an
+ `entity_id`, when you include them as a `string`.
+ example:
+ - '126905'
+ - '126906'
+ - '137435'
+ - '141496'
+ - '190003'
+ - '257625'
+ - '257626'
+ items:
+ type: string
+ type: array
+ has_more_resources:
+ description: >-
+ Whether there are additional `entity_ids` associated
+ with the alert for which the user doesn't have at
+ least `read-only` access.
+ example: false
+ type: boolean
+ id:
+ description: The unique identifier for the alert definition.
+ example: 10000
+ type: integer
+ x-linode-filterable: true
+ label:
+ description: >-
+ The name of the alert definition. This is used for
+ display purposes in Akamai Cloud Manager.
+ example: High Memory Usage Plan Dedicated
+ type: string
+ x-linode-filterable: true
+ rule_criteria:
+ additionalProperties: false
+ description: Details for the rules required to trigger the alert.
+ properties:
+ rules:
+ description: >-
+ The individual rules that make up the alert
+ definition.
+ items:
+ additionalProperties: false
+ properties:
+ aggregate_function:
+ description: >-
+ The aggregation function applied to the
+ `metric`. Available values are `avg`,
+ `sum`, `min`, and `max`.
+ enum:
+ - avg
+ - sum
+ - min
+ - max
+ example: avg
+ type: string
+ dimension_filters:
+ description: Dimension filters for the rule.
+ items:
+ additionalProperties: false
+ properties:
+ dimension_label:
+ description: >-
+ The name of the dimension to be used in
+ the filter.
+ example: node_type
+ type: string
+ label:
+ description: >-
+ The name of the dimension filter. Used
+ for display purposes.
+ example: Node Type
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the dimension
+ filter. Available values are `eq` for
+ equal, `neq` for not equal,
+ `startswith`, and `endswith`.
+ enum:
+ - eq
+ - neq
+ - startswith
+ - endswith
+ example: eq
+ type: string
+ value:
+ description: >-
+ The value to compare the
+ `dimension_label` against.
+ example: primary
+ type: string
+ type: object
+ type: array
+ label:
+ description: >-
+ The name of the individual rule. This is
+ used for display purposes in Akamai Cloud
+ Manager.
+ example: Memory Usage
+ type: string
+ metric:
+ description: The metric to query.
+ example: memory_usage
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the metric.
+ Available values are `eq` for equal, `gt`
+ for greater than, `lt` for less than,
+ `gte` for greater than or equal, and `lte`
+ for less than or equal.
+ enum:
+ - eq
+ - gt
+ - lt
+ - gte
+ - lte
+ example: eq
+ type: string
+ threshold:
+ description: >-
+ The predefined value or condition that
+ triggers an alert when met or exceeded.
+ For example, for `avg(cpu_usage) > 80`,
+ the `threshold` is 80.
+ example: 95
+ format: float
+ type: number
+ unit:
+ description: >-
+ The unit of the metric. This can be values
+ like `percent` for percentage or `GB` for
+ gigabyte.
+ enum:
+ - number
+ - byte
+ - second
+ - percent
+ - bit_per_second
+ - millisecond
+ - KB
+ - MB
+ - GB
+ example: percent
+ type: string
+ type: object
+ type: array
+ type: object
+ service_type:
+ description: >-
+ The identifier for the Akamai Cloud Computing
+ service. Use this value to call out the service in
+ other Monitor operations in the API. Currently, only
+ the Managed Databases (`dbaas`) service is
+ supported.
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ severity:
+ description: >-
+ The severity of the alert. Supported values include
+ `3` for info, `2` for low, `1` for medium, and `0`
+ for severe.
+ enum:
+ - 0
+ - 1
+ - 2
+ - 3
+ example: 2
+ type: integer
+ status:
+ description: >-
+ The current status of the alert. This can be either
+ `enabled`, `disabled`, `in progress`, or `failed`.
+ enum:
+ - enabled
+ - disabled
+ - in progress
+ - failed
+ example: enabled
+ type: string
+ x-linode-filterable: true
+ trigger_conditions:
+ additionalProperties: false
+ description: >-
+ The conditions that need to be met to send a
+ notification for the alert.
+ properties:
+ criteria_condition:
+ description: >-
+ Signifies the logical operation applied when
+ multiple metrics are set for an alert
+ definition. For example, if you wanted to apply
+ both `cpu_usage > 90` and `memory_usage > 80`,
+ `ALL` is the `criteria_condition`. Currently,
+ only `ALL` is supported.
+ enum:
+ - ALL
+ example: ALL
+ type: string
+ evaluation_period_seconds:
+ description: >-
+ The time period over which data is collected
+ before evaluating whether the alert definition's
+ `threshold` has been met or exceeded.
+
+
+ > 📘
+
+ >
+
+ > During the beta, only a value of `300` seconds
+ is supported.
+ example: 300
+ type: integer
+ polling_interval_seconds:
+ description: >-
+ The frequency at which the `metric` is checked
+ for a change in state. For example, with
+ `cpu_usage` set as your `metric` and this set to
+ `300`, your `cpu_usage` is checked every 5
+ minutes for some change in its state.
+
+
+ > 📘
+
+ >
+
+ > During the beta, only a value of `300` seconds
+ is supported.
+ example: 300
+ type: integer
+ trigger_occurrences:
+ description: >-
+ The minimum number of consecutive
+ `polling_interval_seconds` periods that the
+ `threshold` needs to be breached to trigger the
+ alert.
+ example: 3
+ type: integer
+ type: object
+ type:
+ description: >-
+ The type of alert. This can be either `user` for an
+ alert specific to the current user, or `system` for
+ one that applies to all users on your account.
+ enum:
+ - user
+ - system
+ example: system
+ type: string
+ x-linode-filterable: true
+ updated:
+ description: >-
+ When the alert definition was last updated. This is
+ the same as `created` if the alert definition hasn't
+ been updated.
+ example: '2025-03-20 01:42:11'
+ format: date-time
+ type: string
+ updated_by:
+ description: >-
+ For a `user` alert definition, this is the user on
+ your account that last
+ [updated](https://techdocs.akamai.com/linode-api/reference/put-alert-definition)
+ it. For a `system` alert definition, this is
+ returned as `system`. If it hasn't been updated,
+ this value is the same as `created_by`.
+ example: system
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-alert-definition-response.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-alert-definitions-response.yaml
+ description: >-
+ Returns a paginated list of alert definitions for the specified
+ service type.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - monitor:read_only
+ summary: List alert definitions for a service type
+ tags:
+ - Alerts
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: monitor:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ - syntax: linode-cli alerts definition-view dbaas
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: definition-view
+ x-linode-grant: read_only
+ parameters:
+ - description: >-
+ __Enum__ The Akamai Cloud Computing service being monitored.
+ Currently, only the Managed Databases (`dbaas`) service type is
+ supported.
+ example: '{{service_type}}'
+ in: path
+ name: service_type
+ required: true
+ schema:
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ x-akamai:
+ file-path: parameters/aclp-service-type.yaml
+ x-akamai:
+ file-path: paths/aclp-service-alert-definitions.yaml
+ path-info: /monitor/services/{service_type}/alert-definitions
+ x-linode-cli-command: alerts
+ /monitor/services/{service_type}/alert-definitions/{alert_id}:
+ get:
+ description: >-
+ __Beta__ Returns a specific alert definition. Include the appropriate
+ `service_type` and `alert_id` as path parameters.
+
+
+ > 📘
+
+ >
+
+ > - This operation is beta. Call it using the `v4beta` path in its URL.
+
+ >
+
+ > - Currently, only the Managed Databases (`dbaas`) service type is
+ supported. __OAuth scopes__.
+
+ ```
+ monitor:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+
+
+ -
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-alert-definition
+ operationId: get-alert-definition
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ alert_channels:
+ - id: 10000
+ label: Read-Write Channel
+ type: alert-channels
+ url: /monitor/alert-channels/10000
+ class: dedicated
+ created: '2025-03-20T01:42:11'
+ created_by: system
+ description: >-
+ Alert triggers when dedicated plan nodes consistently reach
+ critical memory usage, risking application performance
+ degradation.
+ entity_ids:
+ - '126905'
+ - '126906'
+ - '137435'
+ - '141496'
+ - '190003'
+ - '257625'
+ - '257626'
+ has_more_resources: false
+ id: 10000
+ label: High Memory Usage Plan Dedicated
+ rule_criteria:
+ rules:
+ - aggregate_function: avg
+ dimension_filters:
+ - dimension_label: node_type
+ label: Node Type
+ operator: eq
+ value: primary
+ label: Memory Usage
+ metric: memory_usage
+ operator: gt
+ threshold: 95
+ unit: percent
+ service_type: dbaas
+ severity: 2
+ status: enabled
+ trigger_conditions:
+ criteria_condition: ALL
+ evaluation_period_seconds: 300
+ polling_interval_seconds: 300
+ trigger_occurrences: 3
+ type: system
+ updated: '2025-03-20T01:42:11'
+ updated_by: system
+ schema:
+ additionalProperties: false
+ properties:
+ alert_channels:
+ description: >-
+ The alert channels set up for use with this alert. Run the
+ [List alert
+ channels](https://techdocs.akamai.com/linode-api/reference/get-alert-channels)
+ operation to see all of the available channels.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: >-
+ The unique identifier for this alert channel on your
+ account.
+ example: 10000
+ type: integer
+ label:
+ description: >-
+ The name of the channel, used to display it in
+ Akamai Cloud Manager.
+ example: Read-Write Channel
+ type: string
+ type:
+ description: >-
+ The type of notification used with the channel. For
+ a `user` alert definition, only `email` is
+ supported.
+ enum:
+ - email
+ example: email
+ type: string
+ url:
+ description: >-
+ The URL for the channel that ends in the channel's
+ `id`.
+ example: /monitor/alert-channels/10000
+ format: url
+ type: string
+ type: object
+ type: array
+ class:
+ description: >-
+ The plan type for the Managed Database cluster, either
+ `shared` or `dedicated`. This only applies to a `system`
+ alert for a `service_type` of `dbaas` (Managed Databases).
+ For `user` alerts for `dbaas`, this is returned as `null`.
+ enum:
+ - shared
+ - dedicated
+ example: dedicated
+ nullable: true
+ type: string
+ created:
+ description: When the alert definition was created.
+ example: '2025-03-20 01:42:11'
+ format: date-time
+ type: string
+ created_by:
+ description: >-
+ For a `user` alert definition, this is the user on your
+ account that
+ [created](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type)
+ it. For a `system` alert definition, this is returned as
+ `system`.
+ example: system
+ type: string
+ description:
+ description: An additional description for the alert definition.
+ example: Alert for my PostgreSQL database
+ type: string
+ entity_ids:
+ description: >-
+ The `id` for each individual entity from a `service_type`.
+ Get this value by running the list operation for the
+ appropriate entity. For example, if your entity is one of
+ your PostgreSQL databases, run the [List PostgreSQL
+ Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances)
+ operation and store the `id` for the appropriate database
+ from the response.
+
+
+ > 📘
+
+ >
+
+ > The format `type` for an `entity_id` may vary, based on
+ the Akamai Cloud `service_type`. For example, the `dbaas`
+ service returns an integer value for an `id`, that you'd
+ use for the `entity_id`, while other services may return a
+ string for their `id`. With the Alerts operations, all of
+ these formats are recognized as an `entity_id`, when you
+ include them as a `string`.
+ example:
+ - '126905'
+ - '126906'
+ - '137435'
+ - '141496'
+ - '190003'
+ - '257625'
+ - '257626'
+ items:
+ type: string
+ type: array
+ has_more_resources:
+ description: >-
+ Whether there are additional `entity_ids` associated with
+ the alert for which the user doesn't have at least
+ `read-only` access.
+ example: false
+ type: boolean
+ id:
+ description: The unique identifier for the alert definition.
+ example: 10000
+ type: integer
+ x-linode-filterable: true
+ label:
+ description: >-
+ The name of the alert definition. This is used for display
+ purposes in Akamai Cloud Manager.
+ example: High Memory Usage Plan Dedicated
+ type: string
+ x-linode-filterable: true
+ rule_criteria:
+ additionalProperties: false
+ description: Details for the rules required to trigger the alert.
+ properties:
+ rules:
+ description: >-
+ The individual rules that make up the alert
+ definition.
+ items:
+ additionalProperties: false
+ properties:
+ aggregate_function:
+ description: >-
+ The aggregation function applied to the
+ `metric`. Available values are `avg`, `sum`,
+ `min`, and `max`.
+ enum:
+ - avg
+ - sum
+ - min
+ - max
+ example: avg
+ type: string
+ dimension_filters:
+ description: Dimension filters for the rule.
+ items:
+ additionalProperties: false
+ properties:
+ dimension_label:
+ description: >-
+ The name of the dimension to be used in
+ the filter.
+ example: node_type
+ type: string
+ label:
+ description: >-
+ The name of the dimension filter. Used for
+ display purposes.
+ example: Node Type
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the dimension
+ filter. Available values are `eq` for
+ equal, `neq` for not equal, `startswith`,
+ and `endswith`.
+ enum:
+ - eq
+ - neq
+ - startswith
+ - endswith
+ example: eq
+ type: string
+ value:
+ description: >-
+ The value to compare the `dimension_label`
+ against.
+ example: primary
+ type: string
+ type: object
+ type: array
+ label:
+ description: >-
+ The name of the individual rule. This is used
+ for display purposes in Akamai Cloud Manager.
+ example: Memory Usage
+ type: string
+ metric:
+ description: The metric to query.
+ example: memory_usage
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the metric. Available
+ values are `eq` for equal, `gt` for greater
+ than, `lt` for less than, `gte` for greater than
+ or equal, and `lte` for less than or equal.
+ enum:
+ - eq
+ - gt
+ - lt
+ - gte
+ - lte
+ example: eq
+ type: string
+ threshold:
+ description: >-
+ The predefined value or condition that triggers
+ an alert when met or exceeded. For example, for
+ `avg(cpu_usage) > 80`, the `threshold` is 80.
+ example: 95
+ format: float
+ type: number
+ unit:
+ description: >-
+ The unit of the metric. This can be values like
+ `percent` for percentage or `GB` for gigabyte.
+ enum:
+ - number
+ - byte
+ - second
+ - percent
+ - bit_per_second
+ - millisecond
+ - KB
+ - MB
+ - GB
+ example: percent
+ type: string
+ type: object
+ type: array
+ type: object
+ service_type:
+ description: >-
+ The identifier for the Akamai Cloud Computing service. Use
+ this value to call out the service in other Monitor
+ operations in the API. Currently, only the Managed
+ Databases (`dbaas`) service is supported.
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ severity:
+ description: >-
+ The severity of the alert. Supported values include `3`
+ for info, `2` for low, `1` for medium, and `0` for severe.
+ enum:
+ - 0
+ - 1
+ - 2
+ - 3
+ example: 2
+ type: integer
+ status:
+ description: >-
+ The current status of the alert. This can be either
+ `enabled`, `disabled`, `in progress`, or `failed`.
+ enum:
+ - enabled
+ - disabled
+ - in progress
+ - failed
+ example: enabled
+ type: string
+ x-linode-filterable: true
+ trigger_conditions:
+ additionalProperties: false
+ description: >-
+ The conditions that need to be met to send a notification
+ for the alert.
+ properties:
+ criteria_condition:
+ description: >-
+ Signifies the logical operation applied when multiple
+ metrics are set for an alert definition. For example,
+ if you wanted to apply both `cpu_usage > 90` and
+ `memory_usage > 80`, `ALL` is the
+ `criteria_condition`. Currently, only `ALL` is
+ supported.
+ enum:
+ - ALL
+ example: ALL
+ type: string
+ evaluation_period_seconds:
+ description: >-
+ The time period over which data is collected before
+ evaluating whether the alert definition's `threshold`
+ has been met or exceeded.
+
+
+ > 📘
+
+ >
+
+ > During the beta, only a value of `300` seconds is
+ supported.
+ example: 300
+ type: integer
+ polling_interval_seconds:
+ description: >-
+ The frequency at which the `metric` is checked for a
+ change in state. For example, with `cpu_usage` set as
+ your `metric` and this set to `300`, your `cpu_usage`
+ is checked every 5 minutes for some change in its
+ state.
+
+
+ > 📘
+
+ >
+
+ > During the beta, only a value of `300` seconds is
+ supported.
+ example: 300
+ type: integer
+ trigger_occurrences:
+ description: >-
+ The minimum number of consecutive
+ `polling_interval_seconds` periods that the
+ `threshold` needs to be breached to trigger the alert.
+ example: 3
+ type: integer
+ type: object
+ type:
+ description: >-
+ The type of alert. This can be either `user` for an alert
+ specific to the current user, or `system` for one that
+ applies to all users on your account.
+ enum:
+ - user
+ - system
+ example: system
+ type: string
+ x-linode-filterable: true
+ updated:
+ description: >-
+ When the alert definition was last updated. This is the
+ same as `created` if the alert definition hasn't been
+ updated.
+ example: '2025-03-20 01:42:11'
+ format: date-time
+ type: string
+ updated_by:
+ description: >-
+ For a `user` alert definition, this is the user on your
+ account that last
+ [updated](https://techdocs.akamai.com/linode-api/reference/put-alert-definition)
+ it. For a `system` alert definition, this is returned as
+ `system`. If it hasn't been updated, this value is the
+ same as `created_by`.
+ example: system
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-alert-definition-response.yaml
+ description: Returns the specified alert definition.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - monitor:read_only
+ summary: Get an alert definition
+ tags:
+ - Alerts
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: monitor:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ - syntax: linode-cli alerts definition-view dbaas 457
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: definition-view
+ x-linode-grant: read_only
+ put:
+ description: >-
+ __Beta__ Update an existing alert definition. Include the appropriate
+ `service_type` and `alert_id` as path parameters. You need `read_only`
+ access to the
+ [scope](https://techdocs.akamai.com/linode-api/reference/oauth-reference)
+ for the selected `service_type`. Only include the objects in the request
+ that you want to update. Leave any object out of the request to leave it
+ set as is.
+
+
+ > 📘
+
+ >
+
+ > - This operation is beta. Call it using the `v4beta` path in its URL.
+
+ >
+
+ > - Currently, only the Managed Databases (`dbaas`) service type is
+ supported.
+
+
+ **User alert definitions**
+
+
+ When updating an alert definition you've
+ [created](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type),
+ you can change the `status` to `enabled` or `disabled`. You can also
+ modify the `label`, `description`, `severity`, `entity_ids`,
+ `rule_criteria`, `trigger_conditions`, and `channel_ids` objects. If
+ updating the `entity_ids`, `rule_criteria`, or `channel_ids` list
+ objects, these points apply:
+
+
+ - If you want to keep an existing item, you need to include it in the
+ list.
+
+
+ - If you want to remove an existing item, leave it out of the list.
+
+
+ - To add a new item, include it in the list.
+
+
+ - You can't pass an empty list to remove all items. This doesn't apply
+ to the `entity_ids` or `dimension_filters` (in `rule_criteria`) list
+ objects, because they are optional, while all other list objects are
+ required.
+
+
+ **System alert definitions**
+
+
+ These are the default alert definitions offered by Akamai. You can only
+ edit the `entity_ids` list object for these alerts. All of the points
+ above regarding editing a list object apply here, too. __OAuth scopes__.
+
+ ```
+ monitor:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+
+
+ -
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-alert-definition
+ operationId: put-alert-definition
+ requestBody:
+ content:
+ application/json:
+ example:
+ channel_ids:
+ - 546
+ - 392
+ description: Alert for my PostgreSQL database.
+ entity_ids:
+ - '13116'
+ - '13217'
+ - '13331'
+ label: High Memory Usage Plan Dedicated
+ rule_criteria:
+ rules:
+ - aggregate_function: min
+ dimension_filters:
+ - dimension_label: node_type
+ operator: eq
+ value: primary
+ label: CPU Usage
+ metric: cpu_usage
+ operator: gt
+ threshold: 80
+ severity: 1
+ status: enabled
+ trigger_conditions:
+ criteria_condition: ALL
+ evaluation_period_seconds: 300
+ polling_interval_seconds: 300
+ trigger_occurrences: 3
+ schema:
+ additionalProperties: false
+ properties:
+ channel_ids:
+ description: >-
+ The identifiers for the alert channels to use for the alert.
+ Run the [List alert
+ channels](https://techdocs.akamai.com/linode-api/reference/get-alerts-notification-channels)
+ operation and store the `id` for the applicable channels.
+ example:
+ - 546
+ - 392
+ items:
+ type: integer
+ type: array
+ description:
+ description: An additional description for the alert definition.
+ example: '{{description}}'
+ type: string
+ entity_ids:
+ description: >-
+ The `id` for each individual entity from a `service_type`.
+ Get this value by running the list operation for the
+ appropriate entity. For example, if your entity is one of
+ your PostgreSQL databases, run the [List PostgreSQL Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances)
+ operation and store the `id` for the appropriate database
+ from the response.
+
+
+ > 📘
+
+ >
+
+ > - You need `read_only` access to the
+ [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference)
+ for the `service_type` for each of the `entity_ids`.
+
+ >
+
+ > - The format `type` for an `entity_id` may vary, based on
+ the Akamai Cloud `service_type`. For example, the `dbaas`
+ service returns an integer value for an `id`, that you'd use
+ for the `entity_id`, while other services may return a
+ string for their `id`. With the Alerts operations, all of
+ these formats are recognized as an `entity_id`, when you
+ include them as a `string`.
+ example:
+ - '13116'
+ - '13116'
+ - '13331'
+ items:
+ type: string
+ type: array
+ label:
+ description: >-
+ The name of the alert definition. This is used for display
+ purposes in Akamai Cloud Manager.
+ example: '{{label}}'
+ type: string
+ rule_criteria:
+ additionalProperties: false
+ description: Details for the rules required to trigger the alert.
+ properties:
+ rules:
+ description: The individual rules that make up the alert definition.
+ items:
+ additionalProperties: false
+ properties:
+ aggregate_function:
+ description: >-
+ The aggregation function applied to the `metric`.
+ Available values are `avg`, `sum`, `min`, and
+ `max`.
+ enum:
+ - avg
+ - sum
+ - min
+ - max
+ example: min
+ type: string
+ dimension_filters:
+ description: >-
+ Individual objects that define dimension filters
+ for the rule.
+ items:
+ additionalProperties: false
+ properties:
+ dimension_label:
+ description: >-
+ The name of the dimension to be used in the
+ filter.
+ example: node_type
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the dimension
+ filter. Available values are `eq` for equal,
+ `neq` for not equal, `startswith`, and
+ `endswith`.
+ enum:
+ - eq
+ - neq
+ - startswith
+ - endswith
+ example: eq
+ type: string
+ value:
+ description: >-
+ The value to compare the `dimension_label`
+ against.
+ example: primary
+ type: string
+ type: object
+ type: array
+ metric:
+ description: The metric to query.
+ example: cpu_usage
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the metric. Available
+ values are `eq` for equal, `gt` for greater than,
+ `lt` for less than, `gte` for greater than or
+ equal, and `lte` for less than or equal.
+ enum:
+ - eq
+ - gt
+ - lt
+ - gte
+ - lte
+ example: gt
+ type: string
+ threshold:
+ description: >-
+ The predefined value or condition that triggers an
+ alert when met or exceeded. For example, for
+ `avg(cpu_usage) > 80`, the `threshold` is 80.
+ example: 80
+ format: float
+ type: number
+ type: object
+ type: array
+ type: object
+ severity:
+ description: >-
+ The severity of the alert. Supported values include `3` for
+ info, `2` for low, `1` for medium, and `0` for severe.
+ enum:
+ - 0
+ - 1
+ - 2
+ - 3
+ example: '{{severity}}'
+ type: integer
+ status:
+ description: >-
+ The current status of the alert. You can set this to
+ `enabled` or `disabled`.
+ enum:
+ - enabled
+ - disabled
+ example: '{{status}}'
+ type: string
+ trigger_conditions:
+ additionalProperties: false
+ description: >-
+ The conditions that need to be met to send a notification
+ for the alert.
+ properties:
+ criteria_condition:
+ description: >-
+ Signifies the logical operation applied when multiple
+ metrics are set for an alert definition. For example, if
+ you wanted to apply both `cpu_usage > 90` and
+ `memory_usage > 80`, `ALL` is the `criteria_condition`.
+ Currently, only `ALL` is supported.
+ enum:
+ - ALL
+ example: ALL
+ type: string
+ evaluation_period_seconds:
+ description: >-
+ The time period over which data is collected before
+ evaluating whether the alert definition's `threshold`
+ has been met or exceeded.
+
+
+ > 📘
+
+ >
+
+ > During the beta, only a value of `300` seconds is
+ supported.
+ example: 300
+ type: integer
+ polling_interval_seconds:
+ description: >-
+ The frequency at which the `metric` is checked for a
+ change in state. For example, with `cpu_usage` set as
+ your `metric` and this set to `300`, your `cpu_usage` is
+ checked every 5 minutes for some change in its state.
+
+
+ > 📘
+
+ >
+
+ > During the beta, only a value of `300` seconds is
+ supported.
+ example: 300
+ type: integer
+ trigger_occurrences:
+ description: >-
+ The minimum number of consecutive
+ `polling_interval_seconds` periods that the `threshold`
+ needs to be breached to trigger the alert.
+ example: 3
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-alert-definition-update.yaml
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ alert_channels:
+ - id: 10000
+ label: Read-Write Channel
+ type: alert-channels
+ url: /monitor/alert-channels/10000
+ class: dedicated
+ created: '2025-03-20T01:42:11'
+ created_by: system
+ description: >-
+ Alert triggers when dedicated plan nodes consistently reach
+ critical memory usage, risking application performance
+ degradation.
+ entity_ids:
+ - '126905'
+ - '126906'
+ - '137435'
+ - '141496'
+ - '190003'
+ - '257625'
+ - '257626'
+ has_more_resources: false
+ id: 10000
+ label: High Memory Usage Plan Dedicated
+ rule_criteria:
+ rules:
+ - aggregate_function: avg
+ dimension_filters:
+ - dimension_label: node_type
+ label: Node Type
+ operator: eq
+ value: primary
+ label: Memory Usage
+ metric: memory_usage
+ operator: gt
+ threshold: 95
+ unit: percent
+ service_type: dbaas
+ severity: 2
+ status: enabled
+ trigger_conditions:
+ criteria_condition: ALL
+ evaluation_period_seconds: 300
+ polling_interval_seconds: 300
+ trigger_occurrences: 3
+ type: system
+ updated: '2025-03-20T01:42:11'
+ updated_by: system
+ schema:
+ additionalProperties: false
+ properties:
+ alert_channels:
+ description: >-
+ The alert channels set up for use with this alert. Run the
+ [List alert
+ channels](https://techdocs.akamai.com/linode-api/reference/get-alert-channels)
+ operation to see all of the available channels.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: >-
+ The unique identifier for this alert channel on your
+ account.
+ example: 10000
+ type: integer
+ label:
+ description: >-
+ The name of the channel, used to display it in
+ Akamai Cloud Manager.
+ example: Read-Write Channel
+ type: string
+ type:
+ description: >-
+ The type of notification used with the channel. For
+ a `user` alert definition, only `email` is
+ supported.
+ enum:
+ - email
+ example: email
+ type: string
+ url:
+ description: >-
+ The URL for the channel that ends in the channel's
+ `id`.
+ example: /monitor/alert-channels/10000
+ format: url
+ type: string
+ type: object
+ type: array
+ class:
+ description: >-
+ The plan type for the Managed Database cluster, either
+ `shared` or `dedicated`. This only applies to a `system`
+ alert for a `service_type` of `dbaas` (Managed Databases).
+ For `user` alerts for `dbaas`, this is returned as `null`.
+ enum:
+ - shared
+ - dedicated
+ example: dedicated
+ nullable: true
+ type: string
+ created:
+ description: When the alert definition was created.
+ example: '2025-03-20 01:42:11'
+ format: date-time
+ type: string
+ created_by:
+ description: >-
+ For a `user` alert definition, this is the user on your
+ account that
+ [created](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type)
+ it. For a `system` alert definition, this is returned as
+ `system`.
+ example: system
+ type: string
+ description:
+ description: An additional description for the alert definition.
+ example: Alert for my PostgreSQL database
+ type: string
+ entity_ids:
+ description: >-
+ The `id` for each individual entity from a `service_type`.
+ Get this value by running the list operation for the
+ appropriate entity. For example, if your entity is one of
+ your PostgreSQL databases, run the [List PostgreSQL
+ Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances)
+ operation and store the `id` for the appropriate database
+ from the response.
+
+
+ > 📘
+
+ >
+
+ > The format `type` for an `entity_id` may vary, based on
+ the Akamai Cloud `service_type`. For example, the `dbaas`
+ service returns an integer value for an `id`, that you'd
+ use for the `entity_id`, while other services may return a
+ string for their `id`. With the Alerts operations, all of
+ these formats are recognized as an `entity_id`, when you
+ include them as a `string`.
+ example:
+ - '126905'
+ - '126906'
+ - '137435'
+ - '141496'
+ - '190003'
+ - '257625'
+ - '257626'
+ items:
+ type: string
+ type: array
+ has_more_resources:
+ description: >-
+ Whether there are additional `entity_ids` associated with
+ the alert for which the user doesn't have at least
+ `read-only` access.
+ example: false
+ type: boolean
+ id:
+ description: The unique identifier for the alert definition.
+ example: 10000
+ type: integer
+ x-linode-filterable: true
+ label:
+ description: >-
+ The name of the alert definition. This is used for display
+ purposes in Akamai Cloud Manager.
+ example: High Memory Usage Plan Dedicated
+ type: string
+ x-linode-filterable: true
+ rule_criteria:
+ additionalProperties: false
+ description: Details for the rules required to trigger the alert.
+ properties:
+ rules:
+ description: >-
+ The individual rules that make up the alert
+ definition.
+ items:
+ additionalProperties: false
+ properties:
+ aggregate_function:
+ description: >-
+ The aggregation function applied to the
+ `metric`. Available values are `avg`, `sum`,
+ `min`, and `max`.
+ enum:
+ - avg
+ - sum
+ - min
+ - max
+ example: avg
+ type: string
+ dimension_filters:
+ description: Dimension filters for the rule.
+ items:
+ additionalProperties: false
+ properties:
+ dimension_label:
+ description: >-
+ The name of the dimension to be used in
+ the filter.
+ example: node_type
+ type: string
+ label:
+ description: >-
+ The name of the dimension filter. Used for
+ display purposes.
+ example: Node Type
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the dimension
+ filter. Available values are `eq` for
+ equal, `neq` for not equal, `startswith`,
+ and `endswith`.
+ enum:
+ - eq
+ - neq
+ - startswith
+ - endswith
+ example: eq
+ type: string
+ value:
+ description: >-
+ The value to compare the `dimension_label`
+ against.
+ example: primary
+ type: string
+ type: object
+ type: array
+ label:
+ description: >-
+ The name of the individual rule. This is used
+ for display purposes in Akamai Cloud Manager.
+ example: Memory Usage
+ type: string
+ metric:
+ description: The metric to query.
+ example: memory_usage
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the metric. Available
+ values are `eq` for equal, `gt` for greater
+ than, `lt` for less than, `gte` for greater than
+ or equal, and `lte` for less than or equal.
+ enum:
+ - eq
+ - gt
+ - lt
+ - gte
+ - lte
+ example: eq
+ type: string
+ threshold:
+ description: >-
+ The predefined value or condition that triggers
+ an alert when met or exceeded. For example, for
+ `avg(cpu_usage) > 80`, the `threshold` is 80.
+ example: 95
+ format: float
+ type: number
+ unit:
+ description: >-
+ The unit of the metric. This can be values like
+ `percent` for percentage or `GB` for gigabyte.
+ enum:
+ - number
+ - byte
+ - second
+ - percent
+ - bit_per_second
+ - millisecond
+ - KB
+ - MB
+ - GB
+ example: percent
+ type: string
+ type: object
+ type: array
+ type: object
+ service_type:
+ description: >-
+ The identifier for the Akamai Cloud Computing service. Use
+ this value to call out the service in other Monitor
+ operations in the API. Currently, only the Managed
+ Databases (`dbaas`) service is supported.
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ severity:
+ description: >-
+ The severity of the alert. Supported values include `3`
+ for info, `2` for low, `1` for medium, and `0` for severe.
+ enum:
+ - 0
+ - 1
+ - 2
+ - 3
+ example: 2
+ type: integer
+ status:
+ description: >-
+ The current status of the alert. This can be either
+ `enabled`, `disabled`, `in progress`, or `failed`.
+ enum:
+ - enabled
+ - disabled
+ - in progress
+ - failed
+ example: enabled
+ type: string
+ x-linode-filterable: true
+ trigger_conditions:
+ additionalProperties: false
+ description: >-
+ The conditions that need to be met to send a notification
+ for the alert.
+ properties:
+ criteria_condition:
+ description: >-
+ Signifies the logical operation applied when multiple
+ metrics are set for an alert definition. For example,
+ if you wanted to apply both `cpu_usage > 90` and
+ `memory_usage > 80`, `ALL` is the
+ `criteria_condition`. Currently, only `ALL` is
+ supported.
+ enum:
+ - ALL
+ example: ALL
+ type: string
+ evaluation_period_seconds:
+ description: >-
+ The time period over which data is collected before
+ evaluating whether the alert definition's `threshold`
+ has been met or exceeded.
+
+
+ > 📘
+
+ >
+
+ > During the beta, only a value of `300` seconds is
+ supported.
+ example: 300
+ type: integer
+ polling_interval_seconds:
+ description: >-
+ The frequency at which the `metric` is checked for a
+ change in state. For example, with `cpu_usage` set as
+ your `metric` and this set to `300`, your `cpu_usage`
+ is checked every 5 minutes for some change in its
+ state.
+
+
+ > 📘
+
+ >
+
+ > During the beta, only a value of `300` seconds is
+ supported.
+ example: 300
+ type: integer
+ trigger_occurrences:
+ description: >-
+ The minimum number of consecutive
+ `polling_interval_seconds` periods that the
+ `threshold` needs to be breached to trigger the alert.
+ example: 3
+ type: integer
+ type: object
+ type:
+ description: >-
+ The type of alert. This can be either `user` for an alert
+ specific to the current user, or `system` for one that
+ applies to all users on your account.
+ enum:
+ - user
+ - system
+ example: system
+ type: string
+ x-linode-filterable: true
+ updated:
+ description: >-
+ When the alert definition was last updated. This is the
+ same as `created` if the alert definition hasn't been
+ updated.
+ example: '2025-03-20 01:42:11'
+ format: date-time
+ type: string
+ updated_by:
+ description: >-
+ For a `user` alert definition, this is the user on your
+ account that last
+ [updated](https://techdocs.akamai.com/linode-api/reference/put-alert-definition)
+ it. For a `system` alert definition, this is returned as
+ `system`. If it hasn't been updated, this value is the
+ same as `created_by`.
+ example: system
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-alert-definition-response.yaml
+ description: Returns a paginated list of dashboards.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - monitor:read_write
+ summary: Update an alert definition
+ tags:
+ - Alerts
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: monitor:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ - syntax: |-
+ linode-cli alerts definition-update dbaas 457 \
+ --status disabled \
+ --label Read-Write Channel (old)
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: definition-update
+ x-linode-grant: read_write
+ delete:
+ description: >-
+ __Beta__ Delete a specific alert definition on your account. Include the
+ appropriate `service_type` and `alert_id` as path parameters.
+
+
+ > 📘
+
+ >
+
+ > - This operation is beta. Call it using the `v4beta` path in its URL.
+
+ >
+
+ > - You need `read_only` access to the
+ [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference)
+ for the target `service_type`.
+
+ >
+
+ > - An [alert
+ definition](https://techdocs.akamai.com/linode-api/reference/get-alert-definitions)
+ with a `type` of `system` can't be deleted.
+
+ >
+
+ > - Currently, only the Managed Databases (`dbaas`) service type is
+ supported.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-alert-definition
+ operationId: delete-alert-definition
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/empty.json
+ description: Alert definition successfully deleted.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - monitor:read_write
+ summary: Delete an alert definition
+ tags:
+ - Alerts
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli alerts definition-delete 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: monitor:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: definition-delete
+ x-linode-grant: read_only
+ parameters:
+ - description: >-
+ __Enum__ The Akamai Cloud Computing service being monitored.
+ Currently, only the Managed Databases (`dbaas`) service type is
+ supported.
+ example: '{{service_type}}'
+ in: path
+ name: service_type
+ required: true
+ schema:
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ x-akamai:
+ file-path: parameters/aclp-service-type.yaml
+ - description: >-
+ The unique identifier assigned to the alert definition. Run the [List
+ alert
+ definitions](https://techdocs.akamai.com/linode-api/reference/get-alert-definitions)
+ operation and store the `id` for the applicable alert definition.
+ example: '{{alert_id}}'
+ in: path
+ name: alert_id
+ required: true
+ schema:
+ example: 457
+ type: integer
+ x-akamai:
+ file-path: parameters/aclp-alert-id.yaml
+ x-akamai:
+ file-path: paths/aclp-service-alert-definition.yaml
+ path-info: /monitor/services/{service_type}/alert-definitions/{alert_id}
+ x-linode-cli-command: alerts
+ /monitor/services/{service_type}/dashboards:
+ get:
+ description: >-
+ __Beta__ Returns all available dashboards for a given service type.
+ Include the appropriate `service_type` as a path parameter.
+
+
+ > 📘
+
+ >
+
+ > - This operation is beta. Call it using the `v4beta` path in its URL.
+
+ >
+
+ > - Currently, only the Managed Databases (`dbaas`) service type is
+ supported.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-dashboards
+ operationId: get-dashboards
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - created: '2024-10-10T05:01:58'
+ id: 1
+ label: Resource Usage
+ service_type: dbaas
+ type: standard
+ updated: '2024-10-10T05:01:58'
+ widgets:
+ - aggregate_function: sum
+ chart_type: area
+ color: default
+ label: CPU Usage
+ metric: cpu_usage
+ size: 12
+ unit: '%'
+ y_label: cpu_usage
+ - aggregate_function: sum
+ chart_type: area
+ color: default
+ label: Memory Usage
+ metric: memory_usage
+ size: 6
+ unit: '%'
+ y_label: memory_usage
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ properties:
+ created:
+ description: When the dashboard was created.
+ example: '2024-10-10T05:01:58Z'
+ format: date-time
+ type: string
+ id:
+ description: The unique ID assigned to the dashboard.
+ example: 1
+ type: integer
+ label:
+ description: >-
+ The name of the dashboard. This is used for display
+ purposes in Akamai Cloud Manager.
+ example: Resource Usage
+ type: string
+ service_type:
+ description: >-
+ The Akamai Cloud Computing service used by this
+ dashboard. Currently, only the Managed Databases
+ (`dbaas`) service is supported.
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ type:
+ description: >-
+ The type of dashboard. Currently, this can only be
+ `standard` for a dashboard that uses default
+ formatting.
+ enum:
+ - standard
+ example: standard
+ type: string
+ updated:
+ description: When the dashboard was last updated.
+ example: '2024-10-12T08:15:37Z'
+ format: date-time
+ type: string
+ widgets:
+ description: The widgets used in the dashboard.
+ items:
+ additionalProperties: false
+ properties:
+ aggregate_function:
+ default: avg
+ description: >-
+ The aggregate function for the metric. This
+ defaults to `avg` for average.
+ enum:
+ - min
+ - max
+ - avg
+ - sum
+ - rate
+ - increase
+ example: avg
+ type: string
+ chart_type:
+ description: >-
+ The type of chart used in the widget. This can
+ be `line` for a line chart or `area` for an
+ area chart.
+ enum:
+ - line
+ - area
+ example: line
+ type: string
+ color:
+ description: The color used in the widget.
+ example: red
+ type: string
+ label:
+ description: >-
+ The name of the widget. This is used for
+ display purposes in Akamai Cloud Manager.
+ example: CPU Usage
+ type: string
+ metric:
+ description: The metric used in the widget.
+ example: cpu_usage
+ type: string
+ size:
+ description: >-
+ The size of the widget. This can be `6` or
+ `12` grid units, expressed as strings.
+ enum:
+ - '6'
+ - '12'
+ example: '6'
+ type: string
+ unit:
+ description: >-
+ The unit of the metric. This can be values
+ like `%` for percentage or `GB` for gigabyte.
+ enum:
+ - '%'
+ - Bytes
+ - sec
+ - bps
+ - msec
+ - Bps
+ - KB
+ - MB
+ - GB
+ - rate
+ - percentile
+ - ratio
+ - OPS
+ - IOPS
+ example: Bps
+ type: string
+ y_label:
+ description: >-
+ The label for the y-axis in the widget's
+ chart.
+ example: Disk Usage
+ type: string
+ type: object
+ type: array
+ type: object
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ required:
+ - data
+ - page
+ - pages
+ - results
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-dashboards-service-type.yaml
+ description: Returns a paginated list of dashboards.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - monitor:read_only
+ summary: List dashboards for a service type
+ tags:
+ - Metrics
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli monitor dashboards-list dbaas
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: monitor:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: dashboards-list
+ x-linode-grant: read_only
+ parameters:
+ - description: >-
+ __Enum__ The Akamai Cloud Computing service being monitored.
+ Currently, only the Managed Databases (`dbaas`) service type is
+ supported.
+ example: '{{service_type}}'
+ in: path
+ name: service_type
+ required: true
+ schema:
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ x-akamai:
+ file-path: parameters/aclp-service-type.yaml
+ x-akamai:
+ file-path: paths/aclp-get-dashboards-by-service-type.yaml
+ path-info: /{apiVersion}/monitor/services/{service_type}/dashboards
+ x-linode-cli-command: monitor
+ /monitor/services/{service_type}/metric-definitions:
+ get:
+ description: >-
+ __Beta__ Returns metrics for a specific service type. Include the
+ appropriate `service_type` as a path parameter.
+
+
+ > 📘
+
+ >
+
+ > - This operation is beta. Call it using the `v4beta` path in its URL.
+
+ >
+
+ > - Currently, only the Managed Databases (`dbaas`) service type is
+ supported.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-monitor-information
+ operationId: get-monitor-information
+ parameters:
+ - description: >-
+ Specifies a JSON object to filter down the results. See [Filtering
+ and sorting](filtering-and-sorting) for details.
+ example: '{{X-Filter}}'
+ in: header
+ name: X-Filter
+ required: false
+ schema:
+ additionalProperties: false
+ anyOf:
+ - properties:
+ is_alertable:
+ description: >-
+ Filter by whether the metric is alertable (`true` or
+ `false`).
+ type: boolean
+ type: object
+ - properties:
+ metric_type:
+ description: >-
+ Filter by the metric type. Available values are `counter`,
+ `histogram`, `gauge`, or `summary`.
+ enum:
+ - counter
+ - histogram
+ - gauge
+ - summary
+ type: string
+ type: object
+ - properties:
+ +and:
+ description: >-
+ All conditions need to be true. Include both
+ `is_alertable` and `metric_type` conditions.
+ items:
+ additionalProperties: false
+ properties:
+ is_alertable:
+ type: boolean
+ metric_type:
+ enum:
+ - counter
+ - histogram
+ - gauge
+ - summary
+ type: string
+ type: object
+ type: array
+ type: object
+ - properties:
+ +or:
+ description: >-
+ At least one condition needs to be true. Include both
+ `is_alertable` and `metric_type` conditions.
+ items:
+ additionalProperties: false
+ properties:
+ is_alertable:
+ type: boolean
+ metric_type:
+ enum:
+ - counter
+ - histogram
+ - gauge
+ - summary
+ type: string
+ type: object
+ type: array
+ type: object
+ description: >-
+ Specifies the optional `X-Filter` header JSON object's filtering
+ and sort criteria.
+ type: object
+ x-akamai:
+ file-path: schemas/x-filter-aclp.yaml
+ x-akamai:
+ file-path: parameters/x-filter-header-aclp.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - available_aggregate_functions:
+ - max
+ - avg
+ - min
+ - sum
+ dimensions:
+ - dimension_label: node_type
+ label: Node Type
+ values:
+ - primary
+ - secondary
+ is_alertable: true
+ label: CPU Usage
+ metric: cpu_usage
+ metric_type: gauge
+ scrape_interval: 60s
+ unit: percent
+ - available_aggregate_functions:
+ - max
+ - avg
+ - min
+ - sum
+ dimensions:
+ - dimension_label: node_type
+ label: Node Type
+ values:
+ - primary
+ - secondary
+ is_alertable: true
+ label: Disk I/O Read
+ metric: read_iops
+ metric_type: gauge
+ scrape_interval: 60s
+ unit: iops
+ page: 1
+ pages: 1
+ results: 2
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ properties:
+ available_aggregate_functions:
+ description: Available aggregate functions for the metric.
+ example: increase
+ items:
+ enum:
+ - min
+ - max
+ - avg
+ - sum
+ - rate
+ - increase
+ type: string
+ type: array
+ dimensions:
+ description: Dimensions for the metric.
+ items:
+ additionalProperties: false
+ properties:
+ dimension_label:
+ description: >-
+ The label used to represent the dimension in
+ metrics. Use this value to call out the
+ service in other Monitor operations in the
+ API.
+ example: node_type
+ type: string
+ label:
+ description: >-
+ The label of the dimension. This is used for
+ display purposes in Akamai Cloud Manager.
+ example: Node Type
+ type: string
+ values:
+ description: Available values for the `dimension_label`.
+ example: primary
+ items:
+ type: string
+ type: array
+ type: object
+ type: array
+ is_alertable:
+ description: Whether the metric is alertable.
+ example: false
+ type: boolean
+ label:
+ description: >-
+ The name of the metric. This is used for display
+ purposes in Akamai Cloud Manager.
+ example: CPU Usage
+ type: string
+ metric:
+ description: >-
+ The identifier for the metric. This is how the
+ metric is called out in other Monitor operations in
+ the API.
+ example: cpu_usage
+ type: string
+ metric_type:
+ description: >-
+ The type of metric. A value of `counter` represents
+ variable values and a set target for the count. A
+ `histogram` represents the frequency distribution of
+ data points across a continuous range of numerical
+ values. A `gauge` represents the performance against
+ a target goal, and `summary` presents and summarizes
+ data from multiple sources.
+ enum:
+ - counter
+ - histogram
+ - gauge
+ - summary
+ example: histogram
+ type: string
+ scrape_interval:
+ description: >-
+ How frequently a metric is scraped to gather data,
+ using `s` for seconds, `m` for minutes, or `h` for
+ hours. Set to `60s`, the metric would be scraped
+ every 60 seconds. Set to `2m`, the scrape occurs
+ every two minutes.
+ example: 60s
+ type: string
+ unit:
+ description: The unit of measurement for the metric.
+ enum:
+ - '%'
+ - Bytes
+ - sec
+ - bps
+ - msec
+ - Bps
+ - KB
+ - MB
+ - GB
+ - rate
+ - percentile
+ - ratio
+ - OPS
+ - IOPS
+ example: Bps
+ type: string
+ type: object
+ type: array
+ page:
+ description: >-
+ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ type: integer
+ pages:
+ description: >-
+ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ type: integer
+ results:
+ description: The total number of results.
+ example: 1
+ type: integer
+ required:
+ - data
+ - page
+ - pages
+ - results
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-monitor-services-get-metrics-info.yaml
+ description: Returns a paginated list of metric information.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - monitor:read_only
+ summary: List metrics for a service type
+ tags:
+ - Metrics
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli monitor metrics-list dbaas
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: monitor:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: metrics-list
+ x-linode-grant: read_only
+ parameters:
+ - description: >-
+ __Enum__ The Akamai Cloud Computing service being monitored.
+ Currently, only the Managed Databases (`dbaas`) service type is
+ supported.
+ example: '{{service_type}}'
+ in: path
+ name: service_type
+ required: true
+ schema:
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ x-akamai:
+ file-path: parameters/aclp-service-type.yaml
+ x-akamai:
+ file-path: paths/aclp-get-metrics-info.yaml
+ path-info: /{apiVersion}/monitor/services/{service_type}/metric-definitions
+ x-linode-cli-command: monitor
+ /monitor/services/{service_type}/metrics:
+ post:
+ description: >-
+ __Beta__ Returns metrics information for the individual entities within
+ a specific service type. Include the appropriate `service_type` as a
+ path parameter. Requires an `authorization: Bearer`
+ [token](https://techdocs.akamai.com/linode-api/reference/post-get-token)
+ you've created for this `service_type`.
+
+
+ > 📘
+
+ >
+
+ > - Currently, only the Managed Databases (`dbaas`) service type is
+ supported.
+
+ >
+
+ > - This operation uses a different URL and version from standard Linode
+ API operations. Verify you're using the URL with the
+ `monitor-api.linode.com` hostname and include `v2beta` as the version in
+ the URL.
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-read-metric
+ operationId: post-read-metric
+ requestBody:
+ content:
+ application/json:
+ example:
+ absolute_time_duration:
+ end: '2024-10-16T02:00:00Z'
+ start: '2024-10-14T01:00:00Z'
+ entity_ids:
+ - 13116
+ - 13217
+ - 13331
+ filters:
+ - dimension_label: node_type
+ operator: eq
+ value: primary
+ metrics:
+ - aggregate_function: avg
+ name: read_iops
+ - aggregate_function: avg
+ name: cpu_usage
+ time_granularity:
+ unit: sec
+ value: 700
+ schema:
+ additionalProperties: false
+ description: Settings used for data queries.
+ oneOf:
+ - additionalProperties: false
+ allOf:
+ - additionalProperties: false
+ description: Settings used for data queries.
+ properties:
+ entity_ids:
+ description: >-
+ The `id` for each individual entity from a
+ `service_type`. Get this value by running the list
+ operation for the appropriate entity. For example,
+ if your entity is one of your PostgreSQL databases,
+ run the [List PostgreSQL Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances)
+ operation and store the `id` for the appropriate
+ database from the response.
+ example:
+ - 13116
+ - 13217
+ - 13331
+ items:
+ type: integer
+ minItems: 1
+ type: array
+ filters:
+ description: >-
+ Individual objects that define dimension filters for
+ the query.
+ items:
+ additionalProperties: false
+ properties:
+ dimension_label:
+ description: The name of the dimension label to filter on.
+ example: node_type
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the dimension label.
+ Available values are `eq` for equal, `neq` for
+ not equal, `startswith`, and `endswith`.
+ enum:
+ - eq
+ - neq
+ - startswith
+ - endswith
+ example: eq
+ type: string
+ value:
+ description: >-
+ The value to compare the dimension label
+ against.
+ example: primary
+ type: string
+ type: object
+ type: array
+ metrics:
+ description: >-
+ A list of metric objects, each specifying a metric
+ name and its corresponding aggregation function.
+ example:
+ - aggregate_function: avg
+ name: cpu_usage
+ - aggregate_function: sum
+ name: cpu_usage
+ items:
+ additionalProperties: false
+ properties:
+ aggregate_function:
+ description: >-
+ The aggregation function applied to the
+ metric. Available values are `min`, `max`,
+ `avg`, and `sum`.
+ enum:
+ - min
+ - max
+ - avg
+ - sum
+ example: avg
+ type: string
+ name:
+ description: The metric to query.
+ example: cpu_usage
+ type: string
+ type: object
+ minItems: 1
+ type: array
+ time_granularity:
+ additionalProperties: false
+ description: >-
+ Allows for an optional time granularity setting for
+ metric data.
+ properties:
+ unit:
+ description: >-
+ The unit of time granularity for the metric
+ data. Available values are `sec`, `min`, `hr`,
+ and `days`.
+ enum:
+ - sec
+ - min
+ - hr
+ - days
+ example: min
+ type: string
+ value:
+ description: >-
+ The value that corresponds to the `unit`. Set to
+ `10` with a `unit` of `hr` for 10 hours.
+ example: 5
+ type: integer
+ type: object
+ required:
+ - metrics
+ - entity_ids
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-metric-common.yaml
+ - additionalProperties: false
+ properties:
+ relative_time_duration:
+ additionalProperties: false
+ description: >-
+ Specifies a relative time duration for data queries.
+ Queries begin immediately for the specified amount
+ of time. You can specify a `relative_time_duration`
+ or an `absolute_time_duration`, but not both.
+ properties:
+ unit:
+ description: >-
+ The unit of time used for the relative duration
+ to query metric data. Available values are
+ `sec`, `min`, `hr`, and `days`.
+ enum:
+ - sec
+ - min
+ - hr
+ - days
+ example: min
+ type: string
+ value:
+ description: >-
+ The value that corresponds to the `unit`. Set to
+ `30` with a `unit` of `min` for 30 minutes.
+ example: 30
+ type: integer
+ type: object
+ type: object
+ description: >-
+ Settings applied to specify a relative time range for data
+ queries.
+ required:
+ - relative_time_duration
+ title: Relative Time
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-metric-relative-time.yaml
+ - additionalProperties: false
+ allOf:
+ - additionalProperties: false
+ description: Settings used for data queries.
+ properties:
+ entity_ids:
+ description: >-
+ The `id` for each individual entity from a
+ `service_type`. Get this value by running the list
+ operation for the appropriate entity. For example,
+ if your entity is one of your PostgreSQL databases,
+ run the [List PostgreSQL Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances)
+ operation and store the `id` for the appropriate
+ database from the response.
+ example:
+ - 13116
+ - 13217
+ - 13331
+ items:
+ type: integer
+ minItems: 1
+ type: array
+ filters:
+ description: >-
+ Individual objects that define dimension filters for
+ the query.
+ items:
+ additionalProperties: false
+ properties:
+ dimension_label:
+ description: The name of the dimension label to filter on.
+ example: node_type
+ type: string
+ operator:
+ description: >-
+ The operator to apply to the dimension label.
+ Available values are `eq` for equal, `neq` for
+ not equal, `startswith`, and `endswith`.
+ enum:
+ - eq
+ - neq
+ - startswith
+ - endswith
+ example: eq
+ type: string
+ value:
+ description: >-
+ The value to compare the dimension label
+ against.
+ example: primary
+ type: string
+ type: object
+ type: array
+ metrics:
+ description: >-
+ A list of metric objects, each specifying a metric
+ name and its corresponding aggregation function.
+ example:
+ - aggregate_function: avg
+ name: cpu_usage
+ - aggregate_function: sum
+ name: cpu_usage
+ items:
+ additionalProperties: false
+ properties:
+ aggregate_function:
+ description: >-
+ The aggregation function applied to the
+ metric. Available values are `min`, `max`,
+ `avg`, and `sum`.
+ enum:
+ - min
+ - max
+ - avg
+ - sum
+ example: avg
+ type: string
+ name:
+ description: The metric to query.
+ example: cpu_usage
+ type: string
+ type: object
+ minItems: 1
+ type: array
+ time_granularity:
+ additionalProperties: false
+ description: >-
+ Allows for an optional time granularity setting for
+ metric data.
+ properties:
+ unit:
+ description: >-
+ The unit of time granularity for the metric
+ data. Available values are `sec`, `min`, `hr`,
+ and `days`.
+ enum:
+ - sec
+ - min
+ - hr
+ - days
+ example: min
+ type: string
+ value:
+ description: >-
+ The value that corresponds to the `unit`. Set to
+ `10` with a `unit` of `hr` for 10 hours.
+ example: 5
+ type: integer
+ type: object
+ required:
+ - metrics
+ - entity_ids
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-metric-common.yaml
+ - additionalProperties: false
+ properties:
+ absolute_time_duration:
+ additionalProperties: false
+ description: >-
+ Specifies an absolute time range for data queries.
+ Queries begin and end at a specific time.
+
+
+ > 📘
+
+ >
+
+ > - You can query data for up to 31 days.
+
+ >
+
+ > - You can specify a `relative_time_duration` or an
+ `absolute_time_duration`, but not both.
+ properties:
+ end:
+ description: >-
+ The end time for querying data, in ISO 8601
+ format, using the UTC time zone.
+ example: '2024-10-10T23:59:59Z'
+ format: date-time
+ type: string
+ start:
+ description: >-
+ The start time for querying data, in ISO 8601
+ format, using the UTC time zone.
+ example: '2024-10-10T00:00:01Z'
+ format: date-time
+ type: string
+ type: object
+ type: object
+ description: >-
+ Settings applied to specify an absolute time range for data
+ queries.
+ required:
+ - absolute_time_duration
+ title: Absolute Time
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-metric-absolute-time.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-metric-read-request.yaml
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ result:
+ - metric:
+ entity_id: 13316
+ metric_name: avg_read_iops
+ node_id: primary-9
+ values:
+ - - 1728996500
+ - '90.55555555555556'
+ - - 1729043400
+ - '14890.583333333334'
+ - metric:
+ entity_id: 13217
+ metric_name: avg_cpu_usage
+ node_id: primary-0
+ values:
+ - - 1728996500
+ - '12.45'
+ - - 1729043400
+ - '18.67'
+ resultType: matrix
+ isPartial: false
+ stats:
+ executionTimeMsec: 21
+ seriesFetched: '2'
+ status: success
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ additionalProperties: false
+ description: A collection of information for the metric.
+ properties:
+ result:
+ description: >-
+ Pairs of a specific `metric` and its corresponding
+ `values`.
+ items:
+ additionalProperties: false
+ properties:
+ metric:
+ additionalProperties:
+ type: string
+ description: >-
+ A mapping of labels where keys and values are
+ strings representing details for the metric.
+ example:
+ - cluster_id: '11150'
+ type: object
+ values:
+ description: >-
+ Pairs that consist of an epoch timestamp and a
+ corresponding metric value.
+ example:
+ - - 1696886400
+ - '75.533333'
+ - - 1729043400
+ - '14890.583333333334'
+ items:
+ items:
+ oneOf:
+ - title: Epoch timestamp
+ type: integer
+ - title: Metric value
+ type: string
+ type: array
+ minItems: 1
+ type: array
+ type: object
+ minItems: 1
+ type: array
+ resultType:
+ description: >-
+ The type of result, which will always be `matrix` in
+ this context.
+ enum:
+ - matrix
+ example: matrix
+ type: string
+ type: object
+ isPartial:
+ description: >-
+ Indicates whether the result is partial. A result of
+ `false` indicates the response is complete, while `true`
+ indicates a partial response.
+ example: false
+ type: boolean
+ stats:
+ additionalProperties: false
+ description: Statistics for a query against a `metric`.
+ properties:
+ executionTimeMsec:
+ description: The time taken to execute the query, in milliseconds.
+ example: 21
+ minimum: 0
+ type: integer
+ seriesFetched:
+ description: The number of metric series fetched in the query.
+ example: '1'
+ minLength: 1
+ type: string
+ type: object
+ status:
+ description: The status of the query execution, such as `success`.
+ example: success
+ type: string
+ required:
+ - data
+ - isPartial
+ - stats
+ - status
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-metric-read-response.yaml
+ description: Metrics returned.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: Get an entity's metrics
+ tags:
+ - Metrics
+ x-akamai:
+ status: BETA
+ x-linode-cli-action: metric-read
+ x-linode-cli-skip: true
+ x-linode-grant: read_write
+ parameters:
+ - description: >-
+ __Enum__ The Akamai Cloud Computing service being monitored.
+ Currently, only the Managed Databases (`dbaas`) service type is
+ supported.
+ example: '{{service_type}}'
+ in: path
+ name: service_type
+ required: true
+ schema:
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ x-akamai:
+ file-path: parameters/aclp-service-type.yaml
+ x-akamai:
+ auth-type: JWT
+ file-path: paths/aclp-metric-read.yaml
+ path-info: /{apiVersion}/monitor/services/{service-type}/metrics
+ x-linode-cli-command: metric
+ /monitor/services/{service_type}/token:
+ post:
+ description: >-
+ __Beta__ Returns a token that authenticates requests for the entities
+ within a specific service type. Include the appropriate `service_type`
+ as a path parameter. The token has a lifetime of six hours after you
+ create it. For an example of the token generation process, see [Monitor
+ API operation
+ authentication](https://techdocs.akamai.com/linode-api/docs/get-started#monitor-api-operation-authentication).
+
+
+ > 📘
+
+ >
+
+ > - This operation is beta. Call it using the `v4beta` path in its URL.
+
+ >
+
+ > - Currently, only the Managed Databases (`dbaas`) service type is
+ supported.
+
+ >
+
+ > - You also need `read_only` access to the
+ [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference)
+ for the selected `service_type`.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-get-token
+ operationId: post-get-token
+ requestBody:
+ content:
+ application/json:
+ example:
+ ref: ../examples/post-aclp-token-request-200.json
+ schema:
+ additionalProperties: false
+ properties:
+ entity_ids:
+ description: >-
+ The `id` for each individual entity from a `service_type`.
+ Get this value by running the list operation for the
+ appropriate entity. For example, if your entity is one of
+ your PostgreSQL databases, run the [List PostgreSQL Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances)
+ operation and store the `id` for the appropriate database
+ from the response.
+
+
+ > 📘
+
+ >
+
+ > - This field is required and supports up to 100 total
+ entries.
+
+ >
+
+ > - You need read access permission to all of the entities
+ you include in the token. Run the [List a user's
+ grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ operation to see the permission level for each entity in
+ your account.
+ example:
+ - 13166
+ - 13217
+ items:
+ type: integer
+ maxItems: 100
+ minItems: 1
+ type: array
+ required:
+ - entity_ids
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-token-request.yaml
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ token: abcdef1234567890
+ schema:
+ additionalProperties: false
+ properties:
+ token:
+ description: >-
+ A string representing the authentication token. This token
+ is required for subsequent requests.
+ example: abcdef1234567890
+ type: string
+ required:
+ - token
+ type: object
+ x-akamai:
+ file-path: schemas/aclp-token-response.yaml
+ description: The response provides the token.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - monitor:read_only
+ summary: Create a token for a service type
+ tags:
+ - Metrics
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: |-
+ linode-cli monitor token-get dbaas \
+ --entity_ids 189690 \
+ --entity_ids 188020 --json
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: monitor:read_only, :read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: token-get
+ x-linode-grant: read_only
+ parameters:
+ - description: >-
+ __Enum__ The Akamai Cloud Computing service being monitored.
+ Currently, only the Managed Databases (`dbaas`) service type is
+ supported.
+ example: '{{service_type}}'
+ in: path
+ name: service_type
+ required: true
+ schema:
+ enum:
+ - dbaas
+ example: dbaas
+ type: string
+ x-akamai:
+ file-path: parameters/aclp-service-type.yaml
+ x-akamai:
+ file-path: paths/aclp-get-token.yaml
+ path-info: /{apiVersion}/monitor/services/{service-type}/token
+ x-linode-cli-command: monitor
+components:
+ x-stackQL-resources:
+ alert_channels:
+ id: linode.monitor.alert_channels
+ name: alert_channels
+ title: Alert Channels
+ methods:
+ get_alert_channels:
+ operation:
+ $ref: '#/paths/~1monitor~1alert-channels/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/alert_channels/methods/get_alert_channels
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ alert_definitions:
+ id: linode.monitor.alert_definitions
+ name: alert_definitions
+ title: Alert Definitions
+ methods:
+ get_alert_definitions:
+ operation:
+ $ref: '#/paths/~1monitor~1alert-definitions/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_alert_definition_for_service_type:
+ operation:
+ $ref: >-
+ #/paths/~1monitor~1services~1{service_type}~1alert-definitions/post
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_alert_definitions_for_service_type:
+ operation:
+ $ref: '#/paths/~1monitor~1services~1{service_type}~1alert-definitions/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_alert_definition:
+ operation:
+ $ref: >-
+ #/paths/~1monitor~1services~1{service_type}~1alert-definitions~1{alert_id}/get
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_alert_definition:
+ operation:
+ $ref: >-
+ #/paths/~1monitor~1services~1{service_type}~1alert-definitions~1{alert_id}/put
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_alert_definition:
+ operation:
+ $ref: >-
+ #/paths/~1monitor~1services~1{service_type}~1alert-definitions~1{alert_id}/delete
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/alert_definitions/methods/get_alert_definition
+ - $ref: >-
+ #/components/x-stackQL-resources/alert_definitions/methods/get_alert_definitions_for_service_type
+ - $ref: >-
+ #/components/x-stackQL-resources/alert_definitions/methods/get_alert_definitions
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/alert_definitions/methods/post_alert_definition_for_service_type
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/alert_definitions/methods/delete_alert_definition
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/alert_definitions/methods/put_alert_definition
+ dashboards:
+ id: linode.monitor.dashboards
+ name: dashboards
+ title: Dashboards
+ methods:
+ get_dashboards_all:
+ operation:
+ $ref: '#/paths/~1monitor~1dashboards/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ get_dashboards_by_id:
+ operation:
+ $ref: '#/paths/~1monitor~1dashboards~1{dashboard_id}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_dashboards:
+ operation:
+ $ref: '#/paths/~1monitor~1services~1{service_type}~1dashboards/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/dashboards/methods/get_dashboards_by_id
+ - $ref: '#/components/x-stackQL-resources/dashboards/methods/get_dashboards'
+ - $ref: >-
+ #/components/x-stackQL-resources/dashboards/methods/get_dashboards_all
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ monitor_services:
+ id: linode.monitor.monitor_services
+ name: monitor_services
+ title: Monitor Services
+ methods:
+ get_monitor_services:
+ operation:
+ $ref: '#/paths/~1monitor~1services/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_monitor_services_for_service_type:
+ operation:
+ $ref: '#/paths/~1monitor~1services~1{service_type}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/monitor_services/methods/get_monitor_services_for_service_type
+ - $ref: >-
+ #/components/x-stackQL-resources/monitor_services/methods/get_monitor_services
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ metrics:
+ id: linode.monitor.metrics
+ name: metrics
+ title: Metrics
+ methods:
+ get_monitor_information:
+ operation:
+ $ref: >-
+ #/paths/~1monitor~1services~1{service_type}~1metric-definitions/get
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_read_metric:
+ operation:
+ $ref: '#/paths/~1monitor~1services~1{service_type}~1metrics/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_get_token:
+ operation:
+ $ref: '#/paths/~1monitor~1services~1{service_type}~1token/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/metrics/methods/get_monitor_information
+ insert: []
+ update: []
+ delete: []
+ replace: []
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/networking.yaml b/providers/src/linode/v00.00.00000/services/networking.yaml
index 7b6ee275..b57cd6a0 100644
--- a/providers/src/linode/v00.00.00000/services/networking.yaml
+++ b/providers/src/linode/v00.00.00000/services/networking.yaml
@@ -1,1915 +1,758 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
info:
- version: 4.147.0
- title: Linode API - networking
- description: networking
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- IPAddress:
- type: object
- description: |
- An IP address that exists in Linode's system, either IPv4 or IPv6.
- properties:
- address:
- type: string
- format: ip
- description: |
- The IP address.
- example: 97.107.143.141
- readOnly: true
- x-linode-cli-display: 1
- gateway:
- type: string
- nullable: true
- format: ip
- description: |
- The default gateway for this address.
- example: 97.107.143.1
- readOnly: true
- subnet_mask:
- type: string
- format: ip
- description: |
- The mask that separates host bits from network bits for this address.
- example: 255.255.255.0
- readOnly: true
- prefix:
- type: integer
- description: |
- The number of bits set in the subnet mask.
- example: 24
- readOnly: true
- type:
- type: string
- enum:
- - ipv4
- - ipv6
- - ipv6/pool
- - ipv6/range
- description: |
- The type of address this is.
- example: ipv4
- readOnly: true
- x-linode-cli-display: 2
- public:
- type: boolean
- description: |
- Whether this is a public or private IP address.
- example: true
- readOnly: true
- x-linode-cli-display: 3
- rdns:
- type: string
- description: |
- The reverse DNS assigned to this address. For public IPv4 addresses, this will be set to a default value provided by Linode if not explicitly set.
- x-linode-cli-display: 4
- example: test.example.org
- nullable: true
- linode_id:
- type: integer
- description: |
- The ID of the Linode this address currently belongs to. For IPv4 addresses, this is by default the Linode that this address was assigned to on creation, and these addresses my be moved using the [/networking/ipv4/assign](/docs/api/networking/#ips-to-linodes-assign) endpoint. For SLAAC and link-local addresses, this value may not be changed.
- example: 123
- readOnly: true
- x-linode-cli-display: 6
- region:
- type: string
- description: |
- The Region this IP address resides in.
- example: us-east
- readOnly: true
- x-linode-filterable: true
- x-linode-cli-display: 5
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- IPAddressesAssignRequest:
- type: object
- description: Request object for IP Addresses Assign (POST /networking/ips/assign).
- 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: 192.0.2.1
- 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
- IPAddressesShareRequest:
- type: object
- description: A request object IP Addresses Share (POST /networking/ips/share)
- 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
- example:
- - 192.0.2.1
- - '2001:db8:3c4d:15::'
- 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.
- IPv6Pool:
- type: object
- description: |
- An object representing an IPv6 pool.
- properties:
- range:
- type: string
- description: |
- The IPv6 range of addresses in this pool.
- example: '2600:3c01::2:5000:0'
- readOnly: true
- x-linode-cli-display: 1
- prefix:
- type: integer
- description: |
- The prefix length of the address, denoting how many addresses can be assigned from this pool calculated as 2 128-prefix .
- example: 124
- x-linode-cli-display: 2
- region:
- type: string
- description: |
- The region for this pool of IPv6 addresses.
- example: us-east
- readOnly: true
- x-linode-cli-display: 3
- x-linode-filterable: true
- route_target:
- type: string
- description: |
- The last address in this block of IPv6 addresses.
- example: '2600:3c01::2:5000:f'
- nullable: true
- IPv6Range:
- type: object
- description: |
- An object representing an IPv6 range.
- properties:
- range:
- type: string
- description: |
- The IPv6 range of addresses in this pool.
- example: '2600:3c01::'
- readOnly: true
- x-linode-cli-display: 1
- prefix:
- type: integer
- description: |
- The prefix length of the address, denoting how many addresses can be assigned from this range calculated as 2 128-prefix .
- example: 64
- x-linode-cli-display: 2
- region:
- type: string
- description: |
- The region for this range of IPv6 addresses.
- example: us-east
- readOnly: true
- x-linode-cli-display: 3
- route_target:
- type: string
- description: |
- The last address in this block of IPv6 addresses.
- example: '2600:3c01::ffff:ffff:ffff:ffff'
- nullable: true
- IPv6RangeBGP:
- type: object
- description: |
- An object representing an IPv6 range.
- properties:
- range:
- type: string
- description: |
- The IPv6 range of addresses in this pool.
- example: '2600:3c01::'
- readOnly: true
- x-linode-cli-display: 1
- prefix:
- type: integer
- description: |
- The prefix length of the address, denoting how many addresses can be assigned from this range calculated as 2 128-prefix .
- example: 64
- x-linode-cli-display: 2
- region:
- type: string
- description: |
- The region for this range of IPv6 addresses.
- example: us-east
- readOnly: true
- x-linode-cli-display: 3
- is_bgp:
- type: boolean
- description: |
- Whether this IPv6 range is shared.
- example: false
- readOnly: true
- linodes:
- type: array
- items:
- type: integer
- example:
- - 123
- description: |
- A list of Linodes targeted by this IPv6 range. Includes Linodes with IP sharing.
- readOnly: true
- x-linode-cli-display: 4
- Firewall:
- type: object
- description: |
- A resource that controls incoming and outgoing network traffic to a Linode service. Only one Firewall can be attached to a Linode at any given time. [Create a Firewall Device](/docs/api/networking/#firewall-create) to assign a Firewall to a Linode service. Currently, Firewalls can only be assigned to Linode instances.
- properties:
- id:
- x-linode-filterable: true
- type: integer
- readOnly: true
- description: |
- The Firewall's unique ID.
- example: 123
- x-linode-cli-display: 1
- label:
- x-linode-filterable: true
- type: string
- description: |
- The Firewall's label, for display purposes only.
-
- Firewall labels have the following constraints:
-
- * Must begin and end with an alphanumeric character.
- * May only consist of alphanumeric characters, dashes (`-`), underscores (`_`) or periods (`.`).
- * Cannot have two dashes (`--`), underscores (`__`) or periods (`..`) in a row.
- * Must be between 3 and 32 characters.
- * Must be unique.
- example: firewall123
- minLength: 3
- maxLength: 32
- pattern: '^[a-zA-Z]((?!--|__|..)[a-zA-Z0-9-_.])+$'
- x-linode-cli-display: 2
- created:
- x-linode-filterable: true
- type: string
- format: date-time
- readOnly: true
- description: |
- When this Firewall was created.
- example: '2018-01-01T00:01:01'
- x-linode-cli-display: 4
- updated:
- x-linode-filterable: true
- type: string
- format: date-time
- readOnly: true
- description: |
- When this Firewall was last updated.
- example: '2018-01-02T00:01:01'
- x-linode-cli-display: 5
- status:
- type: string
- readOnly: true
- description: |
- The status of this Firewall.
+ title: networking API
+ description: linode networking API
+ version: 4.208.1
+paths:
+ /network-transfer/prices:
+ get:
+ description: >-
+ Returns collection of network transfer prices, including any
+ region-specific rates.
- * When a Firewall is first created its status is `enabled`.
- * Use the [Update Firewall](/docs/api/networking/#firewall-update) endpoint to set a Firewall's status to `enabled` or `disabled`.
- * Use the [Delete Firewall](/docs/api/networking/#firewall-delete) endpoint to delete a Firewall.
- enum:
- - enabled
- - disabled
- - deleted
- example: enabled
- x-linode-cli-display: 3
- rules:
- type: object
- description: |
- The inbound and outbound access rules to apply to the Firewall.
-
- A Firewall may have up to 25 rules across its inbound and outbound rulesets.
- properties:
- inbound:
- type: array
- x-linode-cli-format: json
- description: |
- The inbound rules for the firewall, as a JSON array.
- items:
- $ref: '#/components/schemas/FirewallRuleConfig'
- outbound:
- type: array
- x-linode-cli-format: json
- description: |
- The outbound rules for the firewall, as a JSON array.
- items:
- $ref: '#/components/schemas/FirewallRuleConfig'
- inbound_policy:
- type: string
- enum:
- - ACCEPT
- - DROP
- description: |
- The default behavior for inbound traffic. This setting can be overridden by [updating](/docs/api/networking/#firewall-rules-update) the `inbound.action` property of the Firewall Rule.
- example: DROP
- outbound_policy:
- type: string
- enum:
- - ACCEPT
- - DROP
- description: |
- The default behavior for outbound traffic. This setting can be overridden by [updating](/docs/api/networking/#firewall-rules-update) the `outbound.action` property of the Firewall Rule.
- example: DROP
- 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
- FirewallRuleConfig:
- type: object
- description: |
- One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports.
- properties:
- protocol:
- type: string
- enum:
- - TCP
- - UDP
- - ICMP
- - IPENCAP
- description: |
- The type of network traffic to allow.
- example: TCP
- ports:
- type: string
- 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.
- - 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` 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
- description: |
- Allowed IPv4 or IPv6 addresses. A Rule can have up to 255 addresses or networks listed across its IPv4 and IPv6 arrays. A network and a single IP are treated as equivalent when accounting for this limit.
- properties:
- ipv4:
- description: A list of IPv4 addresses or networks. Must be in IP/mask format.
- type: array
- items:
- type: string
- example:
- - 192.0.2.0/24
- ipv6:
- description: A list of IPv6 addresses or networks. Must be in IP/mask format.
- type: array
- items:
- type: string
- example:
- - '2001:DB8::/32'
- action:
- type: string
- enum:
- - ACCEPT
- - DROP
- description: |
- Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule.
- example: ACCEPT
- label:
- type: string
- description: |
- Used to identify this rule. For display purposes only.
- example: firewallrule123
- minLength: 3
- maxLength: 32
- description:
- type: string
- description: |
- Used to describe this rule. For display purposes only.
- example: An example firewall rule description.
- minLength: 1
- maxLength: 100
- FirewallDevices:
- type: object
- description: |
- Associates a Firewall with a Linode service. A Firewall can be assigned to a single Linode service 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.
- properties:
- id:
- x-linode-filterable: true
- type: integer
- description: |
- The Device's unique ID
- example: 123
- x-linode-cli-display: 2
- created:
- x-linode-filterable: true
- type: string
- format: date-time
- readOnly: true
- description: |
- When this Device was created.
- example: '2018-01-01T00:01:01'
- x-linode-cli-display: 3
- updated:
- x-linode-filterable: true
- type: string
- format: date-time
- readOnly: true
- description: |
- When this Device was last updated.
- example: '2018-01-02T00:01:01'
- x-linode-cli-display: 4
- entity:
- type: object
- readOnly: true
- description: |
- The Linode service that this Firewall has been applied to.
- properties:
- id:
- description: The entity's ID
- type: integer
- example: 123
- type:
- description: The entity's type.
- type: string
- enum:
- - linode
- example: linode
- label:
- description: The entity's label.
- type: string
- readOnly: true
- example: my-linode
- url:
- description: |
- The URL you can use to access this entity.
- type: string
- format: url
- readOnly: true
- example: /v4/linode/instances/123
- Vlans:
- type: object
- description: |
- A virtual local area network (VLAN) associated with your Account.
- properties:
- label:
- type: string
- description: The name of this VLAN.
- example: vlan-example
- readOnly: true
- x-linode-cli-display: 2
- x-linode-filterable: true
- region:
- type: string
- description: |
- This VLAN's data center region.
-
- **Note:** Currently, a VLAN can only be assigned to a Linode
- within the same data center region.
- example: ap-west
- readOnly: true
- x-linode-cli-display: 1
- x-linode-filterable: true
- linodes:
- type: array
- description: |
- An array of Linode IDs attached to this VLAN.
- items:
- type: integer
- x-linode-cli-display: 3
- readOnly: true
- example:
- - 111
- - 222
- created:
- type: string
- format: date-time
- description: |
- The date this VLAN was created.
- example: '2020-01-01T00:01:01'
- readOnly: true
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- ips:
- id: linode.networking.ips
- name: ips
- title: Ips
- methods:
- getIPs:
- operation:
- $ref: '#/paths/~1networking~1ips/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getIPs:
- operation:
- $ref: '#/paths/~1networking~1ips/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- allocateIP:
- operation:
- $ref: '#/paths/~1networking~1ips/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getIP:
- operation:
- $ref: '#/paths/~1networking~1ips~1{address}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getIP:
- operation:
- $ref: '#/paths/~1networking~1ips~1{address}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateIP:
- operation:
- $ref: '#/paths/~1networking~1ips~1{address}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- assignIPs:
- operation:
- $ref: '#/paths/~1networking~1ips~1assign/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- shareIPs:
- operation:
- $ref: '#/paths/~1networking~1ips~1share/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/ips/methods/getIPs'
- - $ref: '#/components/x-stackQL-resources/ips/methods/getIP'
- insert: []
- update: []
- delete: []
- assign:
- id: linode.networking.assign
- name: assign
- title: Assign
- methods:
- assignIPv4s:
- operation:
- $ref: '#/paths/~1networking~1ipv4~1assign/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select: []
- insert: []
- update: []
- delete: []
- share:
- id: linode.networking.share
- name: share
- title: Share
- methods:
- shareIPv4s:
- operation:
- $ref: '#/paths/~1networking~1ipv4~1share/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select: []
- insert: []
- update: []
- delete: []
- pools:
- id: linode.networking.pools
- name: pools
- title: Pools
- methods:
- getIPv6Pools:
- operation:
- $ref: '#/paths/~1networking~1ipv6~1pools/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getIPv6Pools:
- operation:
- $ref: '#/paths/~1networking~1ipv6~1pools/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/pools/methods/getIPv6Pools'
- insert: []
- update: []
- delete: []
- ranges:
- id: linode.networking.ranges
- name: ranges
- title: Ranges
- methods:
- getIPv6Ranges:
- operation:
- $ref: '#/paths/~1networking~1ipv6~1ranges/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getIPv6Ranges:
- operation:
- $ref: '#/paths/~1networking~1ipv6~1ranges/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postIPv6Range:
- operation:
- $ref: '#/paths/~1networking~1ipv6~1ranges/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getIPv6Range:
- operation:
- $ref: '#/paths/~1networking~1ipv6~1ranges~1{range}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getIPv6Range:
- operation:
- $ref: '#/paths/~1networking~1ipv6~1ranges~1{range}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteIPv6Range:
- operation:
- $ref: '#/paths/~1networking~1ipv6~1ranges~1{range}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/ranges/methods/getIPv6Ranges'
- - $ref: '#/components/x-stackQL-resources/ranges/methods/getIPv6Range'
- insert: []
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/ranges/methods/deleteIPv6Range'
- firewalls:
- id: linode.networking.firewalls
- name: firewalls
- title: Firewalls
- methods:
- getFirewalls:
- operation:
- $ref: '#/paths/~1networking~1firewalls/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getFirewalls:
- operation:
- $ref: '#/paths/~1networking~1firewalls/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createFirewalls:
- operation:
- $ref: '#/paths/~1networking~1firewalls/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getFirewall:
- operation:
- $ref: '#/paths/~1networking~1firewalls~1{firewallId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getFirewall:
- operation:
- $ref: '#/paths/~1networking~1firewalls~1{firewallId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateFirewall:
- operation:
- $ref: '#/paths/~1networking~1firewalls~1{firewallId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteFirewall:
- operation:
- $ref: '#/paths/~1networking~1firewalls~1{firewallId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/firewalls/methods/getFirewalls'
- - $ref: '#/components/x-stackQL-resources/firewalls/methods/getFirewall'
- insert:
- - $ref: '#/components/x-stackQL-resources/firewalls/methods/createFirewalls'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/firewalls/methods/deleteFirewall'
- firewalls_devices:
- id: linode.networking.firewalls_devices
- name: firewalls_devices
- title: Firewalls Devices
- methods:
- getFirewallDevices:
- operation:
- $ref: '#/paths/~1networking~1firewalls~1{firewallId}~1devices/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getFirewallDevices:
- operation:
- $ref: '#/paths/~1networking~1firewalls~1{firewallId}~1devices/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createFirewallDevice:
- operation:
- $ref: '#/paths/~1networking~1firewalls~1{firewallId}~1devices/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getFirewallDevice:
- operation:
- $ref: '#/paths/~1networking~1firewalls~1{firewallId}~1devices~1{deviceId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getFirewallDevice:
- operation:
- $ref: '#/paths/~1networking~1firewalls~1{firewallId}~1devices~1{deviceId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteFirewallDevice:
- operation:
- $ref: '#/paths/~1networking~1firewalls~1{firewallId}~1devices~1{deviceId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/firewalls_devices/methods/getFirewallDevices'
- - $ref: '#/components/x-stackQL-resources/firewalls_devices/methods/getFirewallDevice'
- insert:
- - $ref: '#/components/x-stackQL-resources/firewalls_devices/methods/createFirewallDevice'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/firewalls_devices/methods/deleteFirewallDevice'
- firewalls_rules:
- id: linode.networking.firewalls_rules
- name: firewalls_rules
- title: Firewalls Rules
- methods:
- getFirewallRules:
- operation:
- $ref: '#/paths/~1networking~1firewalls~1{firewallId}~1rules/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getFirewallRules:
- operation:
- $ref: '#/paths/~1networking~1firewalls~1{firewallId}~1rules/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateFirewallRules:
- operation:
- $ref: '#/paths/~1networking~1firewalls~1{firewallId}~1rules/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/firewalls_rules/methods/getFirewallRules'
- insert: []
- update: []
- delete: []
- vlans:
- id: linode.networking.vlans
- name: vlans
- title: Vlans
- methods:
- getVLANs:
- operation:
- $ref: '#/paths/~1networking~1vlans/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getVLANs:
- operation:
- $ref: '#/paths/~1networking~1vlans/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/vlans/methods/getVLANs'
- insert: []
- update: []
- delete: []
-paths:
- /networking/ips:
- 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'ips:read_only'
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-network-transfer-prices
+ operationId: get-network-transfer-prices
responses:
'200':
- description: A paginated list of IP Addresses.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
data:
- type: array
items:
- $ref: '#/components/schemas/IPAddress'
+ additionalProperties: false
+ description: >-
+ Returns collection of network transfer prices, including
+ any region-specific rates.
+ properties:
+ id:
+ description: >-
+ __Read-only__ The ID representing the network
+ transfer price.
+ example: network_transfer
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__, __Read-only__ The network transfer
+ price label is for display purposes only.
+ example: Network Transfer
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ price:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The default cost of this network
+ transfer. Prices are in US dollars, broken down into
+ hourly and monthly charges.
+
+
+ Certain regions have different prices from the
+ default. For region-specific prices, see
+ `region_prices`.
+ properties:
+ hourly:
+ description: __Filterable__ Cost (in US dollars) per hour.
+ example: 0.005
+ type: number
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ monthly:
+ description: __Filterable__ Cost per month, in US dollars.
+ example: null
+ nullable: true
+ type: number
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ readOnly: true
+ type: object
+ region_prices:
+ items:
+ additionalProperties: false
+ properties:
+ hourly:
+ description: Cost per hour for this region, in US dollars.
+ example: 0.015
+ type: number
+ x-linode-cli-display: 6
+ id:
+ description: The Region ID for these prices.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ monthly:
+ description: Cost per month for this region, in US dollars.
+ example: null
+ nullable: true
+ type: number
+ x-linode-cli-display: 7
+ type: object
+ type: array
+ transfer:
+ description: >-
+ __Filterable__, __Read-only__ The monthly outbound
+ transfer amount, in MB.
+ example: 0
+ minimum: 0
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/network-transfer-price.yaml
+ type: array
page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/networking/ips
- - lang: CLI
- source: |
- linode-cli networking ips-list
- post:
- x-linode-grant: read_write
- tags:
- - Networking
- summary: 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:
- - 'ips:read_write'
- - 'linodes:read_write'
- requestBody:
- description: Information about the address you are creating.
- required: true
- content:
- application/json:
- schema:
- required:
- - type
- - public
- - linode_id
- properties:
- type:
- type: string
- enum:
- - ipv4
- description: |
- The type of address you are requesting. Only IPv4 addresses may be allocated through this endpoint.
- example: ipv4
- public:
- type: boolean
- description: |
- Whether to create a public or private IPv4 address.
- example: true
- linode_id:
- type: integer
- description: |
- The ID of a Linode you you have access to that this address will be allocated to.
- example: 123
- responses:
- '200':
- description: IP Address allocated successfully.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/IPAddress'
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-network-transfer-prices-200.yaml
+ x-example:
+ x-ref: ../examples/get-network-transfer-prices-200.json
+ description: A collection of network transfer prices.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "type": "ipv4",
- "public": true,
- "linode_id": 123
- }' \
- https://api.linode.com/v4/networking/ips
- - lang: CLI
- source: |
- linode-cli networking ip-add \
- --type ipv4 \
- --public true \
- --linode_id 123
- '/networking/ips/{address}':
- 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'ips:read_only'
- responses:
- '200':
- description: The requested IP Address.
content:
application/json:
schema:
- $ref: '#/components/schemas/IPAddress'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/networking/ips/97.107.143.141
- - lang: CLI
- source: |
- linode-cli networking ip-view 97.107.143.141
- parameters:
- - name: address
- in: path
- required: true
- description: The address to operate on.
- schema:
- type: string
- format: ip
- put:
- x-linode-grant: read_write
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: List network transfer prices
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
- security:
- - personalAccessToken: []
- - oauth:
- - 'ips:read_write'
- requestBody:
- description: The information to update.
- required: true
- content:
- application/json:
- schema:
- required:
- - rdns
- type: object
- properties:
- rdns:
- type: string
- description: |
- The reverse DNS assigned to this address. For public IPv4 addresses, this will be set to a default value provided by Linode if not explicitly set.
- x-linode-cli-display: 4
- nullable: true
- example: test.example.org
- responses:
- '200':
- description: RDNS set successfully
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/IPAddress'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "rdns": "test.example.org"
- }' \
- https://api.linode.com/v4/networking/ips/203.0.113.1
- - lang: CLI
- source: |
- linode-cli networking ip-update \
- 203.0.113.1 \
- --rdns "test.example.org"
- parameters:
- - name: address
- in: path
- required: true
- description: The address to operate on.
- schema:
- type: string
- format: ip
- /networking/ips/assign:
+ - Network transfer prices
+ x-akamai:
+ tabs:
+ - syntax: linode-cli network-transfer prices
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: prices
+ x-linode-redoc-load-ids: true
+ parameters: []
+ x-akamai:
+ file-path: paths/network-transfer-prices.yaml
+ path-info: /{apiVersion}/network-transfer/prices
+ x-linode-cli-command: network-transfer
+ /networking/firewalls:
post:
- x-linode-grant: read_write
- tags:
- - Networking
- summary: IP Addresses Assign
- 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.
+ description: >-
+ Creates a Firewall to filter network traffic.
- 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 beyond standard account limits.
+ - Use `rules` to create inbound and outbound access rules. Rule versions
+ increment from `1` whenever the firewall's `rules` change.
- **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 following commands:
- * **Linode's Managed Settings View** ([GET /managed/linode-settings/{linodeId}](/docs/api/managed/#linodes-managed-settings-view))
- * **Linode's Managed Settings Update** ([PUT /managed/linode-settings/{linodeId}](/docs/api/managed/#linodes-managed-settings-update))
- 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:
- $ref: '#/components/schemas/IPAddressesAssignRequest'
- responses:
- '200':
- description: All assignments completed successfully.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "region": "us-east",
- "assignments": [
- {
- "address": "192.0.2.1",
- "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 192.0.2.1 \
- --assignments.linode_id 123 \
- --assignments.address 2001:db8:3c4d:15::/64 \
- --assignments.linode_id 234
- /networking/ips/share:
- post:
- servers:
- - url: 'https://api.linode.com/v4beta'
- 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.
+ - Use `devices` to assign a firewall to a service such as a Linode that
+ is using legacy config profiles, a Linode interface or a NodeBalancer.
+ The firewall’s rules are then applied to that service. Requires a
+ `read_write` [user
+ grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ to the device.
- IP failover requires configuration of a failover service (such as [Keepalived](/docs/guides/ip-failover-keepalived)) within the internal system of the primary Linode.
- operationId: shareIPs
- x-linode-cli-action: ip-share
- security:
- - personalAccessToken: []
- - oauth:
- - 'ips:read_write'
- - 'linodes:read_write'
- requestBody:
- description: Information about what IPs to share with which Linode.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/IPAddressesShareRequest'
- responses:
- '200':
- description: IP Address sharing 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 '{
- "linode_id": 123,
- "ips": [
- "192.0.2.1",
- "2001:db8:3c4d:15::"
- ]
- }' \
- 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:
- post:
- x-linode-grant: read_write
- tags:
- - Networking
- summary: Linodes Assign IPv4s
- description: |
- This command is equivalent to **IP Addresses Assign** ([POST /networking/ips/assign](#ip-addresses-assign)).
+ - For Linodes using Linode interfaces, firewalls need to be assigned to `interfaces` and not the `linodes`. Firewall templates are available for both VPC Linode interfaces and public Linode interfaces, and come with pre-configured protection rules.
- 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.
+ - For Linodes using legacy configuration profiles, firewalls are applied through the Linode. Public and VPC interfaces are subject to the firewall rules, while VLAN interfaces are not.
- 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.
+ - Currently, firewalls can be assigned to Linodes with legacy
+ configuration profiles, Linode interfaces, and NodeBalancers.
- [Open a Support Ticket](/docs/api/support/#support-ticket-open) to request additional IPv4 addresses or IPv6 ranges beyond standard account limits.
+ - The same firewall can be assigned to multiple services at a time.
- **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 following commands:
- * **Linode's Managed Settings View** ([GET /managed/linode-settings/{linodeId}](/docs/api/managed/#linodes-managed-settings-view))
- * **Linode's Managed Settings Update** ([PUT /managed/linode-settings/{linodeId}](/docs/api/managed/#linodes-managed-settings-update))
- operationId: assignIPv4s
- x-linode-cli-skip: true
- 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:
- $ref: '#/components/schemas/IPAddressesAssignRequest'
- responses:
- '200':
- description: All assignments completed successfully.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "region": "us-east",
- "assignments": [
- {
- "address": "192.0.2.1",
- "linode_id": 123
- },
- {
- "address": "2001:db8:3c4d:15::/64",
- "linode_id": 234
- }
- ]
- }' \
- https://api.linode.com/v4/networking/ipv4/assign
- - lang: CLI
- source: |
- linode-cli networking ip-assign \
- --region us-east \
- --assignments.address 192.0.2.1 \
- --assignments.linode_id 123 \
- --assignments.address 2001:db8:3c4d:15::/64 \
- --assignments.linode_id 234
- /networking/ipv4/share:
- post:
- x-linode-grant: read_write
- tags:
- - Networking
- summary: IPv4 Sharing Configure
- description: |
- This command is equivalent to **IP Addresses Share** ([POST /networking/ips/share](#ip-addresses-share)).
+ - Use `firewall_id` to assign a firewall when [creating a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+ or when [adding a Linode
+ interface](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).
- 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.
+ - A service can have one assigned firewall enabled at a time.
- IP failover requires configuration of a failover service (such as [Keepalived](/docs/guides/ip-failover-keepalived)) within the internal system of the primary Linode.
- operationId: shareIPv4s
- x-linode-cli-skip: true
- security:
- - personalAccessToken: []
- - oauth:
- - 'ips:read_write'
- - 'linodes:read_write'
+
+ - Assigned Linodes must not have any ongoing live migrations.
+
+
+ - A `firewall_create` event is generated when this operation succeeds.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-firewalls
+ operationId: post-firewalls
requestBody:
- description: Information about what IPs to share with which Linode.
- required: true
content:
application/json:
schema:
- $ref: '#/components/schemas/IPAddressesShareRequest'
- responses:
- '200':
- description: Sharing configured successfully.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "linode_id": 123,
- "ips": [
- "192.0.2.1",
- "192.0.2.2"
- ]
- }' \
- https://api.linode.com/v4/networking/ipv4/share
- - lang: CLI
- source: |
- linode-cli networking ip-share \
- --linode_id 123 \
- --ips 192.0.2.1 \
- --ips 192.0.2.2
- /networking/ipv6/pools:
- 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'ips:read_only'
- responses:
- '200':
- description: The IPv6 pools on your Account.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/IPv6Pool'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/networking/ipv6/pools
- - lang: CLI
- source: |
- linode-cli networking v6-pools
- /networking/ipv6/ranges:
- get:
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- tags:
- - Networking
- summary: IPv6 Ranges List
- description: |
- Displays the IPv6 ranges on your Account.
+ allOf:
+ - additionalProperties: false
+ description: >-
+ A resource that controls incoming and outgoing network
+ traffic to a compute service. Only one enabled Firewall can
+ be attached to a particular service at any given time.
+ [Create a firewall
+ device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device)
+ to assign a Firewall to a service. Currently, Firewalls can
+ assigned to Linode compute instances and NodeBalancers.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall was
+ created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ id:
+ description: __Filterable__, __Read-only__ The Firewall's unique ID.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ The Firewall's label, for display
+ purposes only.
- * 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).
+ Firewall labels have the following constraints:
- * Your Linode is responsible for routing individual addresses in the range, or handling traffic for all the addresses in the range.
+ - Must begin and end with an alphanumeric character.
+ - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.
+ - Must be between 3 and 32 characters.
+ - Must be unique.
+ example: firewall123
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ rules:
+ additionalProperties: false
+ description: >-
+ The inbound and outbound access rules to apply to the
+ Firewall.
- * 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'
- responses:
- '200':
- description: The IPv6 ranges on your Account.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/IPv6Range'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/networking/ipv6/ranges
- - lang: CLI
- source: |
- linode-cli networking v6-ranges
- 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 IP Addresses Assign ([POST /networking/ips/assign](/docs/api/networking/#ip-addresses-assign)) 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
- 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.
+ A Firewall may have up to 25 rules across its inbound
+ and outbound rulesets.
- * 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.
+ Multiple rules are applied in order. If two rules
+ conflict, the first rule takes precedence. For example,
+ if the first rule accepts inbound traffic from an
+ address, and the second rule drops inbound traffic the
+ same address, the first rule applies and inbound traffic
+ from that address is accepted.
+ properties:
+ fingerprint:
+ description: >-
+ __Read-only__ The fingerprint is a 32-bit hash. It
+ represents the firewall rules as an 8 character hex
+ string. You can use `fingerprint` to compare rule
+ versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: The inbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to allow
+ traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or
+ dropped by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule,
+ or the `outbound_policy` if this is an
+ outbound rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this
+ rule. A rule can have up to 255 total
+ addresses or networks listed across its `ipv4`
+ and `ipv6` arrays. A network and a single IP
+ are treated as equivalent when accounting for
+ this limit.
- * 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: IPv6 range created successfully.
- 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'
- default:
- $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
- - lang: CLI
- source: |
- linode-cli networking v6-range-create \
- --linode_id 123 \
- --prefix_length 64
- '/networking/ipv6/ranges/{range}':
- get:
- tags:
- - 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: 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::
- 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.
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must
+ not be an empty list.
- **Note**: Omit the prefix length of the IPv6 range.
- required: true
- schema:
- type: string
- format: ipv6
- delete:
- 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'
- responses:
- '200':
- description: IPv6 Range 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/networking/ipv6/ranges/2001:0db8::
- - lang: CLI
- source: |
- linode-cli networking v6-range-delete 2001:0db8::
- 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.
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and
+ must not include zone_id notation as
+ described in [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
- **Note**: Omit the prefix length of the IPv6 range.
- required: true
- schema:
- type: string
- format: ipv6
- /networking/firewalls:
- 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
- x-linode-cli-action:
- - list
- - ls
- security:
- - personalAccessToken: []
- - oauth:
- - 'firewall:read_only'
- responses:
- '200':
- description: Returns an array of Firewalls.
- 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/networking/firewalls
- - lang: CLI
- source: |
- linode-cli firewalls list
- post:
- x-linode-grant: add_firewalls
- servers:
- - url: 'https://api.linode.com/v4'
- tags:
- - Networking
- summary: Firewall Create
- description: |
- Creates a Firewall to filter network traffic.
- * Use the `rules` property to create inbound and outbound access rules.
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display
+ purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display
+ purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports
+ affected by this rule:
- * 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.
+ - 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 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 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.
- * A `firewall_create` Event is generated when this endpoint returns successfully.
- operationId: createFirewalls
- x-linode-cli-action: create
- security:
- - personalAccessToken: []
- - oauth:
- - 'firewall:read_write'
- requestBody:
- description: Creates a Firewall object that can be applied to a Linode service to filter the service's network traffic.
- content:
- application/json:
- schema:
- allOf:
- - $ref: '#/components/schemas/Firewall'
- required:
- - label
- - rules
+ - Ports must be within 1 and 65535, and may
+ not contain any leading zeroes. For example,
+ port `080` is not allowed.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by this
+ rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: >-
+ The default behavior for inbound traffic. This
+ setting can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: >-
+ The outbound rules for the firewall, as a JSON
+ array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to allow
+ traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or
+ dropped by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule,
+ or the `outbound_policy` if this is an
+ outbound rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this
+ rule. A rule can have up to 255 total
+ addresses or networks listed across its `ipv4`
+ and `ipv6` arrays. A network and a single IP
+ are treated as equivalent when accounting for
+ this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must
+ not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and
+ must not include zone_id notation as
+ described in [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display
+ purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display
+ purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports
+ affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by this
+ rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: >-
+ The default behavior for outbound traffic. This
+ setting can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: >-
+ __Read-only__ The firewall's rule version. The first
+ version is `1`. The version number is incremented
+ when the firewall's rules change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ status:
+ description: |-
+ __Read-only__ The status of this Firewall.
+
+ - When a Firewall is first created its status is `enabled`.
+ - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.
+ - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall.
+ enum:
+ - enabled
+ - disabled
+ - deleted
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall was
+ last updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall.yaml
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.
+ additionalProperties: false
+ description: >-
+ Devices to create for this firewall. When a device is
+ created, the firewall is assigned to its associated service.
+ Currently, devices can be created for Linodes using legacy
+ configuration profiles, Linode interfaces, and
+ NodeBalancers. Firewall devices can't be created for
+ individual legacy configuration profile interfaces.
+
+
+ Additional devices can be assigned after Firewall creation
+ by using the [Create a firewall
+ device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device)
+ operation.
properties:
- linodes:
- description: |
- An array of Linode IDs. A Firewall Device is created for each ID.
- type: array
+ interfaces:
+ description: >-
+ An array of Linode interface IDs. A firewall device is
+ created for each ID. For Linodes using Linode
+ interfaces, firewalls need to be assigned to Linode
+ interfaces and not the Linode.
+ example:
+ - 321
items:
type: integer
+ type: array
+ linodes:
+ description: >-
+ An array of Linode IDs. A firewall device is created for
+ each ID. These Linodes can't use Linode interfaces.
example:
- 123
- 456
+ items:
+ type: integer
+ type: array
+ nodebalancers:
+ description: >-
+ An array containing a NodeBalancer ID. A Firewall device
+ is created for the ID.
+
+
+ - A NodeBalancer can have only one Firewall assigned to
+ it.
+
+ - Firewalls only apply to inbound TCP traffic to
+ NodeBalancers.
+ example:
+ - 321
+ items:
+ type: integer
+ type: array
+ type: object
rules:
- required:
- - inbound_policy
- - outbound_policy
+ additionalProperties: false
properties:
inbound:
required:
@@ -1921,692 +764,10255 @@ paths:
- action
- addresses
- protocol
+ required:
+ - inbound_policy
+ - outbound_policy
+ type: object
+ required:
+ - label
+ - rules
+ x-akamai:
+ file-path: schemas/added-post-firewalls.yaml
+ type: object
+ x-example:
+ x-ref: ../examples/post-firewalls.json
+ description: >-
+ Creates a firewall object that can be applied to a service to filter
+ the service's network traffic.
responses:
'200':
- description: Returns information about the created Firewall.
- content:
- application/json:
- schema:
- $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": "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 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}':
- get:
- x-linode-grant: read_only
- servers:
- - url: 'https://api.linode.com/v4'
- tags:
- - Networking
- summary: Firewall View
- operationId: getFirewall
- 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.
- responses:
- '200':
- description: Returns information about this Firewall.
content:
application/json:
schema:
- $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" \
- https://api.linode.com/v4/networking/firewalls/123
- - lang: CLI
- source: |
- linode-cli firewalls view 123
- parameters:
- - name: firewallId
- in: path
- description: |
- ID of the Firewall to access.
- required: true
- schema:
- type: integer
- 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
- x-linode-cli-action: update
- security:
- - personalAccessToken: []
- - oauth:
- - 'firewall:read_write'
- requestBody:
- description: The Firewall information to update.
- content:
- application/json:
- schema:
- type: object
- properties:
- tags:
- $ref: '#/components/schemas/Firewall/properties/tags'
- label:
- $ref: '#/components/schemas/Firewall/properties/label'
- status:
- type: string
- description: |
- The status to be applied to this Firewall.
-
- * When a Firewall is first created its status is `enabled`.
- * Use the [Delete Firewall](/docs/api/networking/#firewall-delete) endpoint to delete a Firewall.
- enum:
- - enabled
- - disabled
- example: enabled
- x-linode-cli-display: 3
- responses:
- '200':
- description: Firewall updated successfully.
+ additionalProperties: false
+ description: >-
+ A resource that controls incoming and outgoing network traffic
+ to a compute service. Only one enabled Firewall can be
+ attached to a particular service at any given time. [Create a
+ firewall
+ device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device)
+ to assign a Firewall to a service. Currently, Firewalls can
+ assigned to Linode compute instances and NodeBalancers.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall was
+ created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ id:
+ description: __Filterable__, __Read-only__ The Firewall's unique ID.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ The Firewall's label, for display purposes
+ only.
+
+
+ Firewall labels have the following constraints:
+
+ - Must begin and end with an alphanumeric character.
+ - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.
+ - Must be between 3 and 32 characters.
+ - Must be unique.
+ example: firewall123
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ rules:
+ additionalProperties: false
+ description: >-
+ The inbound and outbound access rules to apply to the
+ Firewall.
+
+
+ A Firewall may have up to 25 rules across its inbound and
+ outbound rulesets.
+
+
+ Multiple rules are applied in order. If two rules
+ conflict, the first rule takes precedence. For example, if
+ the first rule accepts inbound traffic from an address,
+ and the second rule drops inbound traffic the same
+ address, the first rule applies and inbound traffic from
+ that address is accepted.
+ properties:
+ fingerprint:
+ description: >-
+ __Read-only__ The fingerprint is a 32-bit hash. It
+ represents the firewall rules as an 8 character hex
+ string. You can use `fingerprint` to compare rule
+ versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: The inbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to allow
+ traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped
+ by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule, or
+ the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this
+ rule. A rule can have up to 255 total addresses
+ or networks listed across its `ipv4` and `ipv6`
+ arrays. A network and a single IP are treated as
+ equivalent when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must
+ not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and must
+ not include zone_id notation as described in
+ [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected
+ by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by this
+ rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: >-
+ The default behavior for inbound traffic. This setting
+ can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: The outbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to allow
+ traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped
+ by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule, or
+ the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this
+ rule. A rule can have up to 255 total addresses
+ or networks listed across its `ipv4` and `ipv6`
+ arrays. A network and a single IP are treated as
+ equivalent when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must
+ not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and must
+ not include zone_id notation as described in
+ [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected
+ by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by this
+ rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: >-
+ The default behavior for outbound traffic. This
+ setting can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: >-
+ __Read-only__ The firewall's rule version. The first
+ version is `1`. The version number is incremented when
+ the firewall's rules change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ status:
+ description: |-
+ __Read-only__ The status of this Firewall.
+
+ - When a Firewall is first created its status is `enabled`.
+ - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.
+ - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall.
+ enum:
+ - enabled
+ - disabled
+ - deleted
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall was last
+ updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall.yaml
+ x-example:
+ x-ref: ../examples/post-firewalls-200.json
+ description: Returns information about the created Firewall.
+ default:
content:
application/json:
schema:
- $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 '{
- "status": "disabled"
- }' \
- https://api.linode.com/v4/networking/firewalls/123
- - lang: CLI
- source: |
- linode-cli firewalls update 123 \
- --status disabled
- parameters:
- - name: firewallId
- in: path
- description: |
- ID of the Firewall to access.
- required: true
- schema:
- type: integer
- delete:
- x-linode-grant: read_write
- servers:
- - url: 'https://api.linode.com/v4'
- tags:
- - Networking
- summary: Firewall Delete
- operationId: deleteFirewall
- x-linode-cli-action:
- - delete
- - rm
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
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.
+ - firewall:read_write
+ summary: Create a firewall
+ tags:
+ - Firewalls
+ x-akamai:
+ tabs:
+ - syntax: |-
+ 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.0/24", "198.51.100.2/32"], "ipv6": ["2001:DB8::/128"]}, "action": "ACCEPT"}]' \
+ --rules.outbound '[{"protocol": "TCP", "ports": "49152-65535", "addresses": {"ipv4": ["192.0.2.0/24", "198.51.100.2/32"],"ipv6": ["2001:DB8::/128"]}, "action": "DROP", "label": "outbound-rule123", "description": "An example outbound rule description."}]'
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: create
+ x-linode-grant: add_firewalls
+ get:
+ description: >-
+ Returns a paginated list of accessible Firewalls.
- A `firewall_delete` Event is generated when this endpoint returns successfully.
- responses:
- '200':
- description: Delete 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/networking/firewalls/123
- - lang: CLI
- source: |
- linode-cli firewalls delete 123
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-firewalls
+ operationId: get-firewalls
parameters:
- - name: firewallId
- in: path
- description: |
- ID of the Firewall to access.
- required: true
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
schema:
+ default: 1
+ example: 6
+ minimum: 1
type: integer
- '/networking/firewalls/{firewallId}/devices':
- get:
- x-linode-grant: read_only
- servers:
- - url: 'https://api.linode.com/v4'
- tags:
- - Networking
- parameters:
- - name: firewallId
- in: path
- description: |
- ID of the Firewall to access.
- required: true
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
type: integer
- 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:
- - 'firewall:read_only'
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: A paginated list of Firewall Devices
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
data:
- type: array
items:
- $ref: '#/components/schemas/FirewallDevices'
+ additionalProperties: false
+ description: >-
+ A resource that controls incoming and outgoing network
+ traffic to a compute service. Only one enabled Firewall
+ can be attached to a particular service at any given
+ time. [Create a firewall
+ device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device)
+ to assign a Firewall to a service. Currently, Firewalls
+ can assigned to Linode compute instances and
+ NodeBalancers.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall was
+ created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ id:
+ description: >-
+ __Filterable__, __Read-only__ The Firewall's unique
+ ID.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ The Firewall's label, for display
+ purposes only.
+
+
+ Firewall labels have the following constraints:
+
+ - Must begin and end with an alphanumeric character.
+ - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.
+ - Must be between 3 and 32 characters.
+ - Must be unique.
+ example: firewall123
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ rules:
+ additionalProperties: false
+ description: >-
+ The inbound and outbound access rules to apply to
+ the Firewall.
+
+
+ A Firewall may have up to 25 rules across its
+ inbound and outbound rulesets.
+
+
+ Multiple rules are applied in order. If two rules
+ conflict, the first rule takes precedence. For
+ example, if the first rule accepts inbound traffic
+ from an address, and the second rule drops inbound
+ traffic the same address, the first rule applies and
+ inbound traffic from that address is accepted.
+ properties:
+ fingerprint:
+ description: >-
+ __Read-only__ The fingerprint is a 32-bit hash.
+ It represents the firewall rules as an 8
+ character hex string. You can use `fingerprint`
+ to compare rule versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: >-
+ The inbound rules for the firewall, as a JSON
+ array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to
+ allow traffic on a comma-separated list of
+ different ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or
+ dropped by this rule. Overrides the
+ Firewall's `inbound_policy` if this is an
+ inbound rule, or the `outbound_policy` if
+ this is an outbound rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by
+ this rule. A rule can have up to 255 total
+ addresses or networks listed across its
+ `ipv4` and `ipv6` arrays. A network and a
+ single IP are treated as equivalent when
+ accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format.
+ Must not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and
+ must not include zone_id notation as
+ described in [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this
+ rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display
+ purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display
+ purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports
+ affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports
+ are affected.
+
+ - Only allowed for the TCP and UDP
+ protocols. Ports are not allowed for the
+ ICMP and IPENCAP protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by
+ this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: >-
+ The default behavior for inbound traffic. This
+ setting can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the Firewall
+ Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: >-
+ The outbound rules for the firewall, as a JSON
+ array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to
+ allow traffic on a comma-separated list of
+ different ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or
+ dropped by this rule. Overrides the
+ Firewall's `inbound_policy` if this is an
+ inbound rule, or the `outbound_policy` if
+ this is an outbound rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by
+ this rule. A rule can have up to 255 total
+ addresses or networks listed across its
+ `ipv4` and `ipv6` arrays. A network and a
+ single IP are treated as equivalent when
+ accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format.
+ Must not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and
+ must not include zone_id notation as
+ described in [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this
+ rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display
+ purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display
+ purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports
+ affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports
+ are affected.
+
+ - Only allowed for the TCP and UDP
+ protocols. Ports are not allowed for the
+ ICMP and IPENCAP protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by
+ this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: >-
+ The default behavior for outbound traffic. This
+ setting can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the Firewall
+ Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: >-
+ __Read-only__ The firewall's rule version. The
+ first version is `1`. The version number is
+ incremented when the firewall's rules change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ status:
+ description: |-
+ __Read-only__ The status of this Firewall.
+
+ - When a Firewall is first created its status is `enabled`.
+ - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.
+ - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall.
+ enum:
+ - enabled
+ - disabled
+ - deleted
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this
+ object. Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall was
+ last updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall.yaml
+ type: array
page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-firewalls-200.yaml
+ x-example:
+ x-ref: ../examples/get-firewalls-200.json
+ description: Returns an array of Firewalls.
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
- - lang: CLI
- source: |
- linode-cli firewalls devices-list 123
- post:
- x-linode-grant: read_write
- servers:
- - url: 'https://api.linode.com/v4'
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - firewall:read_only
+ summary: List firewalls
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.
+ - Firewalls
+ x-akamai:
+ tabs:
+ - syntax: linode-cli firewalls list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/networking-firewalls.yaml
+ path-info: /{apiVersion}/networking/firewalls
+ x-linode-cli-command: firewalls
+ /networking/firewalls/settings:
+ get:
+ description: >-
+ __Beta__ Returns default firewalls for Linodes, Linode VPC and public
+ interfaces, and NodeBalancers.
- * Currently, only Devices with an entity of type `linode` are accepted.
- * A Firewall can be assigned to multiple Linode instances at a time.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- * 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
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-firewall-settings
+ operationId: get-firewall-settings
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: Default firewalls.
+ properties:
+ default_firewall_ids:
+ additionalProperties: false
+ description: >-
+ The default firewall ID for a `linode`, `nodebalancer`,
+ `public_interface`, or `vpc_interface`. Default firewalls
+ can't be deleted or disabled.
+ properties:
+ linode:
+ description: The Linode's default firewall.
+ example: 100
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer:
+ description: The NodeBalancer's default firewall.
+ example: 101
+ type: integer
+ x-linode-cli-display: 2
+ public_interface:
+ description: The public interface's default firewall.
+ example: 200
+ type: integer
+ x-linode-cli-display: 3
+ vpc_interface:
+ description: The VPC interface's default firewall.
+ example: 200
+ type: integer
+ x-linode-cli-display: 4
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-settings.yaml
+ x-example:
+ x-ref: ../examples/firewall-settings-200.json
+ description: Returns default firewalls.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'firewall:read_write'
+ - firewall:read_only
+ summary: List default firewalls
+ tags:
+ - Firewall settings
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli firewalls firewall-settings-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: firewall-settings-list
+ x-linode-grant: read_only
+ put:
+ description: >-
+ __Beta__ You can update or add a default firewall to:
+
+
+ - Linodes using legacy config profile interfaces
+
+
+ - Linode VPC interfaces and Linode public interfaces
+
+
+ - NodeBalancers
+
+
+ If a firewall isn't provided during service creation, a default firewall
+ is assigned, unless you have opted out of firewall protection.
+
+
+ > 📘
+
+ >
+
+ > Default firewalls on Linodes with Linode interfaces are applied to the
+ interfaces, not the Linode itself.
+
+ >
+
+ > Default firewalls on Linodes with legacy configuration profile
+ interfaces are applied directly to the Linode, not its interfaces.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-firewall-settings
+ operationId: put-firewall-settings
requestBody:
content:
application/json:
schema:
+ additionalProperties: false
+ description: Default firewalls.
+ properties:
+ default_firewall_ids:
+ additionalProperties: false
+ description: >-
+ The default firewall ID for a `linode`, `nodebalancer`,
+ `public_interface`, or `vpc_interface`. Default firewalls
+ can't be deleted or disabled.
+ properties:
+ linode:
+ description: The Linode's default firewall.
+ example: 100
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer:
+ description: The NodeBalancer's default firewall.
+ example: 101
+ type: integer
+ x-linode-cli-display: 2
+ public_interface:
+ description: The public interface's default firewall.
+ example: 200
+ type: integer
+ x-linode-cli-display: 3
+ vpc_interface:
+ description: The VPC interface's default firewall.
+ example: 200
+ type: integer
+ x-linode-cli-display: 4
+ type: object
type: object
- required:
- - id
- - type
- allOf:
- - $ref: '#/components/schemas/FirewallDevices/properties/entity'
+ x-akamai:
+ file-path: schemas/firewall-settings.yaml
+ x-example:
+ x-ref: ../examples/firewall-settings.json
+ description: >-
+ Update default firewalls for Linodes that use legacy configuration
+ profiles, Linode interfaces, and NodeBalancers. For Linodes using
+ Linode interfaces, firewalls need to be assigned to Linode interfaces
+ and not the Linode.
+ required: true
responses:
'200':
- description: Returns information about the created Firewall Device.
content:
application/json:
schema:
- $ref: '#/components/schemas/FirewallDevices'
+ additionalProperties: false
+ description: Default firewalls.
+ properties:
+ default_firewall_ids:
+ additionalProperties: false
+ description: >-
+ The default firewall ID for a `linode`, `nodebalancer`,
+ `public_interface`, or `vpc_interface`. Default firewalls
+ can't be deleted or disabled.
+ properties:
+ linode:
+ description: The Linode's default firewall.
+ example: 100
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer:
+ description: The NodeBalancer's default firewall.
+ example: 101
+ type: integer
+ x-linode-cli-display: 2
+ public_interface:
+ description: The public interface's default firewall.
+ example: 200
+ type: integer
+ x-linode-cli-display: 3
+ vpc_interface:
+ description: The VPC interface's default firewall.
+ example: 200
+ type: integer
+ x-linode-cli-display: 4
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-settings.yaml
+ x-example:
+ x-ref: ../examples/firewall-settings-200.json
+ description: The updated default firewalls.
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
- - lang: CLI
- source: |
- linode-cli firewalls device-create 123 \
- --id 456 \
- --type "linode"
- parameters:
- - name: firewallId
- in: path
- description: |
- ID of the Firewall to access.
- required: true
- schema:
- type: integer
- '/networking/firewalls/{firewallId}/devices/{deviceId}':
- get:
- x-linode-grant: read_only
- servers:
- - url: 'https://api.linode.com/v4'
- 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'
- responses:
- '200':
- description: The requested Firewall Device.
content:
application/json:
schema:
- $ref: '#/components/schemas/FirewallDevices'
- 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
- - lang: CLI
- source: |
- linode-cli firewalls device-view \
- 123 456
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Update default firewalls
+ tags:
+ - Firewall settings
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: |-
+ linode-cli firewalls firewall-settings-update \
+ --default_firewall_ids.vpc_interface 1 \
+ --default_firewall_ids.public_interface 2 \
+ --default_firewall_ids.nodebalancer 3 \
+ --default_firewall_ids.linode 5
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: firewall-settings-update
+ x-linode-grant: read_write
+ parameters: []
+ x-akamai:
+ file-path: paths/firewall-settings.yaml
+ path-info: /{apiVersion}/networking/firewalls/settings
+ status: BETA
+ x-linode-cli-command: firewalls
+ /networking/firewalls/templates:
+ get:
+ description: >-
+ __Beta__ Returns a paginated list of a firewall templates. There are
+ firewall templates specifically for VPC interfaces and public
+ interfaces. Firewall templates come with some protection rules already
+ configured.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-firewall-templates
+ operationId: get-firewall-templates
parameters:
- - name: firewallId
- in: path
- description: |
- ID of the Firewall to access.
- required: true
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
schema:
+ default: 1
+ example: 6
+ minimum: 1
type: integer
- - name: deviceId
- in: path
- description: |
- ID of the Firewall Device to access.
- required: true
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
type: integer
- delete:
- x-linode-grant: read_write
- servers:
- - url: 'https://api.linode.com/v4'
- 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.
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Delete 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/networking/firewalls/123/devices/456
- - lang: CLI
- source: |
- linode-cli firewalls device-delete 123 456
- 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
- '/networking/firewalls/{firewallId}/rules':
- 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
+ additionalProperties: false
+ properties:
+ data:
+ example:
+ - rules:
+ inbound:
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 0.0.0.0/0
+ ipv6:
+ - '::/0'
+ description: Rule to allow inbound SSH traffic.
+ label: accept-inbound-ssh
+ ports: '22'
+ protocol: TCP
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 0.0.0.0/0
+ ipv6:
+ - '::/0'
+ description: Rule to allow inbound ICMP traffic.
+ label: accept-inbound-icmp
+ protocol: ICMP
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 10.0.0.0/8
+ - 192.168.0.0/17
+ - 172.16.0.0/12
+ ipv6: []
+ description: >-
+ Rule to allow inbound for RFC1918 ranges;
+ `10.0.0.0/8`, `192.168.0.0/17`, `172.16.0.0/12`.
+ label: accept-inbound-rfc1918
+ ports: 1-65535
+ protocol: TCP, UDP
+ inbound_policy: DROP
+ outbound_policy: ACCEPT
+ slug: vpc
+ - rules:
+ inbound:
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 0.0.0.0/0
+ ipv6:
+ - '::/0'
+ description: Rule to allow inbound SSH traffic.
+ label: accept-inbound-ssh
+ ports: '22'
+ protocol: TCP
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 0.0.0.0/0
+ ipv6:
+ - '::/0'
+ description: Rule to allow inbound ICMP traffic.
+ label: accept-inbound-icmp
+ protocol: ICMP
+ inbound_policy: DROP
+ outbound_policy: ACCEPT
+ slug: public
+ items:
+ additionalProperties: false
+ description: A list of firewall templates and their `rules`.
+ properties:
+ rules:
+ additionalProperties: false
+ description: >-
+ The inbound and outbound access rules for the VPC
+ firewall template.
+
+
+ A firewall can have up to 25 rules across its
+ inbound and outbound rule sets. Multiple rules are
+ applied in order. If two rules conflict, the first
+ rule takes precedence. For example, if the first
+ rule accepts inbound traffic from an address, and
+ the second rule drops inbound traffic from the same
+ address, the first rule applies, and inbound traffic
+ from that address is accepted.
+ properties:
+ inbound:
+ description: The inbound rules for the firewall.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to
+ allow traffic on a comma-separated list of
+ different ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or
+ dropped by this rule. Overrides the
+ Firewall's `inbound_policy` if this is an
+ inbound rule, or the `outbound_policy` if
+ this is an outbound rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by
+ this rule. A rule can have up to 255 total
+ addresses or networks listed across its
+ `ipv4` and `ipv6` arrays. A network and a
+ single IP are treated as equivalent when
+ accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format.
+ Must not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and
+ must not include zone_id notation as
+ described in [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this
+ rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display
+ purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display
+ purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports
+ affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports
+ are affected.
+
+ - Only allowed for the TCP and UDP
+ protocols. Ports are not allowed for the
+ ICMP and IPENCAP protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by
+ this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: >-
+ The default behavior for inbound traffic. The
+ default behavior for inbound traffic. You can
+ override this setting by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound` object's `action` field.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: The outbound rules for the firewall.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to
+ allow traffic on a comma-separated list of
+ different ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or
+ dropped by this rule. Overrides the
+ Firewall's `inbound_policy` if this is an
+ inbound rule, or the `outbound_policy` if
+ this is an outbound rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by
+ this rule. A rule can have up to 255 total
+ addresses or networks listed across its
+ `ipv4` and `ipv6` arrays. A network and a
+ single IP are treated as equivalent when
+ accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format.
+ Must not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and
+ must not include zone_id notation as
+ described in [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this
+ rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display
+ purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display
+ purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports
+ affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports
+ are affected.
+
+ - Only allowed for the TCP and UDP
+ protocols. Ports are not allowed for the
+ ICMP and IPENCAP protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by
+ this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: >-
+ The default behavior for outbound traffic. The
+ default behavior for inbound traffic. You can
+ override this setting by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound` object's `action` fields.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ type: object
+ slug:
+ description: >-
+ __Read-only__ The firewall template types available
+ for VPC and public Linode interfaces.
+ enum:
+ - vpc
+ - public
+ example: vpc
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-linode-cli-display: 1
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-templates.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 2
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-firewall-templates-200.yaml
+ x-example:
+ x-ref: ../examples/get-firewall-templates-200.json
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ rules.inbound:
+ additionalProperties: true
+ type: object
+ x-linode-cli-display: 4
+ x-linode-cli-format: json
+ rules.inbound_policy:
+ type: string
+ x-linode-cli-display: 2
+ rules.outbound:
+ additionalProperties: true
+ type: object
+ x-linode-cli-display: 5
+ x-linode-cli-format: json
+ rules.outbound_policy:
+ type: string
+ x-linode-cli-display: 3
+ slug:
+ type: string
+ x-linode-cli-display: 1
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-template-cli.yaml
+ description: Returns a paginated list of firewall templates.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'firewall:read_only'
+ - firewall:read_only
+ summary: List firewall templates
+ tags:
+ - Templates
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli firewalls templates-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: templates-list
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/firewall-templates.yaml
+ path-info: /{apiVersion}/networking/firewalls/templates
+ status: BETA
+ x-linode-cli-command: firewalls
+ /networking/firewalls/templates/{slug}:
+ get:
+ description: >-
+ __Beta__ Gets a `vpc` or `public` firewall template you can use with
+ Linode VPC and public interfaces. Firewall templates come with some
+ protection rules already configured.
+
+
+ The public interface's firewall template allows for login with SSH, and
+ regular networking control data. You should further strengthen these
+ rules by limiting the allowed IPv4 and IPv6 ranges.
+
+
+ The VPC interface's firewall template allows for login with SSH, regular
+ networking control data, and inbound traffic from the VPC address space.
+ You should further strengthen these rules by limiting the allowed IPv4
+ and IPv6 ranges.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-firewall-template
+ operationId: get-firewall-template
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: The requested Firewall Rules.
content:
application/json:
+ examples:
+ ex-public:
+ summary: Public firewall template
+ value:
+ data:
+ - rules:
+ inbound:
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 0.0.0.0/0
+ ipv6:
+ - '::/0'
+ description: Accept inbound SSH
+ label: accept-inbound-ssh
+ ports: '22'
+ protocol: TCP
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 0.0.0.0/0
+ ipv6:
+ - '::/0'
+ description: Accept inbound ICMP
+ label: accept-inbound-icmp
+ protocol: ICMP
+ inbound_policy: DROP
+ outbound: []
+ outbound_policy: ACCEPT
+ slug: public
+ ex-vpc:
+ summary: VPC firewall template
+ value:
+ data:
+ - rules:
+ inbound:
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 0.0.0.0/0
+ ipv6:
+ - '::/0'
+ description: Accept inbound SSH
+ label: accept-inbound-ssh
+ ports: '22'
+ protocol: TCP
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 0.0.0.0/0
+ ipv6:
+ - '::/0'
+ description: Accept inbound ICMP
+ label: accept-inbound-icmp
+ protocol: ICMP
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 1O.0.0.0/8
+ - 192.168.0.0/17
+ - 172.16.0.0/12
+ ipv6: []
+ description: >-
+ Rule to allow inbound for RFC1918 ranges;
+ `10.0.0.0/8`, `192.168.0.0/17`, `172.16.0.0/12`.
+ label: accept-inbound-rfc1918
+ ports: 1-65535
+ protocol: TCP, UDP
+ inbound_policy: DROP
+ outbound: []
+ outbound_policy: ACCEPT
+ slug: vpc
schema:
- $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/networking/firewalls/123/rules
- - lang: CLI
- source: |
- linode-cli firewalls rules-list 123
- parameters:
- - name: firewallId
- in: path
- description: |
- ID of the Firewall to access.
- required: true
- schema:
- type: integer
- put:
- x-linode-grant: read_write
- servers:
- - url: 'https://api.linode.com/v4'
- tags:
- - Networking
- summary: Firewall Rules Update
- description: |
- Updates the inbound and outbound Rules for a Firewall.
+ additionalProperties: false
+ description: A list of firewall templates and their `rules`.
+ properties:
+ rules:
+ additionalProperties: false
+ description: >-
+ The inbound and outbound access rules for the VPC firewall
+ template.
- **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
+
+ A firewall can have up to 25 rules across its inbound and
+ outbound rule sets. Multiple rules are applied in order.
+ If two rules conflict, the first rule takes precedence.
+ For example, if the first rule accepts inbound traffic
+ from an address, and the second rule drops inbound traffic
+ from the same address, the first rule applies, and inbound
+ traffic from that address is accepted.
+ properties:
+ inbound:
+ description: The inbound rules for the firewall.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to allow
+ traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped
+ by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule, or
+ the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this
+ rule. A rule can have up to 255 total addresses
+ or networks listed across its `ipv4` and `ipv6`
+ arrays. A network and a single IP are treated as
+ equivalent when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must
+ not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and must
+ not include zone_id notation as described in
+ [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected
+ by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by this
+ rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: >-
+ The default behavior for inbound traffic. The default
+ behavior for inbound traffic. You can override this
+ setting by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound` object's `action` field.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: The outbound rules for the firewall.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to allow
+ traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped
+ by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule, or
+ the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this
+ rule. A rule can have up to 255 total addresses
+ or networks listed across its `ipv4` and `ipv6`
+ arrays. A network and a single IP are treated as
+ equivalent when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must
+ not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and must
+ not include zone_id notation as described in
+ [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected
+ by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by this
+ rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: >-
+ The default behavior for outbound traffic. The default
+ behavior for inbound traffic. You can override this
+ setting by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound` object's `action` fields.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ type: object
+ slug:
+ description: >-
+ __Read-only__ The firewall template types available for
+ VPC and public Linode interfaces.
+ enum:
+ - vpc
+ - public
+ example: vpc
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-linode-cli-display: 1
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-templates.yaml
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ rules.inbound:
+ additionalProperties: true
+ type: object
+ x-linode-cli-display: 4
+ x-linode-cli-format: json
+ rules.inbound_policy:
+ type: string
+ x-linode-cli-display: 2
+ rules.outbound:
+ additionalProperties: true
+ type: object
+ x-linode-cli-display: 5
+ x-linode-cli-format: json
+ rules.outbound_policy:
+ type: string
+ x-linode-cli-display: 3
+ slug:
+ type: string
+ x-linode-cli-display: 1
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-template-cli.yaml
+ description: >-
+ Returns a `vpc` or `public` firewall template for interface
+ firewalls.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'firewall:read_write'
- requestBody:
- description: The Firewall Rules information to update.
- content:
- application/json:
- schema:
- allOf:
- - $ref: '#/components/schemas/Firewall/properties/rules'
- properties:
- inbound:
- required:
- - action
- - addresses
- - protocol
- outbound:
- required:
- - action
- - addresses
- - protocol
+ - firewall:read_only
+ summary: Get a firewall template
+ tags:
+ - Templates
+ x-akamai:
+ status: BETA
+ tabs:
+ - syntax: linode-cli firewalls template-view vpc
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: template-view
+ x-linode-grant: read_only
+ parameters:
+ - description: >-
+ __Enum__ The firewall template type, available for either `vpc` or
+ `public` interfaces.
+ example: '{{slug}}'
+ in: path
+ name: slug
+ required: true
+ schema:
+ enum:
+ - vpc
+ - public
+ type: string
+ x-akamai:
+ file-path: parameters/firewall-template-path.yaml
+ x-akamai:
+ file-path: paths/firewall-template.yaml
+ path-info: /{apiVersion}/networking/firewalls/templates/{slug}
+ status: BETA
+ x-linode-cli-command: firewalls
+ /networking/firewalls/{firewallId}:
+ get:
+ description: >-
+ Get a specific Firewall resource by its ID. The Firewall's Devices will
+ not be returned in the response. Instead, run the [List firewall
+ devices](https://techdocs.akamai.com/linode-api/reference/get-firewall-devices)
+ operation to review them.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-firewall
+ operationId: get-firewall
responses:
'200':
- description: Firewall Rules updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/Firewall/properties/rules'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- 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."
- }
- ]
- }' \
- https://api.linode.com/v4/networking/firewalls/123/rules
- - 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"]}}]'
- parameters:
- - name: firewallId
- in: path
- description: |
- ID of the Firewall to access.
- required: true
- schema:
- type: integer
- /networking/vlans:
- get:
- x-linode-grant: read_only
- servers:
- - url: 'https://api.linode.com/v4beta'
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- 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.
+ additionalProperties: false
+ description: >-
+ A resource that controls incoming and outgoing network traffic
+ to a compute service. Only one enabled Firewall can be
+ attached to a particular service at any given time. [Create a
+ firewall
+ device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device)
+ to assign a Firewall to a service. Currently, Firewalls can
+ assigned to Linode compute instances and NodeBalancers.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall was
+ created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ id:
+ description: __Filterable__, __Read-only__ The Firewall's unique ID.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ The Firewall's label, for display purposes
+ only.
- 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))
+ Firewall labels have the following constraints:
- There are several ways to detach a VLAN from a Linode:
+ - Must begin and end with an alphanumeric character.
+ - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.
+ - Must be between 3 and 32 characters.
+ - Must be unique.
+ example: firewall123
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ rules:
+ additionalProperties: false
+ description: >-
+ The inbound and outbound access rules to apply to the
+ Firewall.
- - [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.
+ A Firewall may have up to 25 rules across its inbound and
+ outbound rulesets.
- **Note:** See the [VLANs Overview](/docs/products/networking/vlans/#technical-specifications) to view additional specifications and limitations.
- operationId: getVLANs
- x-linode-cli-action:
- - list
- - ls
+
+ Multiple rules are applied in order. If two rules
+ conflict, the first rule takes precedence. For example, if
+ the first rule accepts inbound traffic from an address,
+ and the second rule drops inbound traffic the same
+ address, the first rule applies and inbound traffic from
+ that address is accepted.
+ properties:
+ fingerprint:
+ description: >-
+ __Read-only__ The fingerprint is a 32-bit hash. It
+ represents the firewall rules as an 8 character hex
+ string. You can use `fingerprint` to compare rule
+ versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: The inbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to allow
+ traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped
+ by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule, or
+ the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this
+ rule. A rule can have up to 255 total addresses
+ or networks listed across its `ipv4` and `ipv6`
+ arrays. A network and a single IP are treated as
+ equivalent when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must
+ not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and must
+ not include zone_id notation as described in
+ [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected
+ by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by this
+ rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: >-
+ The default behavior for inbound traffic. This setting
+ can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: The outbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to allow
+ traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped
+ by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule, or
+ the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this
+ rule. A rule can have up to 255 total addresses
+ or networks listed across its `ipv4` and `ipv6`
+ arrays. A network and a single IP are treated as
+ equivalent when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must
+ not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and must
+ not include zone_id notation as described in
+ [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected
+ by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by this
+ rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: >-
+ The default behavior for outbound traffic. This
+ setting can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: >-
+ __Read-only__ The firewall's rule version. The first
+ version is `1`. The version number is incremented when
+ the firewall's rules change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ status:
+ description: |-
+ __Read-only__ The status of this Firewall.
+
+ - When a Firewall is first created its status is `enabled`.
+ - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.
+ - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall.
+ enum:
+ - enabled
+ - disabled
+ - deleted
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall was last
+ updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall.yaml
+ x-example:
+ x-ref: ../examples/get-firewall-200.json
+ description: Returns information about this Firewall.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'linodes:read_only'
+ - firewall:read_only
+ summary: Get a firewall
+ tags:
+ - Firewalls
+ x-akamai:
+ tabs:
+ - syntax: linode-cli firewalls view 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ x-linode-grant: read_only
+ put:
+ description: >-
+ Updates information for a firewall.
+
+
+ - Assigned Linodes must not have any ongoing live migrations.
+
+
+ - If this operation changes a firewall's status, it generates a
+ corresponding `firewall_enable` or `firewall_disable` event.
+
+
+ This operation doesn't affect some parts of a firewall's configuration:
+
+
+ - This operation doesn't set a firewall's devices. Instead, run the
+ [Create a firewall
+ device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device)
+ and [Delete a firewall
+ device](https://techdocs.akamai.com/linode-api/reference/delete-firewall-device)
+ operations to assign and remove this firewall from services.
+
+
+ - A firewall's rules can't be changed with this operation. Instead, run
+ the [Update firewall
+ rules](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ operation to update your rules.
+
+
+ - Use this operation to set a firewall's status to `enabled` or
+ `disabled`. But to set it to `deleted`, run the [Delete a
+ firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall)
+ operation.
+
+
+ - An assigned default firewall can't be disabled.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-firewall
+ operationId: put-firewall
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ label:
+ description: >-
+ __Filterable__ The Firewall's label, for display purposes
+ only.
+
+
+ Firewall labels have the following constraints:
+
+ - Must begin and end with an alphanumeric character.
+ - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.
+ - Must be between 3 and 32 characters.
+ - Must be unique.
+ example: '{{label}}'
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ status:
+ description: |-
+ The status to be applied to this Firewall.
+
+ - When a Firewall is first created its status is `enabled`.
+ - An assigned default firewall can't be disabled.
+ - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall.
+ enum:
+ - enabled
+ - disabled
+ example: '{{status}}'
+ type: string
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object. Tags
+ are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-firewall.yaml
+ x-example:
+ x-ref: ../examples/put-firewall.json
responses:
'200':
- description: The VLANs available on this Account.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
+ description: >-
+ A resource that controls incoming and outgoing network traffic
+ to a compute service. Only one enabled Firewall can be
+ attached to a particular service at any given time. [Create a
+ firewall
+ device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device)
+ to assign a Firewall to a service. Currently, Firewalls can
+ assigned to Linode compute instances and NodeBalancers.
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'
+ created:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall was
+ created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ id:
+ description: __Filterable__, __Read-only__ The Firewall's unique ID.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ The Firewall's label, for display purposes
+ only.
+
+
+ Firewall labels have the following constraints:
+
+ - Must begin and end with an alphanumeric character.
+ - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.
+ - Must be between 3 and 32 characters.
+ - Must be unique.
+ example: firewall123
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ rules:
+ additionalProperties: false
+ description: >-
+ The inbound and outbound access rules to apply to the
+ Firewall.
+
+
+ A Firewall may have up to 25 rules across its inbound and
+ outbound rulesets.
+
+
+ Multiple rules are applied in order. If two rules
+ conflict, the first rule takes precedence. For example, if
+ the first rule accepts inbound traffic from an address,
+ and the second rule drops inbound traffic the same
+ address, the first rule applies and inbound traffic from
+ that address is accepted.
+ properties:
+ fingerprint:
+ description: >-
+ __Read-only__ The fingerprint is a 32-bit hash. It
+ represents the firewall rules as an 8 character hex
+ string. You can use `fingerprint` to compare rule
+ versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: The inbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to allow
+ traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped
+ by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule, or
+ the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this
+ rule. A rule can have up to 255 total addresses
+ or networks listed across its `ipv4` and `ipv6`
+ arrays. A network and a single IP are treated as
+ equivalent when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must
+ not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and must
+ not include zone_id notation as described in
+ [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected
+ by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by this
+ rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: >-
+ The default behavior for inbound traffic. This setting
+ can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: The outbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to allow
+ traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped
+ by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule, or
+ the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this
+ rule. A rule can have up to 255 total addresses
+ or networks listed across its `ipv4` and `ipv6`
+ arrays. A network and a single IP are treated as
+ equivalent when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must
+ not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and must
+ not include zone_id notation as described in
+ [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected
+ by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by this
+ rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: >-
+ The default behavior for outbound traffic. This
+ setting can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: >-
+ __Read-only__ The firewall's rule version. The first
+ version is `1`. The version number is incremented when
+ the firewall's rules change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ status:
+ description: |-
+ __Read-only__ The status of this Firewall.
+
+ - When a Firewall is first created its status is `enabled`.
+ - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.
+ - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall.
+ enum:
+ - enabled
+ - disabled
+ - deleted
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall was last
+ updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall.yaml
+ x-example:
+ x-ref: ../examples/get-firewall-200.json
+ description: Firewall updated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - firewall:read_write
+ summary: Update a firewall
+ tags:
+ - Firewalls
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli firewalls update 123 \
+ --status disabled
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update
+ x-linode-grant: read_write
+ delete:
+ description: >-
+ Delete a firewall. This also removes all of the firewall's rules from
+ any services the firewall was assigned to.
+
+
+ - Assigned Linodes must not have any ongoing live migrations.
+
+
+ - A `firewall_delete` event is generated when this operation returns
+ successfully.
+
+
+ - An assigned default firewall can't be deleted.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-firewall
+ operationId: delete-firewall
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-firewall-200.json
+ description: Delete Successful.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - firewall:read_write
+ summary: Delete a firewall
+ tags:
+ - Firewalls
+ x-akamai:
+ tabs:
+ - syntax: linode-cli firewalls delete 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - delete
+ - rm
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Firewall to access.
+ example: '{{firewallId}}'
+ in: path
+ name: firewallId
+ required: true
+ schema:
+ example: 9000
+ type: integer
+ x-akamai:
+ file-path: parameters/firewall-id.yaml
+ x-akamai:
+ file-path: paths/firewall.yaml
+ path-info: /{apiVersion}/networking/firewalls/{firewallId}
+ x-linode-cli-command: firewalls
+ /networking/firewalls/{firewallId}/devices:
+ post:
+ 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.
+
+
+ - Currently, devices with `linode`, `interface`, and `nodebalancer`
+ entity types are accepted.
+ - The `linode` type is not allowed for Linodes using Linode interfaces.
+ - The `interface` type is not allowed for legacy config interfaces. For VPC and public legacy config profile interfaces, the firewall is applied through the `linode` device.
+
+ - Firewalls only apply to inbound TCP traffic to NodeBalancers.
+
+
+ - A firewall can be assigned to multiple services at a time.
+
+
+ - A service can have one assigned firewall at a time.
+
+
+ - Assigned Linodes must not have any ongoing live migrations.
+
+
+ - A `firewall_device_add` event is generated when the firewall device is
+ added successfully.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-firewall-device
+ operationId: post-firewall-device
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ __Read-only__ The compute service or interface this firewall
+ is assigned to.
+ properties:
+ id:
+ description: The entity's ID.
+ example: 123
+ type: integer
+ label:
+ description: __Read-only__ The entity's label.
+ example: my-linode
+ readOnly: true
+ type: string
+ type:
+ description: The entity's type.
+ enum:
+ - linode
+ - nodebalancer
+ - interface
+ example: linode
+ type: string
+ url:
+ description: >-
+ __Read-only__ The API URL path you can use to access
+ this entity.
+ example: /v4/linode/instances/123
+ format: url
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ required:
+ - id
+ - type
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-firewall-device.yaml
+ x-example:
+ x-ref: ../examples/post-firewall-device.json
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ Associates a firewall with a Linode, a Linode interface, or a
+ NodeBalancer service.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ When this device was
+ created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ entity:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The compute service or interface this
+ firewall is assigned to.
+ properties:
+ id:
+ description: The entity's ID.
+ example: 123
+ type: integer
+ label:
+ description: __Read-only__ The entity's label.
+ example: my-linode
+ readOnly: true
+ type: string
+ type:
+ description: The entity's type.
+ enum:
+ - linode
+ - nodebalancer
+ - interface
+ example: linode
+ type: string
+ url:
+ description: >-
+ __Read-only__ The API URL path you can use to access
+ this entity.
+ example: /v4/linode/instances/123
+ format: url
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ id:
+ description: __Filterable__ The device's unique ID.
+ example: 123
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this device was last
+ updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-devices.yaml
+ x-example:
+ x-ref: ../examples/post-firewall-device-200.json
+ description: Returns information about the created Firewall Device.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - firewall:read_write
+ summary: Create a firewall device
+ tags:
+ - Devices
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli firewalls device-create 123 \
+ --id 456 \
+ --type "linode"
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: device-create
+ x-linode-grant: read_write
+ get:
+ description: >-
+ Returns a paginated list of a firewall's devices. A firewall device
+ assigns a firewall to a service (referred to as the device's `entity`).
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-firewall-devices
+ operationId: get-firewall-devices
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ example:
+ - created: '2018-01-01 00:01:01'
+ entity:
+ id: 123
+ label: my-linode
+ type: linode
+ url: /v4/linode/instances/123
+ id: 456
+ updated: '2018-01-02 00:01:01'
+ - created: '2018-01-01 00:01:01'
+ entity:
+ id: 321
+ label: my-nodebalancer
+ type: nodebalancer
+ url: /v4/nodebalancers/1234
+ id: 654
+ updated: '2018-01-02 00:01:01'
+ - created: '2025-01-01 00:01:01'
+ entity:
+ id: 321
+ label: my-interface
+ type: interface
+ url: /v4/linode/instances/123/interfaces/12345
+ id: 654
+ updated: '2025-01-02 00:01:01'
+ items:
+ additionalProperties: false
+ description: >-
+ Associates a firewall with a Linode, a Linode interface,
+ or a NodeBalancer service.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ When this device was
+ created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ entity:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The compute service or interface this
+ firewall is assigned to.
+ properties:
+ id:
+ description: The entity's ID.
+ example: 123
+ type: integer
+ label:
+ description: __Read-only__ The entity's label.
+ example: my-linode
+ readOnly: true
+ type: string
+ type:
+ description: The entity's type.
+ enum:
+ - linode
+ - nodebalancer
+ - interface
+ example: linode
+ type: string
+ url:
+ description: >-
+ __Read-only__ The API URL path you can use to
+ access this entity.
+ example: /v4/linode/instances/123
+ format: url
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ id:
+ description: __Filterable__ The device's unique ID.
+ example: 123
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this device was
+ last updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-devices.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-firewall-devices-200.yaml
+ x-example:
+ x-ref: ../examples/get-firewall-devices-200.json
+ description: A paginated list of Firewall Devices.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - firewall:read_only
+ summary: List firewall devices
+ tags:
+ - Devices
+ x-akamai:
+ tabs:
+ - syntax: linode-cli firewalls devices-list 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: devices-list
+ x-linode-grant: read_only
+ parameters:
+ - description: ID of the Firewall to access.
+ example: '{{firewallId}}'
+ in: path
+ name: firewallId
+ required: true
+ schema:
+ example: 9000
+ type: integer
+ x-akamai:
+ file-path: parameters/firewall-id.yaml
+ x-akamai:
+ file-path: paths/firewall-devices.yaml
+ path-info: /{apiVersion}/networking/firewalls/{firewallId}/devices
+ x-linode-cli-command: firewalls
+ /networking/firewalls/{firewallId}/devices/{deviceId}:
+ get:
+ description: >-
+ Returns information for a Firewall Device, which assigns a Firewall to a
+ service (referred to as the Device's `entity`).
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-firewall-device
+ operationId: get-firewall-device
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ Associates a firewall with a Linode, a Linode interface, or a
+ NodeBalancer service.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ When this device was
+ created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ entity:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The compute service or interface this
+ firewall is assigned to.
+ properties:
+ id:
+ description: The entity's ID.
+ example: 123
+ type: integer
+ label:
+ description: __Read-only__ The entity's label.
+ example: my-linode
+ readOnly: true
+ type: string
+ type:
+ description: The entity's type.
+ enum:
+ - linode
+ - nodebalancer
+ - interface
+ example: linode
+ type: string
+ url:
+ description: >-
+ __Read-only__ The API URL path you can use to access
+ this entity.
+ example: /v4/linode/instances/123
+ format: url
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ id:
+ description: __Filterable__ The device's unique ID.
+ example: 123
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this device was last
+ updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-devices.yaml
+ x-example:
+ x-ref: ../examples/get-firewall-device-200.json
+ description: The requested Firewall Device.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - firewall:read_only
+ summary: Get a firewall device
+ tags:
+ - Devices
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli firewalls device-view \
+ 123 456
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: device-view
+ x-linode-grant: read_only
+ delete:
+ description: >-
+ Removes a Firewall Device, which removes a Firewall from the service it
+ was assigned to by the Device. This removes all of the Firewall's Rules
+ from the service. If any other Firewalls have been assigned to the
+ service, then those Rules remain in effect.
+
+
+ - Assigned Linodes must not have any ongoing live migrations.
+
+
+ - A `firewall_device_remove` Event is generated when the Firewall Device
+ is removed successfully.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-firewall-device
+ operationId: delete-firewall-device
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-firewall-device-200.json
+ description: Delete Successful.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - firewall:read_write
+ summary: Delete a firewall device
+ tags:
+ - Devices
+ x-akamai:
+ tabs:
+ - syntax: linode-cli firewalls device-delete 123 456
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: device-delete
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Firewall to access.
+ example: '{{firewallId}}'
+ in: path
+ name: firewallId
+ required: true
+ schema:
+ example: 9000
+ type: integer
+ x-akamai:
+ file-path: parameters/firewall-id.yaml
+ - description: ID of the Firewall Device to access.
+ example: '{{deviceId}}'
+ in: path
+ name: deviceId
+ required: true
+ schema:
+ example: 768
+ type: integer
+ x-akamai:
+ file-path: parameters/device-id-path-b7287cbb.yaml
+ x-akamai:
+ file-path: paths/firewall-device.yaml
+ path-info: /{apiVersion}/networking/firewalls/{firewallId}/devices/{deviceId}
+ x-linode-cli-command: firewalls
+ /networking/firewalls/{firewallId}/history:
+ get:
+ description: >-
+ Lists the current and historical rules of the firewall (that is not
+ deleted), using `version`. Whenever rules update, the `version`
+ increments from `1`.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-firewall-rule-versions
+ operationId: get-firewall-rule-versions
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A resource that controls incoming and outgoing network traffic
+ to a compute service. Only one enabled Firewall can be
+ attached to a particular service at any given time. [Create a
+ firewall
+ device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device)
+ to assign a Firewall to a service. Currently, Firewalls can
+ assigned to Linode compute instances and NodeBalancers.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall was
+ created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ id:
+ description: __Filterable__, __Read-only__ The Firewall's unique ID.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ The Firewall's label, for display purposes
+ only.
+
+
+ Firewall labels have the following constraints:
+
+ - Must begin and end with an alphanumeric character.
+ - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.
+ - Must be between 3 and 32 characters.
+ - Must be unique.
+ example: firewall123
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ rules:
+ additionalProperties: false
+ description: >-
+ The inbound and outbound access rules to apply to the
+ Firewall.
+
+
+ A Firewall may have up to 25 rules across its inbound and
+ outbound rulesets.
+
+
+ Multiple rules are applied in order. If two rules
+ conflict, the first rule takes precedence. For example, if
+ the first rule accepts inbound traffic from an address,
+ and the second rule drops inbound traffic the same
+ address, the first rule applies and inbound traffic from
+ that address is accepted.
+ properties:
+ fingerprint:
+ description: >-
+ __Read-only__ The fingerprint is a 32-bit hash. It
+ represents the firewall rules as an 8 character hex
+ string. You can use `fingerprint` to compare rule
+ versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: The inbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to allow
+ traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped
+ by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule, or
+ the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this
+ rule. A rule can have up to 255 total addresses
+ or networks listed across its `ipv4` and `ipv6`
+ arrays. A network and a single IP are treated as
+ equivalent when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must
+ not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and must
+ not include zone_id notation as described in
+ [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected
+ by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by this
+ rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: >-
+ The default behavior for inbound traffic. This setting
+ can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: The outbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to allow
+ traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped
+ by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule, or
+ the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this
+ rule. A rule can have up to 255 total addresses
+ or networks listed across its `ipv4` and `ipv6`
+ arrays. A network and a single IP are treated as
+ equivalent when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must
+ not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and must
+ not include zone_id notation as described in
+ [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected
+ by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by this
+ rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: >-
+ The default behavior for outbound traffic. This
+ setting can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: >-
+ __Read-only__ The firewall's rule version. The first
+ version is `1`. The version number is incremented when
+ the firewall's rules change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ status:
+ description: |-
+ __Read-only__ The status of this Firewall.
+
+ - When a Firewall is first created its status is `enabled`.
+ - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.
+ - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall.
+ enum:
+ - enabled
+ - disabled
+ - deleted
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall was last
+ updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall.yaml
+ x-example:
+ x-ref: ../examples/get-firewall-200.json
+ description: Returns information for all rule versions for this firewall.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - firewall:read_only
+ summary: List firewall rule versions
+ tags:
+ - Firewalls
+ x-akamai:
+ tabs:
+ - syntax: linode-cli firewalls versions-list 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: versions-list
+ x-linode-grant: read_only
+ parameters:
+ - description: ID of the Firewall to access.
+ example: '{{firewallId}}'
+ in: path
+ name: firewallId
+ required: true
+ schema:
+ example: 9000
+ type: integer
+ x-akamai:
+ file-path: parameters/firewall-id.yaml
+ x-akamai:
+ file-path: paths/firewall-rule-versions.yaml
+ path-info: /{apiVersion}/networking/firewalls/{firewallId}/history
+ x-linode-cli-command: firewalls
+ /networking/firewalls/{firewallId}/history/rules/{version}:
+ get:
+ description: >-
+ Get a specific firewall rule version for an `enabled` or `disabled`
+ firewall.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-firewall-rule-version
+ operationId: get-firewall-rule-version
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A resource that controls incoming and outgoing network traffic
+ to a compute service. Only one enabled Firewall can be
+ attached to a particular service at any given time. [Create a
+ firewall
+ device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device)
+ to assign a Firewall to a service. Currently, Firewalls can
+ assigned to Linode compute instances and NodeBalancers.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall was
+ created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ id:
+ description: __Filterable__, __Read-only__ The Firewall's unique ID.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ The Firewall's label, for display purposes
+ only.
+
+
+ Firewall labels have the following constraints:
+
+ - Must begin and end with an alphanumeric character.
+ - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.
+ - Must be between 3 and 32 characters.
+ - Must be unique.
+ example: firewall123
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ rules:
+ additionalProperties: false
+ description: >-
+ The inbound and outbound access rules to apply to the
+ Firewall.
+
+
+ A Firewall may have up to 25 rules across its inbound and
+ outbound rulesets.
+
+
+ Multiple rules are applied in order. If two rules
+ conflict, the first rule takes precedence. For example, if
+ the first rule accepts inbound traffic from an address,
+ and the second rule drops inbound traffic the same
+ address, the first rule applies and inbound traffic from
+ that address is accepted.
+ properties:
+ fingerprint:
+ description: >-
+ __Read-only__ The fingerprint is a 32-bit hash. It
+ represents the firewall rules as an 8 character hex
+ string. You can use `fingerprint` to compare rule
+ versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: The inbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to allow
+ traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped
+ by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule, or
+ the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this
+ rule. A rule can have up to 255 total addresses
+ or networks listed across its `ipv4` and `ipv6`
+ arrays. A network and a single IP are treated as
+ equivalent when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must
+ not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and must
+ not include zone_id notation as described in
+ [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected
+ by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by this
+ rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: >-
+ The default behavior for inbound traffic. This setting
+ can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: The outbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access
+ rules. The `ports` property can be used to allow
+ traffic on a comma-separated list of different
+ ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped
+ by this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule, or
+ the `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this
+ rule. A rule can have up to 255 total addresses
+ or networks listed across its `ipv4` and `ipv6`
+ arrays. A network and a single IP are treated as
+ equivalent when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must
+ not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and must
+ not include zone_id notation as described in
+ [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected
+ by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by this
+ rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: >-
+ The default behavior for outbound traffic. This
+ setting can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: >-
+ __Read-only__ The firewall's rule version. The first
+ version is `1`. The version number is incremented when
+ the firewall's rules change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ status:
+ description: |-
+ __Read-only__ The status of this Firewall.
+
+ - When a Firewall is first created its status is `enabled`.
+ - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.
+ - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall.
+ enum:
+ - enabled
+ - disabled
+ - deleted
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall was last
+ updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall.yaml
+ x-example:
+ x-ref: ../examples/get-firewall-200.json
+ description: Returns a rule version.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - firewall:read_only
+ summary: Get a firewall rule version
+ tags:
+ - Firewalls
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli firewalls version-view \
+ 123 2
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: version-view
+ x-linode-grant: read_only
+ parameters:
+ - description: ID of the Firewall to access.
+ example: '{{firewallId}}'
+ in: path
+ name: firewallId
+ required: true
+ schema:
+ example: 9000
+ type: integer
+ x-akamai:
+ file-path: parameters/firewall-id.yaml
+ - description: The firewall rule version to view.
+ example: '{{version}}'
+ in: path
+ name: version
+ required: true
+ schema:
+ example: 3
+ type: integer
+ x-akamai:
+ file-path: parameters/firewall-rule-version.yaml
+ x-akamai:
+ file-path: paths/firewall-rule-version.yaml
+ path-info: /{apiVersion}/networking/firewalls/{firewallId}/history/rules/{version}
+ x-linode-cli-command: firewalls
+ /networking/firewalls/{firewallId}/rules:
+ get:
+ description: >-
+ Returns the inbound and outbound Rules for a Firewall.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-firewall-rules
+ operationId: get-firewall-rules
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ The inbound and outbound access rules to apply to the
+ Firewall.
+
+
+ A Firewall may have up to 25 rules across its inbound and
+ outbound rulesets.
+
+
+ Multiple rules are applied in order. If two rules conflict,
+ the first rule takes precedence. For example, if the first
+ rule accepts inbound traffic from an address, and the second
+ rule drops inbound traffic the same address, the first rule
+ applies and inbound traffic from that address is accepted.
+ properties:
+ fingerprint:
+ description: >-
+ __Read-only__ The fingerprint is a 32-bit hash. It
+ represents the firewall rules as an 8 character hex
+ string. You can use `fingerprint` to compare rule
+ versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: The inbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access rules.
+ The `ports` property can be used to allow traffic on a
+ comma-separated list of different ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped by
+ this rule. Overrides the Firewall's `inbound_policy`
+ if this is an inbound rule, or the `outbound_policy`
+ if this is an outbound rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this rule. A
+ rule can have up to 255 total addresses or networks
+ listed across its `ipv4` and `ipv6` arrays. A
+ network and a single IP are treated as equivalent
+ when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks. Addresses
+ must be in IP/mask format. Must not be an empty
+ list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks. Addresses
+ must be in IP/mask format and must not include
+ zone_id notation as described in [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected by
+ this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols. Ports
+ are not allowed for the ICMP and IPENCAP protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: The type of network traffic affected by this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: >-
+ The default behavior for inbound traffic. This setting can
+ be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: The outbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access rules.
+ The `ports` property can be used to allow traffic on a
+ comma-separated list of different ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped by
+ this rule. Overrides the Firewall's `inbound_policy`
+ if this is an inbound rule, or the `outbound_policy`
+ if this is an outbound rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this rule. A
+ rule can have up to 255 total addresses or networks
+ listed across its `ipv4` and `ipv6` arrays. A
+ network and a single IP are treated as equivalent
+ when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks. Addresses
+ must be in IP/mask format. Must not be an empty
+ list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks. Addresses
+ must be in IP/mask format and must not include
+ zone_id notation as described in [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected by
+ this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols. Ports
+ are not allowed for the ICMP and IPENCAP protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: The type of network traffic affected by this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: >-
+ The default behavior for outbound traffic. This setting
+ can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: >-
+ __Read-only__ The firewall's rule version. The first
+ version is `1`. The version number is incremented when the
+ firewall's rules change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-example:
+ x-ref: ../examples/get-firewall-rules-200.json
+ x-linode-cli-subtables:
+ - inbound
+ - outbound
+ description: The requested Firewall Rules.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - firewall:read_only
+ summary: List firewall rules
+ tags:
+ - Firewalls
+ x-akamai:
+ tabs:
+ - syntax: linode-cli firewalls rules-list 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: rules-list
+ x-linode-grant: read_only
+ put:
+ description: >-
+ Updates the inbound and outbound Rules for a Firewall.
+
+
+ - Assigned Linodes must not have any ongoing live migrations.
+
+
+ - __Note__. This operation replaces all of a Firewall's `inbound` and
+ `outbound` rulesets with the values specified in your request.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-firewall-rules
+ operationId: put-firewall-rules
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ The inbound and outbound access rules to apply to the
+ Firewall.
+
+
+ A Firewall may have up to 25 rules across its inbound and
+ outbound rulesets.
+
+
+ Multiple rules are applied in order. If two rules conflict,
+ the first rule takes precedence. For example, if the first
+ rule accepts inbound traffic from an address, and the second
+ rule drops inbound traffic the same address, the first rule
+ applies and inbound traffic from that address is accepted.
+ properties:
+ fingerprint:
+ description: >-
+ __Read-only__ The fingerprint is a 32-bit hash. It
+ represents the firewall rules as an 8 character hex
+ string. You can use `fingerprint` to compare rule
+ versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: The inbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access rules.
+ The `ports` property can be used to allow traffic on a
+ comma-separated list of different ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped by
+ this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule, or
+ the `outbound_policy` if this is an outbound rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this rule.
+ A rule can have up to 255 total addresses or
+ networks listed across its `ipv4` and `ipv6`
+ arrays. A network and a single IP are treated as
+ equivalent when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must not
+ be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and must
+ not include zone_id notation as described in
+ [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected
+ by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: The type of network traffic affected by this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: >-
+ The default behavior for inbound traffic. This setting
+ can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: The outbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access rules.
+ The `ports` property can be used to allow traffic on a
+ comma-separated list of different ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped by
+ this rule. Overrides the Firewall's
+ `inbound_policy` if this is an inbound rule, or
+ the `outbound_policy` if this is an outbound rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this rule.
+ A rule can have up to 255 total addresses or
+ networks listed across its `ipv4` and `ipv6`
+ arrays. A network and a single IP are treated as
+ equivalent when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format. Must not
+ be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and must
+ not include zone_id notation as described in
+ [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected
+ by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols.
+ Ports are not allowed for the ICMP and IPENCAP
+ protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: The type of network traffic affected by this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: >-
+ The default behavior for outbound traffic. This setting
+ can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: >-
+ __Read-only__ The firewall's rule version. The first
+ version is `1`. The version number is incremented when
+ the firewall's rules change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ properties:
+ inbound:
+ required:
+ - action
+ - addresses
+ - protocol
+ outbound:
+ required:
+ - action
+ - addresses
+ - protocol
+ x-akamai:
+ file-path: schemas/added-put-firewall-rules.yaml
+ type: object
+ x-example:
+ x-ref: ../examples/put-firewall-rules.json
+ x-linode-cli-subtables:
+ - inbound
+ - outbound
+ description: The Firewall Rules information to update.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ The inbound and outbound access rules to apply to the
+ Firewall.
+
+
+ A Firewall may have up to 25 rules across its inbound and
+ outbound rulesets.
+
+
+ Multiple rules are applied in order. If two rules conflict,
+ the first rule takes precedence. For example, if the first
+ rule accepts inbound traffic from an address, and the second
+ rule drops inbound traffic the same address, the first rule
+ applies and inbound traffic from that address is accepted.
+ properties:
+ fingerprint:
+ description: >-
+ __Read-only__ The fingerprint is a 32-bit hash. It
+ represents the firewall rules as an 8 character hex
+ string. You can use `fingerprint` to compare rule
+ versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: The inbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access rules.
+ The `ports` property can be used to allow traffic on a
+ comma-separated list of different ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped by
+ this rule. Overrides the Firewall's `inbound_policy`
+ if this is an inbound rule, or the `outbound_policy`
+ if this is an outbound rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this rule. A
+ rule can have up to 255 total addresses or networks
+ listed across its `ipv4` and `ipv6` arrays. A
+ network and a single IP are treated as equivalent
+ when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks. Addresses
+ must be in IP/mask format. Must not be an empty
+ list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks. Addresses
+ must be in IP/mask format and must not include
+ zone_id notation as described in [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected by
+ this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols. Ports
+ are not allowed for the ICMP and IPENCAP protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: The type of network traffic affected by this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: >-
+ The default behavior for inbound traffic. This setting can
+ be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: The outbound rules for the firewall, as a JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound access rules.
+ The `ports` property can be used to allow traffic on a
+ comma-separated list of different ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or dropped by
+ this rule. Overrides the Firewall's `inbound_policy`
+ if this is an inbound rule, or the `outbound_policy`
+ if this is an outbound rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by this rule. A
+ rule can have up to 255 total addresses or networks
+ listed across its `ipv4` and `ipv6` arrays. A
+ network and a single IP are treated as equivalent
+ when accounting for this limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks. Addresses
+ must be in IP/mask format. Must not be an empty
+ list.
+
+
+ If `0.0.0.0/0` is included in this list, all
+ IPv4 addresses are affected by this rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks. Addresses
+ must be in IP/mask format and must not include
+ zone_id notation as described in [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all IPv6
+ addresses are affected by this rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display purposes
+ only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display purposes
+ only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports affected by
+ this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports are
+ affected.
+
+ - Only allowed for the TCP and UDP protocols. Ports
+ are not allowed for the ICMP and IPENCAP protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: The type of network traffic affected by this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: >-
+ The default behavior for outbound traffic. This setting
+ can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: >-
+ __Read-only__ The firewall's rule version. The first
+ version is `1`. The version number is incremented when the
+ firewall's rules change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-example:
+ x-ref: ../examples/get-firewall-rules-200.json
+ x-linode-cli-subtables:
+ - inbound
+ - outbound
+ description: Firewall Rules updated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - firewall:read_write
+ summary: Update firewall rules
+ tags:
+ - Firewalls
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli firewalls rules-update 123 \
+ --inbound '[{"action":"ACCEPT", "protocol": "TCP", "ports": "22, 80, 8080, 443", "addresses": {"ipv4": ["192.0.2.0/24", "198.51.100.2/32"], "ipv6": ["2001:DB8::/128"]}}]' \
+ --outbound '[{"action":"DROP","protocol": "TCP", "ports": "49152-65535", "addresses": {"ipv4": ["192.0.2.0/24", "198.51.100.2/32"], "ipv6": ["2001:DB8::/128`"]}}]'
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: firewall:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: rules-update
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Firewall to access.
+ example: '{{firewallId}}'
+ in: path
+ name: firewallId
+ required: true
+ schema:
+ example: 9000
+ type: integer
+ x-akamai:
+ file-path: parameters/firewall-id.yaml
+ x-akamai:
+ file-path: paths/rules.yaml
+ path-info: /{apiVersion}/networking/firewalls/{firewallId}/rules
+ x-linode-cli-command: firewalls
+ /networking/ips:
+ post:
+ description: >-
+ Allocates a new IPv4 Address on your Account. The Linode must be
+ configured to support additional addresses - please [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ requesting additional addresses before attempting allocation.
+
+
+ > 📘
+
+ >
+
+ > You can run this operation for Linodes with legacy configuration
+ interfaces. You can't use it for Linodes with Linode interfaces. To
+ allocate an IP for a Linode with Linode interfaces, use the [Add a
+ Linode
+ interface](https://techdocs.akamai.com/linode-api/reference/post-linode-interface)
+ operation and set the public IPv4 address to `auto`.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-allocate-ip
+ operationId: post-allocate-ip
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ linode_id:
+ description: >-
+ The ID of a Linode you have access to that this address will
+ be allocated to.
+ example: '{{linode_id}}'
+ type: integer
+ public:
+ description: Whether to create a public or private IPv4 address.
+ example: '{{public}}'
+ type: boolean
+ type:
+ description: >-
+ The type of address you are requesting. Only IPv4 addresses
+ may be allocated through this operation.
+ enum:
+ - ipv4
+ example: '{{type}}'
+ type: string
+ required:
+ - type
+ - public
+ - linode_id
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-allocate-ip.yaml
+ x-example:
+ x-ref: ../examples/post-allocate-ip.json
+ description: Information about the address you are creating.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ An IP address that exists in Linode's system, either IPv4 or
+ IPv6.
+ properties:
+ address:
+ description: __Read-only__ The IP address.
+ example: 97.107.143.141
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ gateway:
+ description: __Read-only__ The default gateway for this address.
+ example: 97.107.143.1
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ interface_id:
+ description: >-
+ __Beta__, __Read-only__ The Linode interface ID that this
+ IP address is assigned to. This value is `null` if a
+ Linode interface is not assigned, or if the IP is assigned
+ to a legacy configuration profile interface.
+ example: 456
+ nullable: true
+ readOnly: true
+ type: integer
+ x-akamai:
+ status: BETA
+ x-linode-cli-display: 7
+ linode_id:
+ description: >-
+ __Read-only__ The ID of the Linode this address currently
+ belongs to. For IPv4 addresses, this is by default the
+ Linode that this address was assigned to on creation, and
+ these addresses may be moved using the [Assign IPv4s to
+ Linodes](https://techdocs.akamai.com/linode-api/reference/post-assign-ipv4s)
+ operation. For SLAAC and link-local addresses, this value
+ can't be changed.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 6
+ prefix:
+ description: __Read-only__ The number of bits set in the subnet mask.
+ example: 24
+ readOnly: true
+ type: integer
+ public:
+ description: >-
+ __Read-only__ Whether this is a public or private IP
+ address.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ rdns:
+ description: >-
+ The reverse DNS assigned to this address. For public IPv4
+ addresses, this will be set to a default value provided by
+ Linode if not explicitly set.
+ example: test.example.org
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ region:
+ description: __Read-only__ The Region this IP address resides in.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ subnet_mask:
+ description: >-
+ __Read-only__ The mask that separates host bits from
+ network bits for this address.
+ example: 255.255.255.0
+ format: ip
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of address this is.
+ enum:
+ - ipv4
+ - ipv6
+ - ipv6/pool
+ - ipv6/range
+ example: ipv4
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ vpc_nat_1_1:
+ additionalProperties: false
+ description: >-
+ IPv4 address configured as a 1:1 NAT for this Interface.
+ If no address is configured as a 1:1 NAT, `null` is
+ returned.
+
+
+ > 📘
+
+ >
+
+ > Only allowed for `vpc` type interfaces.
+ properties:
+ address:
+ description: >-
+ The IPv4 address that is configured as a 1:1 NAT for
+ this VPC interface.
+ example: 192.168.0.42
+ format: ipv4
+ type: string
+ subnet_id:
+ description: The `id` of the VPC Subnet for this interface.
+ example: 101
+ nullable: false
+ type: integer
+ vpc_id:
+ description: >-
+ __Read-only__ The `id` of the VPC configured for this
+ interface.
+ example: 111
+ nullable: false
+ readOnly: true
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/ip-address.yaml
+ x-example:
+ x-ref: ../examples/post-allocate-ip-200.json
+ description: IP Address allocated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_write
+ summary: Allocate an IP address
+ tags:
+ - IP addresses
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli networking ip-add \
+ --type ipv4 \
+ --public true \
+ --linode_id 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ ips:read_write
+ linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: ip-add
+ x-linode-grant: read_write
+ get:
+ description: >-
+ Returns a paginated list of IP addresses on your account for Linodes or
+ Linode interfaces, excluding private addresses.
+
+
+ > 👍
+
+ >
+
+ > if your application frequently accesses this operation and doesn't
+ require IPv6 RDNS data, you can use the `skip_ipv6_rdns` query string to
+ improve performance.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-ips
+ operationId: get-ips
+ parameters:
+ - description: >-
+ When `true`, the `rdns` property for any `ipv6` type addresses
+ always returns `null` regardless of whether RDNS data exists for the
+ address.
+ example: '{{skip_ipv6_rdns}}'
+ in: query
+ name: skip_ipv6_rdns
+ schema:
+ default: false
+ example: true
+ type: boolean
+ x-akamai:
+ file-path: parameters/skip-ipv6-rdns-query.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - address: 198.51.100.141
+ gateway: 198.51.100.1
+ interface_id: 456
+ linode_id: 123
+ prefix: 24
+ public: true
+ rdns: test.example.org
+ region: us-east
+ subnet_mask: 192.0.2.139
+ type: ipv4
+ vpc_nat_1_1:
+ address: 192.0.2.1
+ subnet_id: 101
+ vpc_id: 111
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ description: >-
+ IP addresses that exist in Linode's system, either
+ IPv4 or IPv6, specific to the response for the [List
+ IP
+ addresses](https://techdocs.akamai.com/linode-api/reference/get-ips)
+ operation.
+ items:
+ additionalProperties: false
+ description: >-
+ An IP address that exists in Linode's system, either
+ IPv4 or IPv6, specific to the response for the [List
+ IP
+ addresses](https://techdocs.akamai.com/linode-api/reference/get-ips)
+ operation.
+ properties:
+ address:
+ description: __Filterable__, __Read-only__ The IP address.
+ example: 192.0.2.141
+ format: ip
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ gateway:
+ description: >-
+ __Read-only__ The default gateway for this
+ address.
+ example: 192.0.2.1
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ interface_id:
+ description: >-
+ __Beta__, __Read-only__ The Linode interface ID
+ this public IP address is assigned to. This
+ value is `null` if a Linode interface is not
+ assigned, or if the IP is assigned to a legacy
+ configuration profile interface.
+ example: 456
+ nullable: true
+ readOnly: true
+ type: integer
+ x-akamai:
+ status: BETA
+ x-linode-cli-display: 7
+ linode_id:
+ description: >-
+ __Read-only__ The ID of the Linode this address
+ currently belongs to. For IPv4 addresses, this
+ defaults to the Linode that this address was
+ assigned to on creation. IPv4 addresses may be
+ moved using the [Assign IPv4s to
+ Linodes](https://techdocs.akamai.com/linode-api/reference/post-assign-ipv4s)
+ operation. For SLAAC and link-local addresses,
+ this value may not be changed.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 6
+ prefix:
+ description: >-
+ __Filterable__, __Read-only__ The number of bits
+ set in the subnet mask.
+ example: 24
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ public:
+ description: >-
+ __Read-only__ Whether this is a public or
+ private IP address.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ rdns:
+ description: >-
+ __Filterable__ The reverse DNS assigned to this
+ address. For public IPv4 addresses, this will be
+ set to a default value provided by Linode if not
+ explicitly set.
+ example: test.example.org
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The Region this IP
+ address resides in.
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ subnet_mask:
+ description: >-
+ __Read-only__ The mask that separates host bits
+ from network bits for this address.
+ example: 255.255.255.0
+ format: ip
+ readOnly: true
+ type: string
+ type:
+ description: >-
+ __Filterable__, __Read-only__ The type of
+ address this is.
+ enum:
+ - ipv4
+ - ipv6
+ - ipv6/pool
+ - ipv6/range
+ example: ipv4
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ vpc_nat_1_1:
+ additionalProperties: false
+ description: >-
+ IPv4 address configured as a 1:1 NAT for this
+ interface. Empty if no address is configured as
+ a 1:1 NAT.
+
+
+ > 📘
+
+ >
+
+ > Only allowed for `vpc` type interfaces.
+ properties:
+ address:
+ description: >-
+ The IPv4 address that is configured as a 1:1
+ NAT for this VPC interface.
+ example: 192.168.0.42
+ format: ipv4
+ type: string
+ subnet_id:
+ description: >-
+ The `id` of the VPC Subnet for this
+ interface.
+ example: 101
+ nullable: false
+ type: integer
+ vpc_id:
+ description: >-
+ __Read-only__ The `id` of the VPC configured
+ for this Interface.
+ example: 111
+ nullable: false
+ readOnly: true
+ type: integer
+ type: object
+ type: object
+ type: array
+ type: object
+ description: >-
+ The response data for the [List IP
+ addresses](https://techdocs.akamai.com/linode-api/reference/get-ips)
+ operation.
+ x-akamai:
+ file-path: schemas/ip-addresses-list-response.yaml
+ description: A paginated list of IP Addresses.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_only
+ summary: List IP addresses
+ tags:
+ - IP addresses
+ x-akamai:
+ tabs:
+ - syntax: linode-cli networking ips-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: ips:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: ips-list
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/networking-ips.yaml
+ path-info: /{apiVersion}/networking/ips
+ x-linode-cli-command: networking
+ /networking/ips/assign:
+ post:
+ description: >-
+ Assign any set of IPv4 addresses and IPv6 ranges to Linodes in one
+ region. This allows swapping, shuffling, or otherwise reorganizing IPs
+ among your Linodes.
+
+
+ The following restrictions apply:
+
+
+ - All Linodes need to have at least one public IPv4 address assigned.
+ - For Linode interfaces, the Linode needs to have a public interface, and the address it receives can't be a private IPv4 address.
+ - Linodes may have no more than one assigned private IPv4 address.
+
+ - Linodes may have no more than one assigned IPv6 range.
+
+ - Shared IP addresses cannot be swapped between Linodes.
+
+
+ [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) to
+ request additional IPv4 addresses or IPv6 ranges beyond standard account
+ limits.
+
+
+ > 📘
+
+ >
+
+ > 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 following
+ operations:
+
+
+ - [Get a Linode's managed
+ settings](https://techdocs.akamai.com/linode-api/reference/get-managed-linode-setting)
+
+ - [Update a Linode's managed
+ settings](https://techdocs.akamai.com/linode-api/reference/put-managed-linode-setting)
+
+
+ > 📘
+
+ >
+
+ > Addresses with an active 1:1 NAT to a VPC Interface address cannot be
+ assigned to other Linodes.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-assign-ips
+ operationId: post-assign-ips
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ Request object for IP Addresses Assign (POST
+ /networking/ips/assign).
+ properties:
+ assignments:
+ description: >-
+ The list of assignments to make. You must have read_write
+ access to all IPs being assigned and all Linodes being
+ assigned to in order for the assignments to succeed.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ 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.
+
+ - Can be a public or private address.
+
+ - For Linode interfaces, public IPv4 addresses or
+ public IPv6 ranges can be exchanged on public
+ interfaces. Private IPv4 addresses are not supported.
+ example: 192.0.2.1
+ format: ipv4|ipv6/prefix_length
+ type: string
+ linode_id:
+ 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
+ type: integer
+ required:
+ - address
+ - linode_id
+ type: object
+ type: array
+ region:
+ description: >-
+ The ID of the Region in which these assignments are to take
+ place. All IPs and Linodes must exist in this Region.
+ example: '{{region}}'
+ type: string
+ required:
+ - region
+ - assignments
+ type: object
+ x-akamai:
+ file-path: schemas/ip-addresses-assign-request.yaml
+ x-example:
+ x-ref: ../examples/post-assign-ips.json
+ description: >-
+ Information about what IPv4 address or IPv6 range to assign, and to
+ which Linode.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-assign-ips-200.json
+ description: All assignments completed successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_write
+ - linodes:read_write
+ summary: Assign IP addresses
+ tags:
+ - IP addresses
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli networking ip-assign \
+ --region us-east \
+ --assignments.address 192.0.2.1 \
+ --assignments.linode_id 123 \
+ --assignments.address 2001:db8:3c4d:15::/64 \
+ --assignments.linode_id 234
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ ips:read_write
+ linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: ip-assign
+ x-linode-grant: read_write
+ parameters: []
+ x-akamai:
+ file-path: paths/ips-assign.yaml
+ path-info: /{apiVersion}/networking/ips/assign
+ x-linode-cli-command: networking
+ /networking/ips/share:
+ post:
+ 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 [BGP based failover
+ service](https://techdocs.akamai.com/cloud-computing/docs/configure-failover-on-a-compute-instance)
+ within the internal system of the primary Linode.
+
+
+ > 📘
+
+ >
+
+ > A public IPv4 address can't be shared if it's configured for a 1:1 NAT
+ on a legacy configuration profile VPC interface or on a Linode VPC
+ interface.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-share-ips
+ operationId: post-share-ips
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A request object IP Addresses Share (POST
+ /networking/ips/share).
+ properties:
+ ips:
+ 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.
+ example:
+ - 192.0.2.1
+ - '2001:db8:3c4d:15::'
+ items:
+ format: ip
+ type: string
+ type: array
+ linode_id:
+ description: >-
+ The ID of the primary Linode that the addresses will be
+ shared with.
+ example: '{{linode_id}}'
+ type: integer
+ required:
+ - linode_id
+ - ips
+ type: object
+ x-akamai:
+ file-path: schemas/ip-addresses-share-request.yaml
+ x-example:
+ x-ref: ../examples/post-share-ips.json
+ description: Information about what IPs to share with which Linode.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-share-ips-200.json
+ description: IP Address sharing successful.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_write
+ - linodes:read_write
+ summary: Share IP addresses
+ tags:
+ - IP addresses
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli networking ip-share \
+ --linode_id 123 \
+ --ips 192.0.2.1 \
+ --ips 2001:db8:3c4d:15::
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ ips:read_write
+ linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: ip-share
+ x-linode-grant: read_write
+ parameters: []
+ x-akamai:
+ file-path: paths/ips-share.yaml
+ path-info: /{apiVersion}/networking/ips/share
+ x-linode-cli-command: networking
+ /networking/ips/{address}:
+ get:
+ description: >-
+ Returns information about a single IP Address on your Account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-ip
+ operationId: get-ip
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ An IP address that exists in Linode's system, either IPv4 or
+ IPv6.
+ properties:
+ address:
+ description: __Read-only__ The IP address.
+ example: 97.107.143.141
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ gateway:
+ description: __Read-only__ The default gateway for this address.
+ example: 97.107.143.1
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ interface_id:
+ description: >-
+ __Beta__, __Read-only__ The Linode interface ID that this
+ IP address is assigned to. This value is `null` if a
+ Linode interface is not assigned, or if the IP is assigned
+ to a legacy configuration profile interface.
+ example: 456
+ nullable: true
+ readOnly: true
+ type: integer
+ x-akamai:
+ status: BETA
+ x-linode-cli-display: 7
+ linode_id:
+ description: >-
+ __Read-only__ The ID of the Linode this address currently
+ belongs to. For IPv4 addresses, this is by default the
+ Linode that this address was assigned to on creation, and
+ these addresses may be moved using the [Assign IPv4s to
+ Linodes](https://techdocs.akamai.com/linode-api/reference/post-assign-ipv4s)
+ operation. For SLAAC and link-local addresses, this value
+ can't be changed.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 6
+ prefix:
+ description: __Read-only__ The number of bits set in the subnet mask.
+ example: 24
+ readOnly: true
+ type: integer
+ public:
+ description: >-
+ __Read-only__ Whether this is a public or private IP
+ address.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ rdns:
+ description: >-
+ The reverse DNS assigned to this address. For public IPv4
+ addresses, this will be set to a default value provided by
+ Linode if not explicitly set.
+ example: test.example.org
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ region:
+ description: __Read-only__ The Region this IP address resides in.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ subnet_mask:
+ description: >-
+ __Read-only__ The mask that separates host bits from
+ network bits for this address.
+ example: 255.255.255.0
+ format: ip
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of address this is.
+ enum:
+ - ipv4
+ - ipv6
+ - ipv6/pool
+ - ipv6/range
+ example: ipv4
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ vpc_nat_1_1:
+ additionalProperties: false
+ description: >-
+ IPv4 address configured as a 1:1 NAT for this Interface.
+ If no address is configured as a 1:1 NAT, `null` is
+ returned.
+
+
+ > 📘
+
+ >
+
+ > Only allowed for `vpc` type interfaces.
+ properties:
+ address:
+ description: >-
+ The IPv4 address that is configured as a 1:1 NAT for
+ this VPC interface.
+ example: 192.168.0.42
+ format: ipv4
+ type: string
+ subnet_id:
+ description: The `id` of the VPC Subnet for this interface.
+ example: 101
+ nullable: false
+ type: integer
+ vpc_id:
+ description: >-
+ __Read-only__ The `id` of the VPC configured for this
+ interface.
+ example: 111
+ nullable: false
+ readOnly: true
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/ip-address.yaml
+ x-example:
+ x-ref: ../examples/get-ip-200.json
+ description: The requested IP Address.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_only
+ summary: Get an IP address
+ tags:
+ - IP addresses
+ x-akamai:
+ tabs:
+ - syntax: linode-cli networking ip-view 97.107.143.141
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: ips:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: ip-view
+ x-linode-grant: read_only
+ put:
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-ip
+ operationId: put-ip
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ rdns:
+ description: >-
+ The reverse DNS assigned to this address. For public IPv4
+ addresses, this will be set to a default value provided by
+ Linode if not explicitly set.
+ example: '{{rdns}}'
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ required:
+ - rdns
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-ip.yaml
+ x-example:
+ x-ref: ../examples/put-ip.json
+ description: The information to update.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ An IP address that exists in Linode's system, either IPv4 or
+ IPv6.
+ properties:
+ address:
+ description: __Read-only__ The IP address.
+ example: 97.107.143.141
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ gateway:
+ description: __Read-only__ The default gateway for this address.
+ example: 97.107.143.1
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ interface_id:
+ description: >-
+ __Beta__, __Read-only__ The Linode interface ID that this
+ IP address is assigned to. This value is `null` if a
+ Linode interface is not assigned, or if the IP is assigned
+ to a legacy configuration profile interface.
+ example: 456
+ nullable: true
+ readOnly: true
+ type: integer
+ x-akamai:
+ status: BETA
+ x-linode-cli-display: 7
+ linode_id:
+ description: >-
+ __Read-only__ The ID of the Linode this address currently
+ belongs to. For IPv4 addresses, this is by default the
+ Linode that this address was assigned to on creation, and
+ these addresses may be moved using the [Assign IPv4s to
+ Linodes](https://techdocs.akamai.com/linode-api/reference/post-assign-ipv4s)
+ operation. For SLAAC and link-local addresses, this value
+ can't be changed.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 6
+ prefix:
+ description: __Read-only__ The number of bits set in the subnet mask.
+ example: 24
+ readOnly: true
+ type: integer
+ public:
+ description: >-
+ __Read-only__ Whether this is a public or private IP
+ address.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 3
+ rdns:
+ description: >-
+ The reverse DNS assigned to this address. For public IPv4
+ addresses, this will be set to a default value provided by
+ Linode if not explicitly set.
+ example: test.example.org
+ nullable: true
+ type: string
+ x-linode-cli-display: 4
+ region:
+ description: __Read-only__ The Region this IP address resides in.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ subnet_mask:
+ description: >-
+ __Read-only__ The mask that separates host bits from
+ network bits for this address.
+ example: 255.255.255.0
+ format: ip
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of address this is.
+ enum:
+ - ipv4
+ - ipv6
+ - ipv6/pool
+ - ipv6/range
+ example: ipv4
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ vpc_nat_1_1:
+ additionalProperties: false
+ description: >-
+ IPv4 address configured as a 1:1 NAT for this Interface.
+ If no address is configured as a 1:1 NAT, `null` is
+ returned.
+
+
+ > 📘
+
+ >
+
+ > Only allowed for `vpc` type interfaces.
+ properties:
+ address:
+ description: >-
+ The IPv4 address that is configured as a 1:1 NAT for
+ this VPC interface.
+ example: 192.168.0.42
+ format: ipv4
+ type: string
+ subnet_id:
+ description: The `id` of the VPC Subnet for this interface.
+ example: 101
+ nullable: false
+ type: integer
+ vpc_id:
+ description: >-
+ __Read-only__ The `id` of the VPC configured for this
+ interface.
+ example: 111
+ nullable: false
+ readOnly: true
+ type: integer
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/ip-address.yaml
+ x-example:
+ x-ref: ../examples/get-ip-200.json
+ description: RDNS set successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_write
+ summary: Update an IP address's RDNS
+ tags:
+ - IP addresses
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli networking ip-update \
+ 203.0.113.1 \
+ --rdns "test.example.org"
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: ips:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: ip-update
+ x-linode-grant: read_write
+ parameters:
+ - description: The address to operate on.
+ example: '{{address}}'
+ in: path
+ name: address
+ required: true
+ schema:
+ format: ip
+ type: string
+ x-akamai:
+ file-path: parameters/address-path-e209a4cb.yaml
+ x-akamai:
+ file-path: paths/networking-ip-address.yaml
+ path-info: /{apiVersion}/networking/ips/{address}
+ x-linode-cli-command: networking
+ /networking/ipv4/assign:
+ post:
+ description: >-
+ This operation is equivalent to [Assign IP
+ addresses](https://techdocs.akamai.com/linode-api/reference/post-assign-ips).
+
+
+ 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.
+ - For Linode interfaces, the Linode needs to have a public interface, and the address it receives can't be a private IPv4 address.
+ - 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](https://techdocs.akamai.com/linode-api/reference/post-ticket) to
+ request additional IPv4 addresses or IPv6 ranges beyond standard account
+ limits.
+
+
+ > 📘
+
+ >
+
+ > 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 following
+ operations:
+
+ - [Get a Linode's managed
+ settings](https://techdocs.akamai.com/linode-api/reference/get-managed-linode-setting)
+
+ - [Update a Linode's managed
+ settings](https://techdocs.akamai.com/linode-api/reference/put-managed-linode-setting)
+ __OAuth scopes__.
+
+ ```
+ ips:read_write
+ linodes:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-assign-ipv4s
+ operationId: post-assign-ipv4s
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ Request object for IP Addresses Assign (POST
+ /networking/ips/assign).
+ properties:
+ assignments:
+ description: >-
+ The list of assignments to make. You must have read_write
+ access to all IPs being assigned and all Linodes being
+ assigned to in order for the assignments to succeed.
+ items:
+ additionalProperties: false
+ properties:
+ address:
+ 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.
+
+ - Can be a public or private address.
+
+ - For Linode interfaces, public IPv4 addresses or
+ public IPv6 ranges can be exchanged on public
+ interfaces. Private IPv4 addresses are not supported.
+ example: 192.0.2.1
+ format: ipv4|ipv6/prefix_length
+ type: string
+ linode_id:
+ 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
+ type: integer
+ required:
+ - address
+ - linode_id
+ type: object
+ type: array
+ region:
+ description: >-
+ The ID of the Region in which these assignments are to take
+ place. All IPs and Linodes must exist in this Region.
+ example: '{{region}}'
+ type: string
+ required:
+ - region
+ - assignments
+ type: object
+ x-akamai:
+ file-path: schemas/ip-addresses-assign-request.yaml
+ x-example:
+ x-ref: ../examples/post-assign-ipv4s.json
+ description: Information about what IPv4 address to assign, and to which Linode.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-assign-ipv4s-200.json
+ description: All assignments completed successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_write
+ - linodes:read_write
+ summary: Assign IPv4s to Linodes
+ tags:
+ - IPv4 addresses
+ x-akamai:
+ tabs:
+ - syntax: |-
+ ips:read_write
+ linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ x-linode-grant: read_write
+ parameters: []
+ x-akamai:
+ file-path: paths/ipv4-assign.yaml
+ path-info: /{apiVersion}/networking/ipv4/assign
+ x-linode-cli-command: networking
+ /networking/ipv4/share:
+ post:
+ description: >-
+ This operation is equivalent to [Share IP
+ addresses](https://techdocs.akamai.com/linode-api/reference/post-share-ips).
+
+
+ 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 [BGP based failover
+ service](https://techdocs.akamai.com/cloud-computing/docs/configure-failover-on-a-compute-instance)
+ within the internal system of the primary Linode.
+
+
+ > 📘
+
+ >
+
+ > A public IPv4 address can't be shared if it's configured for a 1:1 NAT
+ on a legacy configuration profile VPC interface or on a Linode VPC
+ interface. __OAuth scopes__.
+
+ ```
+ ips:read_write
+ linodes:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-share-ipv4s
+ operationId: post-share-ipv4s
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A request object IP Addresses Share (POST
+ /networking/ips/share).
+ properties:
+ ips:
+ 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.
+ example:
+ - 192.0.2.1
+ - '2001:db8:3c4d:15::'
+ items:
+ format: ip
+ type: string
+ type: array
+ linode_id:
+ description: >-
+ The ID of the primary Linode that the addresses will be
+ shared with.
+ example: '{{linode_id}}'
+ type: integer
+ required:
+ - linode_id
+ - ips
+ type: object
+ x-akamai:
+ file-path: schemas/ip-addresses-share-request.yaml
+ x-example:
+ x-ref: ../examples/post-share-ipv4s.json
+ description: Information about what IPs to share with which Linode.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-share-ipv4s-200.json
+ description: Sharing configured successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_write
+ - linodes:read_write
+ summary: Configure IPv4 sharing
+ tags:
+ - IPv4 addresses
+ x-akamai:
+ tabs:
+ - syntax: |-
+ ips:read_write
+ linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ x-linode-grant: read_write
+ parameters: []
+ x-akamai:
+ file-path: paths/ipv4-share.yaml
+ path-info: /{apiVersion}/networking/ipv4/share
+ x-linode-cli-command: networking
+ /networking/ipv6/pools:
+ get:
+ description: >-
+ Displays the IPv6 pools on your Account. A pool of IPv6 addresses are
+ routed to all of your Linodes in a single
+ [region](https://techdocs.akamai.com/linode-api/reference/get-regions).
+ Any Linode on your Account may bring up any address in this pool at any
+ time, with no external configuration required.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-ipv6-pools
+ operationId: get-ipv6-pools
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: An object representing an IPv6 pool.
+ properties:
+ prefix:
+ description: >-
+ The prefix length of the address. The total number
+ of addresses that can be assigned from this range is
+ calculated as 2(128 - prefix length) .
+ example: 124
+ type: integer
+ x-linode-cli-display: 2
+ range:
+ description: >-
+ __Read-only__ The IPv6 range of addresses in this
+ pool.
+ example: 2600:3c01::2:5000:0
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The region for this
+ pool of IPv6 addresses.
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ route_target:
+ description: The last address in this block of IPv6 addresses.
+ example: 2600:3c01::2:5000:f
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/ipv6-pool.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-ipv6-pools-200.yaml
+ x-example:
+ x-ref: ../examples/get-ipv6-pools-200.json
+ description: The IPv6 pools on your Account.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_only
+ summary: List IPv6 pools
+ tags:
+ - IPv6 pools
+ x-akamai:
+ tabs:
+ - syntax: linode-cli networking v6-pools
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: ips:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: v6-pools
+ parameters: []
+ x-akamai:
+ file-path: paths/ipv6-pools.yaml
+ path-info: /{apiVersion}/networking/ipv6/pools
+ x-linode-cli-command: networking
+ /networking/ipv6/ranges:
+ post:
+ description: >-
+ Creates an IPv6 Range and assigns it based on the provided Linode or
+ route target IPv6 SLAAC address. See the `ipv6` property when running
+ the [Get a
+ Linode](https://techdocs.akamai.com/linode-api/reference/get-linode-instance)
+ operation 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](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ 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.
+
+ - Run the [Assign IP
+ addresses](https://techdocs.akamai.com/linode-api/reference/post-assign-ips)
+ operation to re-assign IPv6 Ranges to your Linodes.
+
+
+ > 📘
+
+ >
+
+ > - A Linode can only have one IPv6 range targeting its SLAAC address.
+
+ > - An account can only have one IPv6 range in each
+ [region](https://techdocs.akamai.com/linode-api/reference/get-regions).
+
+ > - [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) to
+ request expansion of these restrictions.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-ipv6-range
+ operationId: post-ipv6-range
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ linode_id:
+ 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: '{{linode_id}}'
+ type: integer
+ prefix_length:
+ description: The prefix length of the IPv6 range.
+ enum:
+ - 56
+ - 64
+ example: '{{prefix_length}}'
+ type: integer
+ route_target:
+ 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.
+
+
+ > 📘
+
+ >
+
+ > You need to omit the `/128` prefix length of the SLAAC
+ address when using this property.
+ example: '{{route_target}}'
+ format: ipv6
+ type: string
+ required:
+ - prefix_length
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-ipv6-range.yaml
+ x-example:
+ x-ref: ../examples/post-ipv6-range.json
+ description: Information about the IPv6 range to create.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ range:
+ description: >-
+ The IPv6 network range, including subnet and prefix
+ length.
+ example: 2001:0db8::/64
+ format: ipv6/prefix_length
+ type: string
+ route_target:
+ description: >-
+ The route target IPV6 SLAAC address for this range. Does
+ not include the prefix length.
+ example: 2001:0db8::1
+ format: ipv6
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-ipv6-range-200.yaml
+ x-example:
+ x-ref: ../examples/post-ipv6-range-200.json
+ description: IPv6 range created successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_write
+ - linodes:read_write
+ summary: Create an IPv6 range
+ tags:
+ - IPv6 ranges
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli networking v6-range-create \
+ --linode_id 123 \
+ --prefix_length 64
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ ips:read_write
+ linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: v6-range-create
+ get:
+ description: >-
+ Displays the IPv6 ranges on your Account.
+
+ - An IPv6 range is a `/64` or `/56` block of IPv6 addresses routed to a single Linode in a given [region](https://techdocs.akamai.com/linode-api/reference/get-regions).
+
+ - Your Linode is responsible for routing individual addresses in the range, or handling traffic for all the addresses in the range.
+
+ - Run the [Create an IPv6 range](https://techdocs.akamai.com/linode-api/reference/post-ipv6-range) operation to add a `/64` or `/56` block of IPv6 addresses to your account.
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-ipv6-ranges
+ operationId: get-ipv6-ranges
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: An object representing an IPv6 range.
+ properties:
+ prefix:
+ description: >-
+ The prefix length of the address. The total number
+ of addresses that can be assigned from this range is
+ calculated as 2(128 - prefix length) .
+ example: 64
+ type: integer
+ x-linode-cli-display: 2
+ range:
+ description: __Read-only__ The IPv6 address of this range.
+ example: '2600:3c01::'
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ region:
+ description: >-
+ __Read-only__ The region for this range of IPv6
+ addresses.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ route_target:
+ description: The IPv6 SLAAC address.
+ example: 2600:3c01::ffff:ffff:ffff:ffff
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/ipv6-range.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-ipv6-ranges-200.yaml
+ x-example:
+ x-ref: ../examples/get-ipv6-ranges-200.json
+ description: The IPv6 ranges on your Account.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_only
+ summary: List IPv6 ranges
+ tags:
+ - IPv6 ranges
+ x-akamai:
+ tabs:
+ - syntax: linode-cli networking v6-ranges
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: ips:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: v6-ranges
+ parameters: []
+ x-akamai:
+ file-path: paths/ranges.yaml
+ path-info: /{apiVersion}/networking/ipv6/ranges
+ x-linode-cli-command: networking
+ /networking/ipv6/ranges/{range}:
+ get:
+ description: >-
+ View IPv6 range information.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-ipv6-range
+ operationId: get-ipv6-range
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An object representing an IPv6 range.
+ properties:
+ is_bgp:
+ description: __Read-only__ Whether this IPv6 range is shared.
+ example: false
+ readOnly: true
+ type: boolean
+ linodes:
+ description: >-
+ __Read-only__ A list of Linodes targeted by this IPv6
+ range. Includes Linodes with IP sharing.
+ example:
+ - 123
+ items:
+ type: integer
+ readOnly: true
+ type: array
+ x-linode-cli-display: 4
+ prefix:
+ description: >-
+ The prefix length of the address. The total number of
+ addresses that can be assigned from this range is
+ calculated as 2(128 - prefix length) .
+ example: 64
+ type: integer
+ x-linode-cli-display: 2
+ range:
+ description: __Read-only__ The IPv6 address of this range.
+ example: '2600:3c01::'
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ region:
+ description: __Read-only__ The region for this range of IPv6 addresses.
+ example: us-east
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ type: object
+ x-akamai:
+ file-path: schemas/ipv6-range-bgp.yaml
+ x-example:
+ x-ref: ../examples/get-ipv6-range-200.json
+ description: Returns IPv6 range information.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read
+ summary: Get an IPv6 range
+ tags:
+ - IPv6 ranges
+ x-akamai:
+ tabs:
+ - syntax: 'linode-cli networking v6-range-view 2001:0db8::'
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: ips:read
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: v6-range-view
+ delete:
+ description: >-
+ Removes this IPv6 range from your account and disconnects the range from
+ any assigned Linodes.
+
+
+ > 📘
+
+ >
+
+ > You can't delete shared IPv6 ranges. Contact Customer Support for
+ assistance.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-ipv6-range
+ operationId: delete-ipv6-range
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-ipv6-range-200.json
+ description: IPv6 Range deleted.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_write
+ summary: Delete an IPv6 range
+ tags:
+ - IPv6 ranges
+ x-akamai:
+ tabs:
+ - syntax: 'linode-cli networking v6-range-delete 2001:0db8::'
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: ips:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: v6-range-delete
+ parameters:
+ - description: >-
+ The IPv6 range to access. Corresponds to the `range` property of
+ objects returned from the [List IPv6
+ ranges](https://techdocs.akamai.com/linode-api/reference/get-ipv6-ranges)
+ operation.
+
+
+ > 📘
+
+ >
+
+ > You need to omit the prefix length of the IPv6 range.
+ example: '{{range}}'
+ in: path
+ name: range
+ required: true
+ schema:
+ format: ipv6
+ type: string
+ x-akamai:
+ file-path: parameters/range-path.yaml
+ x-akamai:
+ file-path: paths/range.yaml
+ path-info: /{apiVersion}/networking/ipv6/ranges/{range}
+ x-linode-cli-command: networking
+ /networking/vlans:
+ get:
+ 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.
+
+
+ For legacy configuration profile interfaces, you can use the following
+ operations to create, attach, detach, and delete VLANs on a Linode:
+
+ - [Create a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+
+ - [Create a config
+ profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config)
+
+ - [Update a config
+ profile](https://techdocs.akamai.com/linode-api/reference/put-linode-config)
+
+ -
+ [Update](https://techdocs.akamai.com/linode-api/reference/put-linode-config)
+ the active Configuration Profile to remove the VLAN Interface, then
+ [reboot](https://techdocs.akamai.com/linode-api/reference/post-reboot-linode-instance)
+ the Linode.
+
+ - [Create a config
+ profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config)
+ without the VLAN Interface, then
+ [reboot](https://techdocs.akamai.com/linode-api/reference/post-reboot-linode-instance)
+ the Linode into the new Configuration Profile.
+
+ -
+ [Delete](https://techdocs.akamai.com/linode-api/reference/delete-linode-instance)
+ the Linode.
+
+
+ For Linode interfaces, you can use the following operations to create,
+ attach, detach, and delete VLANs on a Linode:
+
+ - [Create a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+
+ - [Add a Linode
+ interface](https://techdocs.akamai.com/linode-api/reference/post-linode-interface)
+
+ - [Update a Linode interface](put-linode-interface-settings)
+
+ - [Delete a Linode
+ interface](https://techdocs.akamai.com/linode-api/reference/delete-linode-interface)
+ from a Linode.
+
+
+ > 📘
+
+ >
+
+ > - Only Next Generation Network (NGN) data centers support VLANs. Run
+ the [List
+ regions](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ operation 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 won't initiate. If a
+ Linode cannot be migrated because of an incompatibility, you will be
+ prompted to select a different data center or contact support.
+
+ >
+
+ > - See the [VLANs
+ Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications)
+ to view additional specifications and limitations.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-vlans
+ operationId: get-vlans
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ A virtual local area network (VLAN) associated with your
+ Account.
+ properties:
+ created:
+ description: __Read-only__ The date this VLAN was created.
+ example: '2020-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ label:
+ description: __Filterable__, __Read-only__ The name of this VLAN.
+ example: vlan-example
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linodes:
+ description: >-
+ __Read-only__ An array of Linode IDs attached to
+ this VLAN.
+ example:
+ - 111
+ - 222
+ items:
+ type: integer
+ readOnly: true
+ type: array
+ x-linode-cli-display: 3
+ region:
+ description: >-
+ __Filterable__, __Read-only__ This VLAN's data
+ center region.
+
+
+ > 📘
+
+ >
+
+ > Currently, a VLAN can only be assigned to a Linode
+ within the same data center region.
+ example: ap-west
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vlans.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-vlans-200.yaml
+ x-example:
+ x-ref: ../examples/get-vlans-200.json
+ description: The VLANs available on this Account.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: List VLANs
+ tags:
+ - VLANs
+ x-akamai:
+ tabs:
+ - syntax: linode-cli vlans list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/vlans.yaml
+ path-info: /{apiVersion}/networking/vlans
+ x-linode-cli-command: vlans
+ /networking/vlans/{regionId}/{label}:
+ delete:
+ description: >-
+ This operation deletes a legacy configuration profile VLAN interface. To
+ delete a Linode interface VLAN, use the [Delete a Linode
+ interface](https://techdocs.akamai.com/linode-api/reference/delete-linode-interface)
+ operation.
+
+
+ You can't delete a VLAN if it's still attached to a Linode. There are a
+ few ways to detach it:
+
+ -
+ [Update](https://techdocs.akamai.com/linode-api/reference/put-linode-config)
+ the active configuration profile to remove the VLAN interface, then
+ [reboot](https://techdocs.akamai.com/linode-api/reference/post-reboot-linode-instance)
+ the Linode.
+
+ - [Create a config
+ profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config)
+ without the VLAN interface, then
+ [reboot](https://techdocs.akamai.com/linode-api/reference/post-reboot-linode-instance)
+ the Linode into the new configuration profile.
+
+ -
+ [Delete](https://techdocs.akamai.com/linode-api/reference/delete-linode-instance)
+ the Linode.
+
+
+ To run this operation, you need `read_write` grants to Linodes that use
+ the VLAN.
+
+
+ A successful request triggers a `vlan_delete` event.
+
+
+ > 📘
+
+ >
+
+ > VLANs without any attached Linodes are periodically cleaned up by the
+ system.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-vlan
+ operationId: delete-vlan
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-vlan-200.json
+ description: The VLAN was deleted.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4beta/networking/vlans/
- - lang: CLI
- source: |
- linode-cli vlans list
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Delete a VLAN
+ tags:
+ - VLANs
+ x-akamai:
+ tabs:
+ - syntax: linode-cli vlans delete $regionId $label
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: delete
+ x-linode-grant: read_write
+ parameters:
+ - description: The label of the VLAN to be deleted.
+ example: '{{label}}'
+ in: path
+ name: label
+ required: true
+ schema:
+ example: vlan-label
+ type: string
+ x-akamai:
+ file-path: parameters/label-vlan.yaml
+ - description: The VLAN's region.
+ example: '{{regionId}}'
+ in: path
+ name: regionId
+ required: true
+ schema:
+ example: us-east
+ type: string
+ x-akamai:
+ file-path: parameters/region-id-vlan.yaml
+ x-akamai:
+ file-path: paths/vlan.yaml
+ path-info: /{apiVersion}/networking/vlans/{regionId}/{label}
+ x-linode-cli-command: vlans
+components:
+ x-stackQL-resources:
+ network_transfer_prices:
+ id: linode.networking.network_transfer_prices
+ name: network_transfer_prices
+ title: Network Transfer Prices
+ methods:
+ get_network_transfer_prices:
+ operation:
+ $ref: '#/paths/~1network-transfer~1prices/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/network_transfer_prices/methods/get_network_transfer_prices
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ firewalls:
+ id: linode.networking.firewalls
+ name: firewalls
+ title: Firewalls
+ methods:
+ post_firewalls:
+ operation:
+ $ref: '#/paths/~1networking~1firewalls/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_firewalls:
+ operation:
+ $ref: '#/paths/~1networking~1firewalls/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_firewall:
+ operation:
+ $ref: '#/paths/~1networking~1firewalls~1{firewallId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_firewall:
+ operation:
+ $ref: '#/paths/~1networking~1firewalls~1{firewallId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_firewall:
+ operation:
+ $ref: '#/paths/~1networking~1firewalls~1{firewallId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/firewalls/methods/get_firewall'
+ - $ref: '#/components/x-stackQL-resources/firewalls/methods/get_firewalls'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/firewalls/methods/post_firewalls'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/firewalls/methods/delete_firewall'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/firewalls/methods/put_firewall'
+ firewall_settings:
+ id: linode.networking.firewall_settings
+ name: firewall_settings
+ title: Firewall Settings
+ methods:
+ get_firewall_settings:
+ operation:
+ $ref: '#/paths/~1networking~1firewalls~1settings/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.default_firewall_ids
+ put_firewall_settings:
+ operation:
+ $ref: '#/paths/~1networking~1firewalls~1settings/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/firewall_settings/methods/get_firewall_settings
+ insert: []
+ update: []
+ delete: []
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/firewall_settings/methods/put_firewall_settings
+ templates:
+ id: linode.networking.templates
+ name: templates
+ title: Templates
+ methods:
+ get_firewall_templates:
+ operation:
+ $ref: '#/paths/~1networking~1firewalls~1templates/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_firewall_template:
+ operation:
+ $ref: '#/paths/~1networking~1firewalls~1templates~1{slug}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/templates/methods/get_firewall_template
+ - $ref: >-
+ #/components/x-stackQL-resources/templates/methods/get_firewall_templates
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ firewall_devices:
+ id: linode.networking.firewall_devices
+ name: firewall_devices
+ title: Firewall Devices
+ methods:
+ post_firewall_device:
+ operation:
+ $ref: '#/paths/~1networking~1firewalls~1{firewallId}~1devices/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_firewall_devices:
+ operation:
+ $ref: '#/paths/~1networking~1firewalls~1{firewallId}~1devices/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_firewall_device:
+ operation:
+ $ref: >-
+ #/paths/~1networking~1firewalls~1{firewallId}~1devices~1{deviceId}/get
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_firewall_device:
+ operation:
+ $ref: >-
+ #/paths/~1networking~1firewalls~1{firewallId}~1devices~1{deviceId}/delete
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/firewall_devices/methods/get_firewall_device
+ - $ref: >-
+ #/components/x-stackQL-resources/firewall_devices/methods/get_firewall_devices
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/firewall_devices/methods/post_firewall_device
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/firewall_devices/methods/delete_firewall_device
+ replace: []
+ firewall_rule_versions:
+ id: linode.networking.firewall_rule_versions
+ name: firewall_rule_versions
+ title: Firewall Rule Versions
+ methods:
+ get_firewall_rule_versions:
+ operation:
+ $ref: '#/paths/~1networking~1firewalls~1{firewallId}~1history/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_firewall_rule_version:
+ operation:
+ $ref: >-
+ #/paths/~1networking~1firewalls~1{firewallId}~1history~1rules~1{version}/get
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/firewall_rule_versions/methods/get_firewall_rule_version
+ - $ref: >-
+ #/components/x-stackQL-resources/firewall_rule_versions/methods/get_firewall_rule_versions
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ firewall_rules:
+ id: linode.networking.firewall_rules
+ name: firewall_rules
+ title: Firewall Rules
+ methods:
+ get_firewall_rules:
+ operation:
+ $ref: '#/paths/~1networking~1firewalls~1{firewallId}~1rules/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_firewall_rules:
+ operation:
+ $ref: '#/paths/~1networking~1firewalls~1{firewallId}~1rules/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/firewall_rules/methods/get_firewall_rules
+ insert: []
+ update: []
+ delete: []
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/firewall_rules/methods/put_firewall_rules
+ ip_addresses:
+ id: linode.networking.ip_addresses
+ name: ip_addresses
+ title: Ip Addresses
+ methods:
+ post_allocate_ip:
+ operation:
+ $ref: '#/paths/~1networking~1ips/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_ips:
+ operation:
+ $ref: '#/paths/~1networking~1ips/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ post_assign_ips:
+ operation:
+ $ref: '#/paths/~1networking~1ips~1assign/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_share_ips:
+ operation:
+ $ref: '#/paths/~1networking~1ips~1share/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_ip:
+ operation:
+ $ref: '#/paths/~1networking~1ips~1{address}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_ip:
+ operation:
+ $ref: '#/paths/~1networking~1ips~1{address}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/ip_addresses/methods/get_ip'
+ - $ref: '#/components/x-stackQL-resources/ip_addresses/methods/get_ips'
+ insert: []
+ update: []
+ delete: []
+ replace:
+ - $ref: '#/components/x-stackQL-resources/ip_addresses/methods/put_ip'
+ ipv4_addresses:
+ id: linode.networking.ipv4_addresses
+ name: ipv4_addresses
+ title: Ipv4 Addresses
+ methods:
+ post_assign_ipv4s:
+ operation:
+ $ref: '#/paths/~1networking~1ipv4~1assign/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_share_ipv4s:
+ operation:
+ $ref: '#/paths/~1networking~1ipv4~1share/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select: []
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/ipv4_addresses/methods/post_assign_ipv4s
+ - $ref: >-
+ #/components/x-stackQL-resources/ipv4_addresses/methods/post_share_ipv4s
+ update: []
+ delete: []
+ replace: []
+ ipv6_pools:
+ id: linode.networking.ipv6_pools
+ name: ipv6_pools
+ title: Ipv6 Pools
+ methods:
+ get_ipv6_pools:
+ operation:
+ $ref: '#/paths/~1networking~1ipv6~1pools/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/ipv6_pools/methods/get_ipv6_pools'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ ipv6_ranges:
+ id: linode.networking.ipv6_ranges
+ name: ipv6_ranges
+ title: Ipv6 Ranges
+ methods:
+ post_ipv6_range:
+ operation:
+ $ref: '#/paths/~1networking~1ipv6~1ranges/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_ipv6_ranges:
+ operation:
+ $ref: '#/paths/~1networking~1ipv6~1ranges/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_ipv6_range:
+ operation:
+ $ref: '#/paths/~1networking~1ipv6~1ranges~1{range}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_ipv6_range:
+ operation:
+ $ref: '#/paths/~1networking~1ipv6~1ranges~1{range}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/ipv6_ranges/methods/get_ipv6_range
+ - $ref: >-
+ #/components/x-stackQL-resources/ipv6_ranges/methods/get_ipv6_ranges
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/ipv6_ranges/methods/post_ipv6_range
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/ipv6_ranges/methods/delete_ipv6_range
+ replace: []
+ vlans:
+ id: linode.networking.vlans
+ name: vlans
+ title: Vlans
+ methods:
+ get_vlans:
+ operation:
+ $ref: '#/paths/~1networking~1vlans/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_vlan:
+ operation:
+ $ref: '#/paths/~1networking~1vlans~1{regionId}~1{label}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/vlans/methods/get_vlans'
+ insert: []
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/vlans/methods/delete_vlan'
+ replace: []
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/nodebalancers.yaml b/providers/src/linode/v00.00.00000/services/nodebalancers.yaml
index 0ad5a624..1dc753f1 100644
--- a/providers/src/linode/v00.00.00000/services/nodebalancers.yaml
+++ b/providers/src/linode/v00.00.00000/services/nodebalancers.yaml
@@ -1,1989 +1,22226 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
info:
- version: 4.147.0
- title: Linode API - nodebalancers
- description: nodebalancers
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- NodeBalancer:
- type: object
- description: |
- Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer Configs, and each config is given one or more NodeBalancer Node that accepts traffic. The traffic should be routed to the NodeBalancer's ip address, the NodeBalancer will handle routing individual requests to backends.
- properties:
- id:
- type: integer
- description: |
- This NodeBalancer's unique ID.
- example: 12345
- readOnly: true
- x-linode-cli-display: 1
- label:
- x-linode-filterable: true
- type: string
- minLength: 3
- maxLength: 32
- pattern: '[a-zA-Z0-9-_]{3,32}'
- description: |
- This NodeBalancer's label. These must be unique on your Account.
- example: balancer12345
- x-linode-cli-display: 2
- region:
- x-linode-filterable: true
- type: string
- description: |
- The Region where this NodeBalancer is located. NodeBalancers only support backends in the same Region.
- example: us-east
- readOnly: true
- x-linode-cli-display: 3
- hostname:
- type: string
- description: |
- This NodeBalancer's hostname, beginning with its IP address and ending with _.ip.linodeusercontent.com_.
- example: 192.0.2.1.ip.linodeusercontent.com
- readOnly: true
- x-linode-cli-display: 4
- ipv4:
- x-linode-filterable: true
- type: string
- format: ip
- description: |
- This NodeBalancer's public IPv4 address.
- example: 203.0.113.1
- readOnly: true
- x-linode-cli-display: 5
- ipv6:
- type: string
- nullable: true
- format: ip
- description: |
- This NodeBalancer's public IPv6 address.
- example: null
- readOnly: true
- x-linode-cli-display: 6
- created:
- type: string
- format: date-time
- description: |
- When this NodeBalancer was created.
- example: 2018-01-01T00:01:01.000Z
- readOnly: true
- updated:
- type: string
- format: date-time
- description: |
- When this NodeBalancer was last updated.
- example: 2018-03-01T00:01:01.000Z
- readOnly: true
- client_conn_throttle:
- type: integer
- minimum: 0
- maximum: 20
- description: |
- Throttle connections per second. Set to 0 (zero) to disable throttling.
- example: 0
- x-linode-cli-display: 6
- transfer:
- type: object
- readOnly: true
- description: |
- Information about the amount of transfer this NodeBalancer has had so far this month.
- properties:
- total:
- type: number
- nullable: true
- description: |
- The total transfer, in MB, used by this NodeBalancer this month.
- example: 32.46078109741211
- readOnly: true
- out:
- type: number
- nullable: true
- description: |
- The total inbound transfer, in MB, used for this NodeBalancer this month.
- example: 3.5487728118896484
- readOnly: true
- in:
- type: number
- nullable: true
- description: |
- The total outbound transfer, in MB, used for this NodeBalancer this month.
- example: 28.91200828552246
- readOnly: true
- 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
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- NodeBalancerConfig:
- type: object
- description: |
- A NodeBalancer config represents the configuration of this NodeBalancer on a single port. For example, a NodeBalancer Config on port 80 would typically represent how this NodeBalancer response to HTTP requests.
-
- NodeBalancer configs have a list of backends, called "nodes," that they forward requests between based on their configuration.
- properties:
- id:
- type: integer
- description: This config's unique ID
- example: 4567
- readOnly: true
- x-linode-cli-display: 1
- port:
- type: integer
- minimum: 1
- maximum: 65535
- default: 80
- description: |
- The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443.
- example: 80
- x-linode-cli-display: 2
- protocol:
- type: string
- enum:
- - http
- - https
- - tcp
- default: http
- description: |
- The protocol this port is configured to serve.
-
- * The `http` and `tcp` protocols do not support `ssl_cert` and `ssl_key`.
-
- * The `https` protocol is mutually required with `ssl_cert` and `ssl_key`.
-
- Review our guide on [Available Protocols](/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features.
- example: http
- x-linode-cli-display: 3
- algorithm:
- type: string
- enum:
- - roundrobin
- - leastconn
- - source
- default: roundrobin
- description: |
- What algorithm this NodeBalancer should use for routing traffic to backends.
- example: roundrobin
- x-linode-cli-display: 4
- stickiness:
- type: string
- enum:
- - none
- - table
- - http_cookie
- default: none
- description: |
- Controls how session stickiness is handled on this port.
- * If set to `none` connections will always be assigned a backend based on the algorithm configured.
- * If set to `table` sessions from the same remote address will be routed to the same
- backend.
-
- * For HTTP or HTTPS clients, `http_cookie` allows sessions to be
- routed to the same backend based on a cookie set by the NodeBalancer.
- example: http_cookie
- x-linode-cli-display: 5
- check:
- type: string
- enum:
- - none
- - connection
- - http
- - http_body
- default: none
- description: |
- The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down.
- * If `none` no check is performed.
- * `connection` requires only a connection to the backend to succeed.
- * `http` and `http_body` rely on the backend serving HTTP, and that
- the response returned matches what is expected.
- example: http_body
- check_interval:
- type: integer
- description: |
- How often, in seconds, to check that backends are up and serving requests.
-
- Must be greater than `check_timeout`.
- example: 90
- default: 31
- check_timeout:
- type: integer
- minimum: 1
- maximum: 30
- default: 30
- description: |
- How long, in seconds, to wait for a check attempt before considering it failed.
-
- Must be less than `check_interval`.
- example: 10
- check_attempts:
- type: integer
- minimum: 1
- maximum: 30
- default: 3
- description: |
- How many times to attempt a check before considering a backend to be down.
- example: 3
- check_path:
- type: string
- pattern: '^[a-zA-Z0-9\/\-%?&=.]*$'
- description: |
- The URL path to check on each backend. If the backend does not respond to this request it is considered to be down.
- example: /test
- check_body:
- type: string
- description: |
- This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down.
- example: it works
- check_passive:
- type: boolean
- default: true
- description: |
- If true, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation.
- example: true
- x-linode-cli-display: 6
- proxy_protocol:
- description: |
- ProxyProtocol is a TCP extension that sends initial TCP connection information such as source/destination IPs and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled.
-
- * If ommited, or set to `none`, the NodeBalancer doesn't send any auxilary data over TCP connections. This is the default.
- * If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol.
- * If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol.
- type: string
- enum:
- - none
- - v1
- - v2
- example: none
- default: none
- cipher_suite:
- type: string
- enum:
- - recommended
- - legacy
- default: recommended
- description: |
- What ciphers to use for SSL connections served by this NodeBalancer.
-
- * `legacy` is considered insecure and should only be used if necessary.
- example: recommended
- x-linode-cli-display: 7
- x-linode-cli-color:
- legacy: red
- default_: white
- nodebalancer_id:
- type: integer
- description: |
- The ID for the NodeBalancer this config belongs to.
- example: 12345
- readOnly: true
- ssl_commonname:
- type: string
- description: |
- The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.
- example: www.example.com
- readOnly: true
- x-linode-cli-display: 8
- ssl_fingerprint:
- type: string
- description: |
- The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.
- example: '00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13'
- readOnly: true
- x-linode-cli-display: 9
- ssl_cert:
- type: string
- format: ssl-cert
- nullable: true
- description: |
- The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL
- certificate and Certificate Authority chain) that should be served on this
- NodeBalancerConfig's port.
-
- Line breaks must be represented as "\n" in the string for requests (but not when using the Linode CLI).
-
- [Diffie-Hellman Parameters](/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy.
-
- The contents of this field will not be shown in any responses that display
- the NodeBalancerConfig. Instead, `` will be printed where the field
- appears.
-
- The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig
- response are automatically derived from your certificate. Please refer to these fields to
- verify that the appropriate certificate was assigned to your NodeBalancerConfig.
- example:
- ssl_key:
- type: string
- format: ssl-key
- nullable: true
- description: |
- The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field.
-
- Line breaks must be represented as "\n" in the string for requests (but not when using the Linode CLI).
-
- The contents of this field will not be shown in any responses that display
- the NodeBalancerConfig. Instead, `` will be printed where the field
- appears.
-
- The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig
- response are automatically derived from your certificate. Please refer to these fields to
- verify that the appropriate certificate was assigned to your NodeBalancerConfig.
- example:
- nodes_status:
- type: object
- description: |
- A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends.
- readOnly: true
- x-linode-cli-display: 10
- properties:
- up:
- type: integer
- description: |
- The number of backends considered to be "UP" and healthy, and that are serving requests.
- example: 4
- readOnly: true
- down:
- type: integer
- description: |
- The number of backends considered to be "DOWN" and unhealthy. These are not in rotation, and not serving requests.
- example: 0
- readOnly: true
- NodeBalancerNode:
- type: object
- description: |
- A NodeBalancerNode represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer Configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer Node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should response to both HTTP and HTTPS requests, you will need two NodeBalancerConfigs (port 80 and port 443) and four backends each - one for each of the Linodes serving requests for that port.
- properties:
- id:
- type: integer
- description: This node's unique ID.
- example: 54321
- readOnly: true
- x-linode-cli-display: 1
- address:
- type: string
- format: ip
- description: |
- The private IP Address where this backend can be reached. This _must_ be a private IP address.
- example: '192.168.210.120:80'
- x-linode-cli-display: 3
- label:
- type: string
- minLength: 3
- maxLength: 32
- pattern: '[a-zA-Z0-9-_.]{3,32}'
- description: |
- The label for this node. This is for display purposes only.
- example: node54321
- x-linode-cli-display: 2
- status:
- type: string
- enum:
- - unknown
- - UP
- - DOWN
- description: |
- The current status of this node, based on the configured checks of its NodeBalancer Config.
- example: UP
- readOnly: true
- x-linode-cli-display: 4
- x-linode-cli-color:
- UP: green
- unknown: yellow
- DOWN: red
- default_: white
- weight:
- type: integer
- minimum: 1
- maximum: 255
- description: |
- Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic.
- example: 50
- x-linode-cli-display: 5
- mode:
- type: string
- enum:
- - accept
- - reject
- - drain
- - backup
- description: |
- The mode this NodeBalancer should use when sending traffic to this backend.
- * If set to `accept` this backend is accepting traffic.
- * If set to `reject` this backend will not receive traffic.
- * If set to `drain` this backend will not receive _new_ traffic, but connections already
- pinned to it will continue to be routed to it.
-
- * If set to `backup`, this backend will only receive traffic if all `accept` nodes
- are down.
- example: accept
- x-linode-cli-display: 6
- config_id:
- type: integer
- description: |
- The NodeBalancer Config ID that this Node belongs to.
- example: 4567
- readOnly: true
- nodebalancer_id:
- type: integer
- description: |
- The NodeBalancer ID that this Node belongs to.
- example: 12345
- readOnly: true
- NodeBalancerStats:
- type: object
- description: |
- Stats for this NodeBalancer.
- properties:
- data:
- type: object
- description: |
- The data returned about this NodeBalancers.
- properties:
- connections:
- type: array
- description: |
- An array of key/value pairs representing unix timestamp and reading for connections to this NodeBalancer.
- items:
- type: number
- example:
- - 1526391300000
- - 0
- traffic:
- type: object
- description: |
- Traffic statistics for this NodeBalancer.
- properties:
- in:
- type: array
- description: |
- An array of key/value pairs representing unix timestamp and reading for inbound traffic.
- items:
- type: number
- example:
- - 1526391300000
- - 631.21
- out:
- type: array
- description: |
- An array of key/value pairs representing unix timestamp and reading for outbound traffic.
- items:
- type: number
- example:
- - 1526391300000
- - 103.44
- title:
- type: string
- description: |
- The title for the statistics generated in this response.
- example: linode.com - balancer12345 (12345) - day (5 min avg)
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- nodebalancers:
- id: linode.nodebalancers.nodebalancers
- name: nodebalancers
- title: Nodebalancers
- methods:
- getNodeBalancers:
- operation:
- $ref: '#/paths/~1nodebalancers/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getNodeBalancers:
- operation:
- $ref: '#/paths/~1nodebalancers/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createNodeBalancer:
- operation:
- $ref: '#/paths/~1nodebalancers/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getNodeBalancer:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getNodeBalancer:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateNodeBalancer:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteNodeBalancer:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/nodebalancers/methods/getNodeBalancers'
- - $ref: '#/components/x-stackQL-resources/nodebalancers/methods/getNodeBalancer'
- insert:
- - $ref: '#/components/x-stackQL-resources/nodebalancers/methods/createNodeBalancer'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/nodebalancers/methods/deleteNodeBalancer'
- configs:
- id: linode.nodebalancers.configs
- name: configs
- title: Configs
- methods:
- getNodeBalancerConfigs:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getNodeBalancerConfigs:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createNodeBalancerConfig:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getNodeBalancerConfig:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getNodeBalancerConfig:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateNodeBalancerConfig:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteNodeBalancerConfig:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- rebuildNodeBalancerConfig:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}~1rebuild/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/configs/methods/getNodeBalancerConfigs'
- - $ref: '#/components/x-stackQL-resources/configs/methods/getNodeBalancerConfig'
- insert:
- - $ref: '#/components/x-stackQL-resources/configs/methods/createNodeBalancerConfig'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/configs/methods/deleteNodeBalancerConfig'
- configs_nodes:
- id: linode.nodebalancers.configs_nodes
- name: configs_nodes
- title: Configs Nodes
- methods:
- getNodeBalancerConfigNodes:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}~1nodes/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getNodeBalancerConfigNodes:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}~1nodes/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createNodeBalancerNode:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}~1nodes/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getNodeBalancerNode:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}~1nodes~1{nodeId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getNodeBalancerNode:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}~1nodes~1{nodeId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateNodeBalancerNode:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}~1nodes~1{nodeId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteNodeBalancerConfigNode:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}~1nodes~1{nodeId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/configs_nodes/methods/getNodeBalancerConfigNodes'
- - $ref: '#/components/x-stackQL-resources/configs_nodes/methods/getNodeBalancerNode'
- insert:
- - $ref: '#/components/x-stackQL-resources/configs_nodes/methods/createNodeBalancerNode'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/configs_nodes/methods/deleteNodeBalancerConfigNode'
- stats:
- id: linode.nodebalancers.stats
- name: stats
- title: Stats
- methods:
- get_nodebalancers__nodeBalancerId_stats:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1stats/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _get_nodebalancers__nodeBalancerId_stats:
- operation:
- $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1stats/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/stats/methods/get_nodebalancers__nodeBalancerId_stats'
- insert: []
- update: []
- delete: []
+ title: nodebalancers API
+ description: linode nodebalancers API
+ version: 4.208.1
paths:
/nodebalancers:
- get:
- x-linode-grant: read_only
- tags:
- - NodeBalancers
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- summary: NodeBalancers List
- description: |
- Returns a paginated list of NodeBalancers you have access to.
- operationId: getNodeBalancers
- x-linode-cli-action:
- - list
- - ls
- security:
- - personalAccessToken: []
- - oauth:
- - 'nodebalancers:read_only'
- responses:
- '200':
- description: A paginated list of NodeBalancers.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/NodeBalancer'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/nodebalancers
- - lang: CLI
- source: |
- linode-cli nodebalancers list
post:
- x-linode-grant: add_nodebalancers
- tags:
- - NodeBalancers
- summary: NodeBalancer Create
- description: |
- Creates a NodeBalancer in the requested Region.
+ description: >-
+ Creates a NodeBalancer in the requested Region. Only available in
+ [regions](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ with "NodeBalancers" in their `capabilities`.
- NodeBalancers require a port Config with at least one backend Node to start serving requests.
- When using the Linode CLI to create a NodeBalancer, first create a NodeBalancer without any Configs. Then, create Configs and Nodes for that NodeBalancer with the respective [Config Create](/docs/api/nodebalancers/#config-create) and [Node Create](/docs/api/nodebalancers/#node-create) commands.
- operationId: createNodeBalancer
- x-linode-cli-action: create
- security:
- - personalAccessToken: []
- - oauth:
- - 'nodebalancers:read_write'
+ NodeBalancers require a port config with at least one backend node to
+ start serving requests.
+
+
+ When using the Linode CLI to create a NodeBalancer, first create a
+ NodeBalancer without any configs. Then, create configs and nodes for
+ that NodeBalancer with the respective [Create a
+ config](https://techdocs.akamai.com/linode-api/reference/post-node-balancer-config)
+ and [Create a
+ node](https://techdocs.akamai.com/linode-api/reference/post-node-balancer-node)
+ operations.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-node-balancer
+ operationId: post-node-balancer
requestBody:
- description: Information about the NodeBalancer to create.
- required: true
- x-linode-cli-allowed-defaults:
- - region
content:
application/json:
schema:
- required:
- - region
+ additionalProperties: false
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'
+ description: >-
+ Throttle TCP connections per second for TCP, HTTP, and HTTPS
+ configurations. Set to `0` (zero) to disable throttling.
+ example: '{{client_conn_throttle}}'
+ maximum: 20
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 9
configs:
+ description: >-
+ The port configs to create for this NodeBalancer. Each
+ config needs a unique port and at least one node.
+ items:
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer configuration defines the
+ protocol and settings for a specific port on the
+ NodeBalancer. These fields apply to UDP
+ configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this UDP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - ring_hash
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines
+ if backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend
+ serving HTTP, and that the response returned
+ matches what is expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before
+ considering a backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of
+ the check in order for it to pass. If this value
+ isn't present in the response body of a check
+ request, the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are
+ up and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ description: __Read-only__ Must be `false` for UDP.
+ example: false
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 8
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the
+ backend does not respond to this request, it's
+ considered to be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 7000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this
+ config belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes:
+ description: >-
+ The NodeBalancer nodes that serve this
+ configuration.
+ items:
+ additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer node represents a single
+ backend serving requests for a single port of a
+ NodeBalancer. Nodes are tied to individual
+ NodeBalancer configurations and route traffic
+ over their private IPv4 address, IPv6 address,
+ or VPC IPv4 address. If the same Linode is
+ serving traffic for more than one port on the
+ same NodeBalancer, one NodeBalancer node is
+ required for each config (port) it should serve
+ requests on. For example, if you have four
+ backends, and each should respond to both UDP
+ and HTTPS requests, you will need two
+ NodeBalancer configs (port 80 and port 443) and
+ four backends each, one for each of the Linodes
+ serving requests for that port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes
+ within a VPC. The following IP types are
+ supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID
+ that this Node belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for
+ display purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ __Read-only__ The mode this NodeBalancer
+ should use when sending traffic to this
+ backend. For backend nodes with a UDP
+ config, the `mode` doesn't apply, so the
+ value is `none`.
+ enum:
+ - none
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this
+ Node belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this
+ node, based on the configured checks of its
+ NodeBalancer config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The
+ VPC's subnet. To display information about
+ your VPCs and their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a
+ request and is not pinned to a single
+ backend yet. Nodes with a higher weight will
+ receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: UDP config
+ x-akamai:
+ file-path: schemas/node-balancer-node-udp.yaml
+ status: BETA
+ type: object
+ type: array
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends
+ for this port. This data updates periodically as
+ checks are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends
+ considered to be `DOWN` and unhealthy. These
+ are not in rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends
+ considered to be `UP` and healthy, and that
+ are serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 11
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for
+ this configuration. Port numbers must be unique
+ across TCP, HTTP, and HTTPS configurations on a
+ single NodeBalancer. However, ports assigned to
+ TCP, HTTP, or HTTPS configurations can also be
+ reused for UDP configurations. For example, Port
+ 80 can simultaneously serve a TCP and a UDP
+ configuration on the same NodeBalancer, but it
+ can't be shared by both a TCP and an HTTP
+ configuration. Although certain ports are
+ traditionally associated with specific protocols,
+ this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find
+ useful.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve,
+ `udp` in this case. Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - udp
+ example: udp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ description: __Read-only__ Must be `none` for UDP.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for UPD configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 10
+ ssl_key:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: session
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections are assigned a
+ backend server based on the algorithm configured.
+
+ - If set to `session`, all packets with the same
+ session identifiers are routed to the same backend
+ server. Two packets are considered part of the
+ same session if they share the same source and
+ destination IP addresses or ports, and are
+ received within a short time window.
+
+ - If set to `source_ip`, the NodeBalancer uses the
+ client's source IP address to route all packets
+ from the same client to the same backend server.
+ enum:
+ - none
+ - session
+ - source_ip
+ example: none
+ type: string
+ x-linode-cli-display: 5
+ udp_check_port:
+ default: 80
+ description: >-
+ UDP NodeBalancers use TCP and HTTP active health
+ checks to ensure back-end nodes can receive
+ traffic. You can specify the health check port
+ that the backend node listens on, which may differ
+ from the UDP port used to serve traffic.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 6
+ udp_session_timeout:
+ default: 16
+ description: >-
+ __Read-only__ The maximum duration in seconds, a
+ UDP session can be idle before it is closed.
+ example: 2
+ maximum: 300
+ minimum: 1
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 12
+ required:
+ - nodes
+ title: UDP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-udp.yaml
+ status: BETA
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer.
+ These fields apply to TCP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this TCP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. The `check` is
+ used to determine if backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend
+ serving HTTP, and that the response returned
+ matches what is expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before
+ considering a backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of
+ the check in order for it to pass. If this value
+ is not present in the response body of a check
+ request, the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are
+ up and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a
+ `5xx` status code will be enough for it to be
+ considered unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the
+ backend does not respond to this request, it's
+ considered to be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `tcp` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 6000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this
+ config belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes:
+ description: >-
+ The NodeBalancer nodes that serve this
+ configuration.
+ items:
+ additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend
+ serving requests for a single port of a
+ NodeBalancer. Nodes are tied to individual
+ NodeBalancer configurations and route traffic
+ over their private IPv4 address, IPv6 address,
+ or VPC IPv4 address. If the same Linode is
+ serving traffic for more than one port on the
+ same NodeBalancer, one NodeBalancer node is
+ required for each config (port) it should serve
+ requests on. For example, if you have four
+ backends, and each should respond to both HTTP
+ and HTTPS requests, you will need two
+ NodeBalancer configs (port 80 and port 443) and
+ four backends each, one for each of the Linodes
+ serving requests for that port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes
+ within a VPC. The following IP types are
+ supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID
+ that this Node belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for
+ display purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when
+ sending traffic to this backend.
+
+
+ - If set to `accept` this backend is
+ accepting traffic.
+
+ - If set to `reject` this backend will not
+ receive traffic.
+
+ - If set to `drain` this backend will not
+ receive _new_ traffic, but connections
+ already pinned to it will continue to be
+ routed to it.
+
+ - If set to `backup`, this backend will only
+ receive traffic if all `accept` nodes are
+ down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this
+ Node belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this
+ node, based on the configured checks of its
+ NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The
+ VPC's subnet. To display information about
+ your VPCs and their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a
+ request and is not pinned to a single
+ backend yet. Nodes with a higher weight will
+ receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: schemas/node-balancer-node-tcp-http-https.yaml
+ type: object
+ type: array
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends
+ for this port. This data updates periodically as
+ checks are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends
+ considered to be `DOWN` and unhealthy. These
+ are not in rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends
+ considered to be `UP` and healthy, and that
+ are serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for
+ this configuration. Port numbers must be unique
+ across TCP, HTTP, and HTTPS configurations on a
+ single NodeBalancer. However, ports assigned to
+ TCP, HTTP, or HTTPS configurations can also be
+ reused for UDP configurations. For example, Port
+ 80 can simultaneously serve a TCP and a UDP
+ configuration on the same NodeBalancer, but it
+ can't be shared by both a TCP and an HTTP
+ configuration. Although certain ports are
+ traditionally associated with specific protocols,
+ this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find
+ useful.
+ example: 22
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve,
+ `tcp` in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - tcp
+ example: tcp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ Proxy protocol is a TCP extension that sends
+ initial TCP connection information such as source
+ or destination IPs and ports to backend devices.
+ Proxy protocol preserves initial TCP information
+ that would be lost otherwise. Backend devices must
+ be configured to work with `proxy_protocol` if
+ enabled.
+
+
+ - If omitted, or set to `none`, the NodeBalancer
+ doesn't send any auxiliary data over TCP
+ connections. This is the default.
+
+ - If set to `v1`, the human-readable header format
+ (Version 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format
+ (Version 2) is used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ __Read-only__ Controls how session stickiness is
+ handled on this port.
+
+
+ - If set to `none`, connections will always be
+ assigned a backend based on the algorithm
+ configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+ enum:
+ - none
+ - table
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: TCP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-tcp.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer.
+ These fields apply to HTTP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTP NodeBalancer uses for
+ routing traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines
+ if backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend
+ serving HTTP, and that the response returned
+ matches what is expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before
+ considering a backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value must be present in the
+ response body of the check in order for it to
+ pass. If this value is not present in the response
+ body of a check request, the backend is considered
+ to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are
+ up and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a
+ `5xx` status code will be enough for it to be
+ considered unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when
+ the active health `check` type is `http`. If the
+ backend doesn't respond to this request, it's
+ considered to be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `http` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this
+ config belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes:
+ description: >-
+ The NodeBalancer nodes that serve this
+ configuration.
+ items:
+ additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend
+ serving requests for a single port of a
+ NodeBalancer. Nodes are tied to individual
+ NodeBalancer configurations and route traffic
+ over their private IPv4 address, IPv6 address,
+ or VPC IPv4 address. If the same Linode is
+ serving traffic for more than one port on the
+ same NodeBalancer, one NodeBalancer node is
+ required for each config (port) it should serve
+ requests on. For example, if you have four
+ backends, and each should respond to both HTTP
+ and HTTPS requests, you will need two
+ NodeBalancer configs (port 80 and port 443) and
+ four backends each, one for each of the Linodes
+ serving requests for that port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes
+ within a VPC. The following IP types are
+ supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID
+ that this Node belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for
+ display purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when
+ sending traffic to this backend.
+
+
+ - If set to `accept` this backend is
+ accepting traffic.
+
+ - If set to `reject` this backend will not
+ receive traffic.
+
+ - If set to `drain` this backend will not
+ receive _new_ traffic, but connections
+ already pinned to it will continue to be
+ routed to it.
+
+ - If set to `backup`, this backend will only
+ receive traffic if all `accept` nodes are
+ down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this
+ Node belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this
+ node, based on the configured checks of its
+ NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The
+ VPC's subnet. To display information about
+ your VPCs and their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a
+ request and is not pinned to a single
+ backend yet. Nodes with a higher weight will
+ receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: schemas/node-balancer-node-tcp-http-https.yaml
+ type: object
+ type: array
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends
+ for this port. This data updates periodically as
+ checks are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends
+ considered to be `DOWN` and unhealthy. These
+ are not in rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends
+ considered to be `UP` and healthy, and that
+ are serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for
+ this configuration. Port numbers need to be unique
+ across TCP, HTTP, and HTTPS configurations on a
+ single NodeBalancer. However, ports assigned to
+ TCP, HTTP, or HTTPS configurations can also be
+ reused for UDP configurations. For example, Port
+ 80 can simultaneously serve a TCP and a UDP
+ configuration on the same NodeBalancer, but it
+ can't be shared by both a TCP and an HTTP
+ configuration. Although certain ports are
+ traditionally associated with specific protocols,
+ this isn't strictly enforced. You may configure
+ your NodeBalancer however you find useful.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve,
+ `http` in this case. Review our guide on
+ [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - http
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections will always be
+ assigned a backend based on the algorithm
+ configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+
+ - If set to `http_cookie`, sessions are routed to
+ the same backend based on a cookie set by the
+ NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-http.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer.
+ These fields apply to HTTPS configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTPS NodeBalancer uses for
+ routing traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. The `check` is
+ used to determine if backends are up or down.
+
+
+ - If `none` no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend
+ serving HTTP, and that the response returned
+ matches what is expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before
+ considering a backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value must be present in the
+ response body of the check in order for it to
+ pass. If this value is not present in the response
+ body of a check request, the backend is considered
+ to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are
+ up and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a
+ `5xx` status code will be enough for it to be
+ considered unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when
+ the active health `check` type is `http`. If the
+ backend doesn't respond to this request, it's
+ considered to be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by
+ this NodeBalancer. The `legacy` cipher is
+ considered insecure and should only be used if
+ necessary. For information on recommended and
+ legacy ciphers, see [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 5000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this
+ config belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes:
+ description: >-
+ The NodeBalancer nodes that serve this
+ configuration.
+ items:
+ additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend
+ serving requests for a single port of a
+ NodeBalancer. Nodes are tied to individual
+ NodeBalancer configurations and route traffic
+ over their private IPv4 address, IPv6 address,
+ or VPC IPv4 address. If the same Linode is
+ serving traffic for more than one port on the
+ same NodeBalancer, one NodeBalancer node is
+ required for each config (port) it should serve
+ requests on. For example, if you have four
+ backends, and each should respond to both HTTP
+ and HTTPS requests, you will need two
+ NodeBalancer configs (port 80 and port 443) and
+ four backends each, one for each of the Linodes
+ serving requests for that port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes
+ within a VPC. The following IP types are
+ supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID
+ that this Node belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for
+ display purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when
+ sending traffic to this backend.
+
+
+ - If set to `accept` this backend is
+ accepting traffic.
+
+ - If set to `reject` this backend will not
+ receive traffic.
+
+ - If set to `drain` this backend will not
+ receive _new_ traffic, but connections
+ already pinned to it will continue to be
+ routed to it.
+
+ - If set to `backup`, this backend will only
+ receive traffic if all `accept` nodes are
+ down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this
+ Node belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this
+ node, based on the configured checks of its
+ NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The
+ VPC's subnet. To display information about
+ your VPCs and their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a
+ request and is not pinned to a single
+ backend yet. Nodes with a higher weight will
+ receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: schemas/node-balancer-node-tcp-http-https.yaml
+ type: object
+ type: array
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends
+ for this port. This data updates periodically as
+ checks are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends
+ considered to be `DOWN` and unhealthy. These
+ are not in rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends
+ considered to be `UP` and healthy, and that
+ are serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for
+ this configuration. Port numbers must be unique
+ across TCP, HTTP, and HTTPS configurations on a
+ single NodeBalancer. However, ports assigned to
+ TCP, HTTP, or HTTPS configurations can also be
+ reused for UDP configurations. For example, Port
+ 80 can simultaneously serve a TCP and a UDP
+ configuration on the same NodeBalancer, but it
+ can't be shared by both a TCP and an HTTP
+ configuration. Although certain ports are
+ traditionally associated with specific protocols,
+ this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find
+ useful.
+ example: 443
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve,
+ `https` in this case. Review our guide on
+ [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features. The `https`
+ protocol needs to be specified with both
+ `ssl_cert` and `ssl_key`.
+ enum:
+ - https
+ example: https
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTPS configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: >-
+
+ The PEM-formatted public SSL certificate (or the
+ combined PEM-formatted SSL certificate and
+ Certificate Authority chain) that should be served
+ on this NodeBalancerConfig's port.
+
+
+ Line breaks must be represented as `\n` in the
+ string for requests (but not when using the Linode
+ CLI).
+
+
+ [Diffie-Hellman
+ Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ can be included in this value to enable forward
+ secrecy.
+
+
+ The contents of this field will not be shown in
+ any responses that display the NodeBalancerConfig.
+ Instead, `` will be printed where the
+ field appears.
+
+
+ The read-only `ssl_commonname` and
+ `ssl_fingerprint` fields in a NodeBalancerConfig
+ response are automatically derived from your
+ certificate. Please refer to these fields to
+ verify that the appropriate certificate was
+ assigned to your NodeBalancerConfig.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name
+ automatically derived from the SSL certificate
+ assigned to this NodeBalancerConfig. Please refer
+ to this field to verify that the appropriate
+ certificate is assigned to your
+ NodeBalancerConfig.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded
+ fingerprint automatically derived from the SSL
+ certificate assigned to this NodeBalancer
+ configuration. Please refer to the
+ `ssl_fingerprint` field to verify that the
+ appropriate certificate is assigned to your
+ NodeBalancer configuration.
+ example: >-
+ 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL
+ certificate set in the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the
+ string for requests (but not when using the Linode
+ CLI).
+
+
+ The contents of this field will not be shown in
+ any responses that display
+
+ the NodeBalancerConfig. Instead, `` will
+ be printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and
+ `ssl_fingerprint` fields in a NodeBalancerConfig
+
+ response are automatically derived from your
+ certificate. Please refer to these fields to
+
+ verify that the appropriate certificate was
+ assigned to your NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections will always be
+ assigned a backend based on the algorithm
+ configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows
+ sessions to be routed to the same backend based on
+ a cookie set by the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTPS
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-https.yaml
+ type: object
type: array
- description: |
- The port Config(s) to create for this NodeBalancer.
+ firewall_id:
+ description: >-
+ The ID of the Firewall to assign to the NodeBalancer.
+
+
+ - A NodeBalancer can have only one Firewall assigned to it.
+
+ - Firewalls control inbound network traffic to
+ NodeBalancers.
+ example: '{{firewall_id}}'
+ type: integer
+ label:
+ description: >-
+ __Filterable__ This NodeBalancer's label. These must be
+ unique on your Account.
+ example: '{{label}}'
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_]{3,32}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ region:
+ description: The ID of the Region to create this NodeBalancer in.
+ example: '{{region}}'
+ type: string
+ tags:
+ description: >-
+ An array of Tags applied to this object. Tags are for
+ organizational purposes only.
+ example:
+ - test
+ - web-dev-team
+ items:
+ type: string
+ type: array
+ vpcs:
+ description: >-
+ You can have only one `vpcs` in a NodeBalancer
+ configuration. If any of your backend nodes are VPC Linodes,
+ specify the VPC subnet and CIDR range. NodeBalancer routes
+ traffic to backend VPC nodes through this subnet. The
+ specified VPC subnet must exist within the same data center
+ as the NodeBalancer, and the provided IP range must be
+ contained within the subnet's CIDR block. All IP addresses
+ within the specified range must be free and available for
+ assignment. Once the NodeBalancer is created, its VPC cannot
+ be changed.
+ items:
+ additionalProperties: false
+ description: >-
+ You can have only one VPC in a NodeBalancer configuration.
+ If any of your backend nodes are VPC Linodes, specify the
+ VPC subnet and CIDR range. NodeBalancer routes traffic to
+ backend VPC nodes through this subnet. Once the
+ NodeBalancer is created, its VPC cannot be changed.
+ properties:
+ id:
+ description: >-
+ __Read-only__ Identifies the VPC configuration for
+ this NodeBalancer.
+ example: 6
+ readOnly: true
+ type: integer
+ ipv4_range:
+ description: >-
+ A CIDR range for the VPC's IPv4 addresses. The
+ NodeBalancer sources IP addresses from this range when
+ routing traffic to the backend VPC nodes.
+ example: 10.100.5.100/30
+ type: string
+ x-linode-cli-display: 12
+ ipv4_range_auto_assign:
+ default: false
+ description: >-
+ Enables the use of a larger `ipv4_range` subnet for
+ multiple NodeBalancers within the same VPC by
+ allocating smaller `/30` subnets for each
+ NodeBalancer's backends.
+
+
+ - When set to `true`, the system automatically
+ allocates the smallest possible subnet (`/30`) from
+ the provided `ipv4_range` for the NodeBalancer's
+ backend interface. If the specified range doesn't have
+ enough available IPs to allocate a `/30` subnet, the
+ creation fails.
+
+
+ - When set to `false`, the NodeBalancer is created
+ using the entire `ipv4_range` as specified, without
+ attempting to allocate a `/30` subnet.
+ example: false
+ nullable: true
+ type: boolean
+ x-linode-cli-display: 14
+ nodebalancer_id:
+ description: __Read-only__ Identifies the NodeBalancer.
+ example: 8
+ readOnly: true
+ type: integer
+ subnet_id:
+ description: >-
+ The VPC's subnet. Run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation provides data for your VPCs and their
+ subnets.
+ example: 1
+ type: integer
+ x-linode-cli-display: 11
+ vpc_id:
+ description: >-
+ __Read-only__ The `id` of the VPC configured for this
+ NodeBalancer.
+ example: 1
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - subnet_id
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-vpc.yaml
+ type: array
+ required:
+ - region
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-node-balancer.yaml
+ x-example:
+ x-ref: ../examples/post-node-balancer.json
+ description: Information about the NodeBalancer to create.
+ required: true
+ x-linode-cli-allowed-defaults:
+ - region
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ Linode's load balancing solution. Can handle multiple ports,
+ SSL termination, and any number of backends. NodeBalancer
+ ports are configured with NodeBalancer configs, and each
+ config is given one or more NodeBalancer nodes that accepts
+ traffic. The traffic should be routed to the NodeBalancer's
+ IP address, for the NodeBalancer to handle routing individual
+ requests to backends.
+ properties:
+ client_conn_throttle:
+ description: >-
+ Throttle TCP connections per second for TCP, HTTP, and
+ HTTPS configurations. Set to `0` (zero) to disable
+ throttling.
+ example: 10
+ maximum: 20
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 9
+ created:
+ description: __Read-only__ When this NodeBalancer was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ hostname:
+ description: >-
+ __Read-only__ This NodeBalancer's hostname, beginning with
+ its IP address and ending with
+ _.ip.linodeusercontent.com_.
+ example: 192.0.2.1.ip.linodeusercontent.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ id:
+ description: __Read-only__ This NodeBalancer's unique ID.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ipv4:
+ description: >-
+ __Filterable__, __Read-only__ This NodeBalancer's public
+ IPv4 address.
+ example: 203.0.113.1
+ format: ip
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ ipv6:
+ description: __Read-only__ This NodeBalancer's public IPv6 address.
+ example: null
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ label:
+ description: >-
+ __Filterable__ This NodeBalancer's label. These must be
+ unique on your Account.
+ example: balancer12345
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_]{3,32}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster:
+ additionalProperties: false
+ description: >-
+ __Read-only__ This NodeBalancer's related LKE cluster, if
+ any. The value is `null` if this NodeBalancer isn't
+ related to an LKE cluster.
+ nullable: true
+ properties:
+ id:
+ description: The ID of the related LKE cluster.
+ example: 12345
+ type: string
+ label:
+ description: The label of the related LKE cluster.
+ example: lkecluster12345
+ type: string
+ type:
+ description: __Read-only__ The type for LKE clusters.
+ example: lkecluster
+ readOnly: true
+ type: string
+ url:
+ description: The URL where you can access the related LKE cluster.
+ example: /v4/lke/clusters/12345
+ type: string
+ readOnly: true
+ type: object
+ x-linode-cli-display: 8
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The Region where this
+ NodeBalancer is located. NodeBalancers only support
+ backends in the same Region.
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ An array of Tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ transfer:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about the amount of transfer
+ this NodeBalancer has had so far this month.
+ properties:
+ in:
+ description: >-
+ __Read-only__ The total outbound transfer, in MB, used
+ for this NodeBalancer this month.
+ example: 28.91200828552246
+ nullable: true
+ readOnly: true
+ type: number
+ out:
+ description: >-
+ __Read-only__ The total inbound transfer, in MB, used
+ for this NodeBalancer this month.
+ example: 3.5487728118896484
+ nullable: true
+ readOnly: true
+ type: number
+ total:
+ description: >-
+ __Read-only__ The total transfer, in MB, used by this
+ NodeBalancer this month.
+ example: 32.46078109741211
+ nullable: true
+ readOnly: true
+ type: number
+ readOnly: true
+ type: object
+ type:
+ description: __Read-only__ The type of NodeBalancer.
+ enum:
+ - common
+ - premium
+ example: premium
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this NodeBalancer was last updated.
+ example: '2018-03-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: NodeBalancer
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer.yaml
+ x-example:
+ x-ref: ../examples/post-node-balancer-200.json
+ description: NodeBalancer created successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_write
+ summary: Create a NodeBalancer
+ tags:
+ - NodeBalancers
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli nodebalancers create \
+ --region us-east \
+ --label balancer12345 \
+ --client_conn_throttle 0
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: create
+ x-linode-grant: add_nodebalancers
+ get:
+ description: >-
+ Returns a paginated list of NodeBalancers you have access to.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-node-balancers
+ operationId: get-node-balancers
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ Linode's load balancing solution. Can handle multiple
+ ports, SSL termination, and any number of backends.
+ NodeBalancer ports are configured with NodeBalancer
+ configs, and each config is given one or more
+ NodeBalancer nodes that accepts traffic. The traffic
+ should be routed to the NodeBalancer's IP address, for
+ the NodeBalancer to handle routing individual requests
+ to backends.
+ properties:
+ client_conn_throttle:
+ description: >-
+ Throttle TCP connections per second for TCP, HTTP,
+ and HTTPS configurations. Set to `0` (zero) to
+ disable throttling.
+ example: 10
+ maximum: 20
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 9
+ created:
+ description: __Read-only__ When this NodeBalancer was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ hostname:
+ description: >-
+ __Read-only__ This NodeBalancer's hostname,
+ beginning with its IP address and ending with
+ _.ip.linodeusercontent.com_.
+ example: 192.0.2.1.ip.linodeusercontent.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ id:
+ description: __Read-only__ This NodeBalancer's unique ID.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ipv4:
+ description: >-
+ __Filterable__, __Read-only__ This NodeBalancer's
+ public IPv4 address.
+ example: 203.0.113.1
+ format: ip
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ ipv6:
+ description: >-
+ __Read-only__ This NodeBalancer's public IPv6
+ address.
+ example: null
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ label:
+ description: >-
+ __Filterable__ This NodeBalancer's label. These must
+ be unique on your Account.
+ example: balancer12345
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_]{3,32}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster:
+ additionalProperties: false
+ description: >-
+ __Read-only__ This NodeBalancer's related LKE
+ cluster, if any. The value is `null` if this
+ NodeBalancer isn't related to an LKE cluster.
+ nullable: true
+ properties:
+ id:
+ description: The ID of the related LKE cluster.
+ example: 12345
+ type: string
+ label:
+ description: The label of the related LKE cluster.
+ example: lkecluster12345
+ type: string
+ type:
+ description: __Read-only__ The type for LKE clusters.
+ example: lkecluster
+ readOnly: true
+ type: string
+ url:
+ description: >-
+ The URL where you can access the related LKE
+ cluster.
+ example: /v4/lke/clusters/12345
+ type: string
+ readOnly: true
+ type: object
+ x-linode-cli-display: 8
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The Region where this
+ NodeBalancer is located. NodeBalancers only support
+ backends in the same Region.
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ An array of Tags applied to this
+ object. Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ transfer:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about the amount of
+ transfer this NodeBalancer has had so far this
+ month.
+ properties:
+ in:
+ description: >-
+ __Read-only__ The total outbound transfer, in
+ MB, used for this NodeBalancer this month.
+ example: 28.91200828552246
+ nullable: true
+ readOnly: true
+ type: number
+ out:
+ description: >-
+ __Read-only__ The total inbound transfer, in MB,
+ used for this NodeBalancer this month.
+ example: 3.5487728118896484
+ nullable: true
+ readOnly: true
+ type: number
+ total:
+ description: >-
+ __Read-only__ The total transfer, in MB, used by
+ this NodeBalancer this month.
+ example: 32.46078109741211
+ nullable: true
+ readOnly: true
+ type: number
+ readOnly: true
+ type: object
+ type:
+ description: __Read-only__ The type of NodeBalancer.
+ enum:
+ - common
+ - premium
+ example: premium
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: >-
+ __Read-only__ When this NodeBalancer was last
+ updated.
+ example: '2018-03-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: NodeBalancer
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-node-balancers-200.yaml
+ x-example:
+ x-ref: ../examples/get-node-balancers-200.json
+ description: A paginated list of NodeBalancers.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_only
+ summary: List NodeBalancers
+ tags:
+ - NodeBalancers
+ x-akamai:
+ tabs:
+ - syntax: linode-cli nodebalancers list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/node-balancers.yaml
+ path-info: /{apiVersion}/nodebalancers
+ x-linode-cli-command: nodebalancers
+ /nodebalancers/types:
+ get:
+ description: >-
+ Returns NodeBalancer types and prices, including any region-specific
+ rates.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-node-balancer-types
+ operationId: get-node-balancer-types
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ description: The NodeBalancer types.
+ items:
+ additionalProperties: false
+ description: >-
+ Returns collection of NodeBalancer types and prices,
+ including any region-specific rates.
+ properties:
+ id:
+ description: >-
+ __Read-only__ The ID representing the NodeBalancer
+ type.
+ example: nodebalancer
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__, __Read-only__ The NodeBalancer type
+ label is for display purposes only.
+ example: NodeBalancer
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ price:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The default cost of this NodeBalancer
+ type. Prices are in US dollars, broken down into
+ hourly and monthly charges.
+
+
+ Certain regions have different prices from the
+ default. For region-specific prices, see
+ `region_prices`.
+ properties:
+ hourly:
+ description: __Filterable__ Cost (in US dollars) per hour.
+ example: 0.0015
+ type: number
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ monthly:
+ description: __Filterable__ Cost per month, in US dollars.
+ example: 0.1
+ type: number
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ readOnly: true
+ type: object
+ region_prices:
+ items:
+ additionalProperties: false
+ properties:
+ hourly:
+ description: Cost per hour for this region, in US dollars.
+ example: 0.00018
+ type: number
+ x-linode-cli-display: 6
+ id:
+ description: The Region ID for these prices.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ monthly:
+ description: Cost per month for this region, in US dollars.
+ example: 0.12
+ type: number
+ x-linode-cli-display: 7
+ type: object
+ type: array
+ transfer:
+ description: >-
+ __Filterable__, __Read-only__ The monthly outbound
+ transfer amount, in MB.
+ example: 0
+ minimum: 0
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-type.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/get-node-balancer-types-200.yaml
+ x-example:
+ x-ref: ../examples/get-node-balancer-types-200.json
+ description: A collection of NodeBalancer types.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: List NodeBalancer types
+ tags:
+ - NodeBalancer types
+ x-akamai:
+ tabs:
+ - syntax: linode-cli nodebalancers types
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: types
+ x-linode-redoc-load-ids: true
+ parameters: []
+ x-akamai:
+ file-path: paths/node-balancer-types.yaml
+ path-info: /{apiVersion}/nodebalancers/types
+ x-linode-cli-command: nodebalancers
+ /nodebalancers/{nodeBalancerId}:
+ get:
+ description: >-
+ Returns a single NodeBalancer you can access.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-node-balancer
+ operationId: get-node-balancer
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ Linode's load balancing solution. Can handle multiple ports,
+ SSL termination, and any number of backends. NodeBalancer
+ ports are configured with NodeBalancer configs, and each
+ config is given one or more NodeBalancer nodes that accepts
+ traffic. The traffic should be routed to the NodeBalancer's
+ IP address, for the NodeBalancer to handle routing individual
+ requests to backends.
+ properties:
+ client_conn_throttle:
+ description: >-
+ Throttle TCP connections per second for TCP, HTTP, and
+ HTTPS configurations. Set to `0` (zero) to disable
+ throttling.
+ example: 10
+ maximum: 20
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 9
+ created:
+ description: __Read-only__ When this NodeBalancer was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ hostname:
+ description: >-
+ __Read-only__ This NodeBalancer's hostname, beginning with
+ its IP address and ending with
+ _.ip.linodeusercontent.com_.
+ example: 192.0.2.1.ip.linodeusercontent.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ id:
+ description: __Read-only__ This NodeBalancer's unique ID.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ipv4:
+ description: >-
+ __Filterable__, __Read-only__ This NodeBalancer's public
+ IPv4 address.
+ example: 203.0.113.1
+ format: ip
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ ipv6:
+ description: __Read-only__ This NodeBalancer's public IPv6 address.
+ example: null
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ label:
+ description: >-
+ __Filterable__ This NodeBalancer's label. These must be
+ unique on your Account.
+ example: balancer12345
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_]{3,32}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster:
+ additionalProperties: false
+ description: >-
+ __Read-only__ This NodeBalancer's related LKE cluster, if
+ any. The value is `null` if this NodeBalancer isn't
+ related to an LKE cluster.
+ nullable: true
+ properties:
+ id:
+ description: The ID of the related LKE cluster.
+ example: 12345
+ type: string
+ label:
+ description: The label of the related LKE cluster.
+ example: lkecluster12345
+ type: string
+ type:
+ description: __Read-only__ The type for LKE clusters.
+ example: lkecluster
+ readOnly: true
+ type: string
+ url:
+ description: The URL where you can access the related LKE cluster.
+ example: /v4/lke/clusters/12345
+ type: string
+ readOnly: true
+ type: object
+ x-linode-cli-display: 8
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The Region where this
+ NodeBalancer is located. NodeBalancers only support
+ backends in the same Region.
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ An array of Tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ transfer:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about the amount of transfer
+ this NodeBalancer has had so far this month.
+ properties:
+ in:
+ description: >-
+ __Read-only__ The total outbound transfer, in MB, used
+ for this NodeBalancer this month.
+ example: 28.91200828552246
+ nullable: true
+ readOnly: true
+ type: number
+ out:
+ description: >-
+ __Read-only__ The total inbound transfer, in MB, used
+ for this NodeBalancer this month.
+ example: 3.5487728118896484
+ nullable: true
+ readOnly: true
+ type: number
+ total:
+ description: >-
+ __Read-only__ The total transfer, in MB, used by this
+ NodeBalancer this month.
+ example: 32.46078109741211
+ nullable: true
+ readOnly: true
+ type: number
+ readOnly: true
+ type: object
+ type:
+ description: __Read-only__ The type of NodeBalancer.
+ enum:
+ - common
+ - premium
+ example: premium
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this NodeBalancer was last updated.
+ example: '2018-03-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: NodeBalancer
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer.yaml
+ x-example:
+ x-ref: ../examples/get-node-balancer-200.json
+ description: The requested NodeBalancer object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_only
+ summary: Get a NodeBalancer
+ tags:
+ - NodeBalancers
+ x-akamai:
+ tabs:
+ - syntax: linode-cli nodebalancers view 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ x-linode-grant: read_only
+ put:
+ description: >-
+ Updates information about a NodeBalancer you can access.
+
+
+ > 🚧
+
+ >
+
+ > You can configure UDP on the same NodeBalancer that also uses TCP,
+ HTTP, or HTTPS, but only when managing it through the API. If UDP is
+ configured and you make changes to the TCP, HTTP or HTTPS settings in
+ Cloud Manager, the existing UDP configuration will be overwritten. This
+ is because Cloud Manager doesn't currently support UDP.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-node-balancer
+ operationId: put-node-balancer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ Linode's load balancing solution. Can handle multiple ports, SSL
+ termination, and any number of backends. NodeBalancer ports are
+ configured with NodeBalancer configs, and each config is given
+ one or more NodeBalancer nodes that accepts traffic. The
+ traffic should be routed to the NodeBalancer's IP address, for
+ the NodeBalancer to handle routing individual requests to
+ backends.
+ properties:
+ client_conn_throttle:
+ description: >-
+ Throttle TCP connections per second for TCP, HTTP, and HTTPS
+ configurations. Set to `0` (zero) to disable throttling.
+ example: '{{client_conn_throttle}}'
+ maximum: 20
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 9
+ created:
+ description: __Read-only__ When this NodeBalancer was created.
+ example: '{{created}}'
+ format: date-time
+ readOnly: true
+ type: string
+ hostname:
+ description: >-
+ __Read-only__ This NodeBalancer's hostname, beginning with
+ its IP address and ending with _.ip.linodeusercontent.com_.
+ example: '{{hostname}}'
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ id:
+ description: __Read-only__ This NodeBalancer's unique ID.
+ example: '{{id}}'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ipv4:
+ description: >-
+ __Filterable__, __Read-only__ This NodeBalancer's public
+ IPv4 address.
+ example: '{{ipv4}}'
+ format: ip
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ ipv6:
+ description: __Read-only__ This NodeBalancer's public IPv6 address.
+ example: '{{ipv6}}'
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ label:
+ description: >-
+ __Filterable__ This NodeBalancer's label. These must be
+ unique on your Account.
+ example: '{{label}}'
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_]{3,32}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster:
+ additionalProperties: false
+ description: >-
+ __Read-only__ This NodeBalancer's related LKE cluster, if
+ any. The value is `null` if this NodeBalancer isn't related
+ to an LKE cluster.
+ nullable: true
+ properties:
+ id:
+ description: The ID of the related LKE cluster.
+ example: 12345
+ type: string
+ label:
+ description: The label of the related LKE cluster.
+ example: lkecluster12345
+ type: string
+ type:
+ description: __Read-only__ The type for LKE clusters.
+ example: lkecluster
+ readOnly: true
+ type: string
+ url:
+ description: The URL where you can access the related LKE cluster.
+ example: /v4/lke/clusters/12345
+ type: string
+ readOnly: true
+ type: object
+ x-linode-cli-display: 8
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The Region where this
+ NodeBalancer is located. NodeBalancers only support backends
+ in the same Region.
+ example: '{{region}}'
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ An array of Tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ transfer:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about the amount of transfer this
+ NodeBalancer has had so far this month.
+ properties:
+ in:
+ description: >-
+ __Read-only__ The total outbound transfer, in MB, used
+ for this NodeBalancer this month.
+ example: 28.91200828552246
+ nullable: true
+ readOnly: true
+ type: number
+ out:
+ description: >-
+ __Read-only__ The total inbound transfer, in MB, used
+ for this NodeBalancer this month.
+ example: 3.5487728118896484
+ nullable: true
+ readOnly: true
+ type: number
+ total:
+ description: >-
+ __Read-only__ The total transfer, in MB, used by this
+ NodeBalancer this month.
+ example: 32.46078109741211
+ nullable: true
+ readOnly: true
+ type: number
+ readOnly: true
+ type: object
+ type:
+ description: __Read-only__ The type of NodeBalancer.
+ enum:
+ - common
+ - premium
+ example: '{{type}}'
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this NodeBalancer was last updated.
+ example: '{{updated}}'
+ format: date-time
+ readOnly: true
+ type: string
+ title: NodeBalancer
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer.yaml
+ x-example:
+ x-ref: ../examples/put-node-balancer.json
+ description: The information to update.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ Linode's load balancing solution. Can handle multiple ports,
+ SSL termination, and any number of backends. NodeBalancer
+ ports are configured with NodeBalancer configs, and each
+ config is given one or more NodeBalancer nodes that accepts
+ traffic. The traffic should be routed to the NodeBalancer's
+ IP address, for the NodeBalancer to handle routing individual
+ requests to backends.
+ properties:
+ client_conn_throttle:
+ description: >-
+ Throttle TCP connections per second for TCP, HTTP, and
+ HTTPS configurations. Set to `0` (zero) to disable
+ throttling.
+ example: 10
+ maximum: 20
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 9
+ created:
+ description: __Read-only__ When this NodeBalancer was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ hostname:
+ description: >-
+ __Read-only__ This NodeBalancer's hostname, beginning with
+ its IP address and ending with
+ _.ip.linodeusercontent.com_.
+ example: 192.0.2.1.ip.linodeusercontent.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ id:
+ description: __Read-only__ This NodeBalancer's unique ID.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ipv4:
+ description: >-
+ __Filterable__, __Read-only__ This NodeBalancer's public
+ IPv4 address.
+ example: 203.0.113.1
+ format: ip
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ ipv6:
+ description: __Read-only__ This NodeBalancer's public IPv6 address.
+ example: null
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ label:
+ description: >-
+ __Filterable__ This NodeBalancer's label. These must be
+ unique on your Account.
+ example: balancer12345
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_]{3,32}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster:
+ additionalProperties: false
+ description: >-
+ __Read-only__ This NodeBalancer's related LKE cluster, if
+ any. The value is `null` if this NodeBalancer isn't
+ related to an LKE cluster.
+ nullable: true
+ properties:
+ id:
+ description: The ID of the related LKE cluster.
+ example: 12345
+ type: string
+ label:
+ description: The label of the related LKE cluster.
+ example: lkecluster12345
+ type: string
+ type:
+ description: __Read-only__ The type for LKE clusters.
+ example: lkecluster
+ readOnly: true
+ type: string
+ url:
+ description: The URL where you can access the related LKE cluster.
+ example: /v4/lke/clusters/12345
+ type: string
+ readOnly: true
+ type: object
+ x-linode-cli-display: 8
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The Region where this
+ NodeBalancer is located. NodeBalancers only support
+ backends in the same Region.
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ An array of Tags applied to this object.
+ Tags are for organizational purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ transfer:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about the amount of transfer
+ this NodeBalancer has had so far this month.
+ properties:
+ in:
+ description: >-
+ __Read-only__ The total outbound transfer, in MB, used
+ for this NodeBalancer this month.
+ example: 28.91200828552246
+ nullable: true
+ readOnly: true
+ type: number
+ out:
+ description: >-
+ __Read-only__ The total inbound transfer, in MB, used
+ for this NodeBalancer this month.
+ example: 3.5487728118896484
+ nullable: true
+ readOnly: true
+ type: number
+ total:
+ description: >-
+ __Read-only__ The total transfer, in MB, used by this
+ NodeBalancer this month.
+ example: 32.46078109741211
+ nullable: true
+ readOnly: true
+ type: number
+ readOnly: true
+ type: object
+ type:
+ description: __Read-only__ The type of NodeBalancer.
+ enum:
+ - common
+ - premium
+ example: premium
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: __Read-only__ When this NodeBalancer was last updated.
+ example: '2018-03-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: NodeBalancer
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer.yaml
+ x-example:
+ x-ref: ../examples/get-node-balancer-200.json
+ description: NodeBalancer updated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_write
+ summary: Update a NodeBalancer
+ tags:
+ - NodeBalancers
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli nodebalancers update 12345 \
+ --label balancer12345 \
+ --client_conn_throttle 0
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update
+ x-linode-grant: read_write
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-node-balancer
+ operationId: delete-node-balancer
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-node-balancer-200.json
+ description: NodeBalancer deleted successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_write
+ summary: Delete a NodeBalancer
+ tags:
+ - NodeBalancers
+ x-akamai:
+ tabs:
+ - syntax: linode-cli nodebalancers delete 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - delete
+ - rm
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the NodeBalancer.
+ example: '{{nodeBalancerId}}'
+ in: path
+ name: nodeBalancerId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/node-balancer-id.yaml
+ x-akamai:
+ file-path: paths/node-balancer.yaml
+ path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}
+ x-linode-cli-command: nodebalancers
+ /nodebalancers/{nodeBalancerId}/configs:
+ post:
+ description: >-
+ Creates a NodeBalancer configuration, which allows the NodeBalancer to
+ accept traffic on a new port. You will need to add NodeBalancer nodes to
+ the new configuration before it can actually serve requests.
+
+
+ > 🚧
+
+ >
+
+ > You can configure UDP on the same NodeBalancer that also uses TCP,
+ HTTP, or HTTPS, but only when managing it through the API. If UDP is
+ configured and you make changes to the TCP, HTTP or HTTPS settings in
+ Cloud Manager, the existing UDP configuration will be overwritten. This
+ is because Cloud Manager doesn't currently support UDP. __CLI: HTTPS__.
+
+ ```
+ linode-cli nodebalancers config-create 12345 \
+ --port 443 \
+ --protocol https \
+ --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 "none" \
+ --ssl_cert "-----BEGIN CERTIFICATE-----
+ CERTIFICATE_INFORMATION
+ -----END CERTIFICATE-----" \
+ --ssl_key "-----BEGIN PRIVATE KEY-----
+ PRIVATE_KEY_INFORMATION
+ -----END PRIVATE KEY-----" \
+ --cipher_suite recommended
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ - __CLI: UDP__.
+
+ ```
+ linode-cli nodebalancers config-create 12345 \
+ --port 80 \
+ --protocol udp \
+ --algorithm ring_hash \
+ --stickiness session \
+ --check http_body \
+ --check_interval 90 \
+ --check_timeout 10 \
+ --check_attempts 3 \
+ --check_path "/test" \
+ --check_body "it works" \
+ --udp_check_port 80
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ - __CLI: TCP__.
+
+ ```
+ linode-cli nodebalancers config-create 12345 \
+ --port 80 \
+ --protocol tcp \
+ --algorithm roundrobin \
+ --stickiness none \
+ --check http_body \
+ --check_interval 90 \
+ --check_timeout 10 \
+ --check_attempts 3 \
+ --check_path "/test" \
+ --check_body "it works" \
+ --proxy_protocol "v2"
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ - __CLI: HTTP__.
+
+ ```
+ linode-cli nodebalancers config-create 12345 \
+ --port 440 \
+ --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"
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-node-balancer-config
+ operationId: post-node-balancer-config
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - description: NodeBalancer `config` options for each protocol.
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer configuration defines the
+ protocol and settings for a specific port on the
+ NodeBalancer. These fields apply to UDP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this UDP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - ring_hash
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering
+ a backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of
+ the check in order for it to pass. If this value
+ isn't present in the response body of a check
+ request, the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ description: __Read-only__ Must be `false` for UDP.
+ example: false
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 8
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the
+ backend does not respond to this request, it's
+ considered to be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 7000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this
+ config belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes:
+ description: >-
+ The NodeBalancer nodes that serve this
+ configuration.
+ items:
+ additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer node represents a single
+ backend serving requests for a single port of a
+ NodeBalancer. Nodes are tied to individual
+ NodeBalancer configurations and route traffic over
+ their private IPv4 address, IPv6 address, or VPC
+ IPv4 address. If the same Linode is serving
+ traffic for more than one port on the same
+ NodeBalancer, one NodeBalancer node is required
+ for each config (port) it should serve requests
+ on. For example, if you have four backends, and
+ each should respond to both UDP and HTTPS
+ requests, you will need two NodeBalancer configs
+ (port 80 and port 443) and four backends each, one
+ for each of the Linodes serving requests for that
+ port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes
+ within a VPC. The following IP types are
+ supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that
+ this Node belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ __Read-only__ The mode this NodeBalancer
+ should use when sending traffic to this
+ backend. For backend nodes with a UDP config,
+ the `mode` doesn't apply, so the value is
+ `none`.
+ enum:
+ - none
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this
+ Node belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node,
+ based on the configured checks of its
+ NodeBalancer config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The VPC's
+ subnet. To display information about your VPCs
+ and their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request
+ and is not pinned to a single backend yet.
+ Nodes with a higher weight will receive more
+ traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: UDP config
+ x-akamai:
+ file-path: schemas/node-balancer-node-udp.yaml
+ status: BETA
+ type: object
+ type: array
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends
+ for this port. This data updates periodically as
+ checks are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 11
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for
+ this configuration. Port numbers must be unique
+ across TCP, HTTP, and HTTPS configurations on a
+ single NodeBalancer. However, ports assigned to TCP,
+ HTTP, or HTTPS configurations can also be reused for
+ UDP configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration
+ on the same NodeBalancer, but it can't be shared by
+ both a TCP and an HTTP configuration. Although
+ certain ports are traditionally associated with
+ specific protocols, this isn't strictly enforced,
+ and you may configure your NodeBalancer however you
+ find useful.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `udp`
+ in this case. Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - udp
+ example: udp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ description: __Read-only__ Must be `none` for UDP.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for UPD configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 10
+ ssl_key:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: session
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections are assigned a
+ backend server based on the algorithm configured.
+
+ - If set to `session`, all packets with the same
+ session identifiers are routed to the same backend
+ server. Two packets are considered part of the same
+ session if they share the same source and
+ destination IP addresses or ports, and are received
+ within a short time window.
+
+ - If set to `source_ip`, the NodeBalancer uses the
+ client's source IP address to route all packets from
+ the same client to the same backend server.
+ enum:
+ - none
+ - session
+ - source_ip
+ example: none
+ type: string
+ x-linode-cli-display: 5
+ udp_check_port:
+ default: 80
+ description: >-
+ UDP NodeBalancers use TCP and HTTP active health
+ checks to ensure back-end nodes can receive traffic.
+ You can specify the health check port that the
+ backend node listens on, which may differ from the
+ UDP port used to serve traffic.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 6
+ udp_session_timeout:
+ default: 16
+ description: >-
+ __Read-only__ The maximum duration in seconds, a UDP
+ session can be idle before it is closed.
+ example: 2
+ maximum: 300
+ minimum: 1
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 12
+ required:
+ - nodes
+ title: UDP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-udp.yaml
+ status: BETA
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to TCP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this TCP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. The `check` is
+ used to determine if backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering
+ a backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of
+ the check in order for it to pass. If this value is
+ not present in the response body of a check request,
+ the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a
+ `5xx` status code will be enough for it to be
+ considered unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the
+ backend does not respond to this request, it's
+ considered to be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `tcp` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 6000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this
+ config belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes:
+ description: >-
+ The NodeBalancer nodes that serve this
+ configuration.
+ items:
+ additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend
+ serving requests for a single port of a
+ NodeBalancer. Nodes are tied to individual
+ NodeBalancer configurations and route traffic over
+ their private IPv4 address, IPv6 address, or VPC
+ IPv4 address. If the same Linode is serving
+ traffic for more than one port on the same
+ NodeBalancer, one NodeBalancer node is required
+ for each config (port) it should serve requests
+ on. For example, if you have four backends, and
+ each should respond to both HTTP and HTTPS
+ requests, you will need two NodeBalancer configs
+ (port 80 and port 443) and four backends each, one
+ for each of the Linodes serving requests for that
+ port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes
+ within a VPC. The following IP types are
+ supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that
+ this Node belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when
+ sending traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not
+ receive traffic.
+
+ - If set to `drain` this backend will not
+ receive _new_ traffic, but connections already
+ pinned to it will continue to be routed to it.
+
+ - If set to `backup`, this backend will only
+ receive traffic if all `accept` nodes are
+ down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this
+ Node belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node,
+ based on the configured checks of its
+ NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The VPC's
+ subnet. To display information about your VPCs
+ and their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request
+ and is not pinned to a single backend yet.
+ Nodes with a higher weight will receive more
+ traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: schemas/node-balancer-node-tcp-http-https.yaml
+ type: object
+ type: array
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends
+ for this port. This data updates periodically as
+ checks are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for
+ this configuration. Port numbers must be unique
+ across TCP, HTTP, and HTTPS configurations on a
+ single NodeBalancer. However, ports assigned to TCP,
+ HTTP, or HTTPS configurations can also be reused for
+ UDP configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration
+ on the same NodeBalancer, but it can't be shared by
+ both a TCP and an HTTP configuration. Although
+ certain ports are traditionally associated with
+ specific protocols, this isn't strictly enforced,
+ and you may configure your NodeBalancer however you
+ find useful.
+ example: 22
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `tcp`
+ in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - tcp
+ example: tcp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ Proxy protocol is a TCP extension that sends initial
+ TCP connection information such as source or
+ destination IPs and ports to backend devices. Proxy
+ protocol preserves initial TCP information that
+ would be lost otherwise. Backend devices must be
+ configured to work with `proxy_protocol` if enabled.
+
+
+ - If omitted, or set to `none`, the NodeBalancer
+ doesn't send any auxiliary data over TCP
+ connections. This is the default.
+
+ - If set to `v1`, the human-readable header format
+ (Version 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version
+ 2) is used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ __Read-only__ Controls how session stickiness is
+ handled on this port.
+
+
+ - If set to `none`, connections will always be
+ assigned a backend based on the algorithm
+ configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+ enum:
+ - none
+ - table
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: TCP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-tcp.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTP NodeBalancer uses for
+ routing traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering
+ a backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value must be present in the
+ response body of the check in order for it to pass.
+ If this value is not present in the response body of
+ a check request, the backend is considered to be
+ down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a
+ `5xx` status code will be enough for it to be
+ considered unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to
+ be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `http` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this
+ config belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes:
+ description: >-
+ The NodeBalancer nodes that serve this
+ configuration.
+ items:
+ additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend
+ serving requests for a single port of a
+ NodeBalancer. Nodes are tied to individual
+ NodeBalancer configurations and route traffic over
+ their private IPv4 address, IPv6 address, or VPC
+ IPv4 address. If the same Linode is serving
+ traffic for more than one port on the same
+ NodeBalancer, one NodeBalancer node is required
+ for each config (port) it should serve requests
+ on. For example, if you have four backends, and
+ each should respond to both HTTP and HTTPS
+ requests, you will need two NodeBalancer configs
+ (port 80 and port 443) and four backends each, one
+ for each of the Linodes serving requests for that
+ port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes
+ within a VPC. The following IP types are
+ supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that
+ this Node belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when
+ sending traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not
+ receive traffic.
+
+ - If set to `drain` this backend will not
+ receive _new_ traffic, but connections already
+ pinned to it will continue to be routed to it.
+
+ - If set to `backup`, this backend will only
+ receive traffic if all `accept` nodes are
+ down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this
+ Node belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node,
+ based on the configured checks of its
+ NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The VPC's
+ subnet. To display information about your VPCs
+ and their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request
+ and is not pinned to a single backend yet.
+ Nodes with a higher weight will receive more
+ traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: schemas/node-balancer-node-tcp-http-https.yaml
+ type: object
+ type: array
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends
+ for this port. This data updates periodically as
+ checks are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for
+ this configuration. Port numbers need to be unique
+ across TCP, HTTP, and HTTPS configurations on a
+ single NodeBalancer. However, ports assigned to TCP,
+ HTTP, or HTTPS configurations can also be reused for
+ UDP configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration
+ on the same NodeBalancer, but it can't be shared by
+ both a TCP and an HTTP configuration. Although
+ certain ports are traditionally associated with
+ specific protocols, this isn't strictly enforced.
+ You may configure your NodeBalancer however you find
+ useful.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `http`
+ in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - http
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections will always be
+ assigned a backend based on the algorithm
+ configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+
+ - If set to `http_cookie`, sessions are routed to
+ the same backend based on a cookie set by the
+ NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-http.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTPS configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTPS NodeBalancer uses for
+ routing traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. The `check` is
+ used to determine if backends are up or down.
+
+
+ - If `none` no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering
+ a backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value must be present in the
+ response body of the check in order for it to pass.
+ If this value is not present in the response body of
+ a check request, the backend is considered to be
+ down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a
+ `5xx` status code will be enough for it to be
+ considered unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to
+ be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by
+ this NodeBalancer. The `legacy` cipher is considered
+ insecure and should only be used if necessary. For
+ information on recommended and legacy ciphers, see
+ [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 5000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this
+ config belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes:
+ description: >-
+ The NodeBalancer nodes that serve this
+ configuration.
+ items:
+ additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend
+ serving requests for a single port of a
+ NodeBalancer. Nodes are tied to individual
+ NodeBalancer configurations and route traffic over
+ their private IPv4 address, IPv6 address, or VPC
+ IPv4 address. If the same Linode is serving
+ traffic for more than one port on the same
+ NodeBalancer, one NodeBalancer node is required
+ for each config (port) it should serve requests
+ on. For example, if you have four backends, and
+ each should respond to both HTTP and HTTPS
+ requests, you will need two NodeBalancer configs
+ (port 80 and port 443) and four backends each, one
+ for each of the Linodes serving requests for that
+ port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes
+ within a VPC. The following IP types are
+ supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that
+ this Node belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when
+ sending traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not
+ receive traffic.
+
+ - If set to `drain` this backend will not
+ receive _new_ traffic, but connections already
+ pinned to it will continue to be routed to it.
+
+ - If set to `backup`, this backend will only
+ receive traffic if all `accept` nodes are
+ down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this
+ Node belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node,
+ based on the configured checks of its
+ NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The VPC's
+ subnet. To display information about your VPCs
+ and their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request
+ and is not pinned to a single backend yet.
+ Nodes with a higher weight will receive more
+ traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: schemas/node-balancer-node-tcp-http-https.yaml
+ type: object
+ type: array
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends
+ for this port. This data updates periodically as
+ checks are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for
+ this configuration. Port numbers must be unique
+ across TCP, HTTP, and HTTPS configurations on a
+ single NodeBalancer. However, ports assigned to TCP,
+ HTTP, or HTTPS configurations can also be reused for
+ UDP configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration
+ on the same NodeBalancer, but it can't be shared by
+ both a TCP and an HTTP configuration. Although
+ certain ports are traditionally associated with
+ specific protocols, this isn't strictly enforced,
+ and you may configure your NodeBalancer however you
+ find useful.
+ example: 443
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve,
+ `https` in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features. The `https`
+ protocol needs to be specified with both `ssl_cert`
+ and `ssl_key`.
+ enum:
+ - https
+ example: https
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTPS configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: >-
+
+ The PEM-formatted public SSL certificate (or the
+ combined PEM-formatted SSL certificate and
+ Certificate Authority chain) that should be served
+ on this NodeBalancerConfig's port.
+
+
+ Line breaks must be represented as `\n` in the
+ string for requests (but not when using the Linode
+ CLI).
+
+
+ [Diffie-Hellman
+ Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ can be included in this value to enable forward
+ secrecy.
+
+
+ The contents of this field will not be shown in any
+ responses that display the NodeBalancerConfig.
+ Instead, `` will be printed where the
+ field appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig response are
+ automatically derived from your certificate. Please
+ refer to these fields to verify that the appropriate
+ certificate was assigned to your NodeBalancerConfig.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name
+ automatically derived from the SSL certificate
+ assigned to this NodeBalancerConfig. Please refer to
+ this field to verify that the appropriate
+ certificate is assigned to your NodeBalancerConfig.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate
+ assigned to this NodeBalancer configuration. Please
+ refer to the `ssl_fingerprint` field to verify that
+ the appropriate certificate is assigned to your
+ NodeBalancer configuration.
+ example: >-
+ 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL
+ certificate set in the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the
+ string for requests (but not when using the Linode
+ CLI).
+
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will
+ be printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig
+
+ response are automatically derived from your
+ certificate. Please refer to these fields to
+
+ verify that the appropriate certificate was assigned
+ to your NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections will always be
+ assigned a backend based on the algorithm
+ configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows
+ sessions to be routed to the same backend based on a
+ cookie set by the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTPS
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-https.yaml
+ x-akamai:
+ file-path: schemas/node-balancer-config.yaml
+ - additionalProperties: false
+ properties:
+ nodes:
+ description: |-
+ The NodeBalancer nodes that serve this config.
+
+ Some considerations for Nodes when rebuilding a config:
+
+ - Current Nodes excluded from the request body will be deleted from the Config.
+ - Current Nodes (identified by their Node ID) will be updated.
+ - New Nodes (included without a Node ID) will be created.
+ items:
+ additionalProperties: false
+ description: NodeBalancer node request object including ID.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes within a
+ VPC. The following IP types are supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: The unique ID of the Node to update.
+ example: 54321
+ type: integer
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending
+ traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not receive
+ traffic.
+
+ - If set to `drain` this backend will not receive
+ _new_ traffic, but connections already pinned to
+ it will continue to be routed to it.
+
+ - If set to `backup`, this backend will only
+ receive traffic if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The VPC's
+ subnet. To display information about your VPCs and
+ their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and
+ is not pinned to a single backend yet. Nodes with
+ a higher weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ type: object
+ type: array
+ required:
+ - nodes
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-node-balancer-config.yaml
+ x-example:
+ x-ref: ../examples/post-node-balancer-config.json
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this NodeBalancer should use to route traffic
+ to backends.
+
+ - If set to `roundrobin`, connections are allocated in a
+ weighted circular order across the backends.
+
+ - If set to `leastconn`, allocates new connections to the
+ backend with the least connections.
+
+ - If set to `source`, allocates the client's IP to the same
+ backend on subsequent requests. Session `stickiness` affects
+ this algorithm.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to ensure
+ they're serving requests. This determines if backends are up
+ or down.
+
+ - If `none`, no check is performed.
+
+ - If `connection`, requires a successful TCP handshake with
+ a backend node.
+
+ - If `http`, requires a 2xx or 3xx response from the backend
+ node.
+
+ - If `http_body`, requires the provided regular expression
+ matches against the request's result body.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ The check's response body needs to include this value for it
+ to pass. Otherwise the backend is identified as being down.
+ example: it works
+ type: string
+ check_interval:
+ default: 31
+ description: >-
+ How often, in seconds, to check that backends are up and
+ serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered unhealthy
+ and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ doesn't respond to this request it's considered to be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt before
+ considering it failed. Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by this
+ NodeBalancer. The `legacy` cipher is considered insecure and
+ should only be used if necessary. For information on
+ recommended and legacy ciphers, see [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about the health of the backends
+ for this port. It's updated periodically as checks are
+ performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ `DOWN` and unhealthy. These are not in rotation, and
+ not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ `UP` and healthy, and that are serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ The port for this config. Ports need to be unique across
+ configs for each NodeBalancer. For example, you can't have
+ two configs for port 80. While some protocols are typically
+ assigned specific ports, there's no enforcement, and you can
+ configure your NodeBalancer however you find useful. For
+ example, while port 443 is generally used for HTTPS, you
+ don't need SSL configured to have a NodeBalancer listening
+ on port 443.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol this port is configured to serve.
+
+
+ - The `http` and `tcp` protocols don't support `ssl_cert`
+ and `ssl_key`.
+
+
+ - For the `https` protocol, you need `ssl_cert` and
+ `ssl_key`.
+
+
+ Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - http
+ - https
+ - tcp
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ ProxyProtocol is a TCP extension that sends initial TCP
+ connection information such as source IPs, destination IPs,
+ and ports to backend devices. This information would be lost
+ otherwise. Backend devices must be configured to work with
+ ProxyProtocol if enabled.
+
+
+ - If omitted or set to `none`, the NodeBalancer doesn't send
+ any auxiliary data over TCP connections. The default is
+ `none`.
+
+ - If set to `v1`, the human-readable header format (Version
+ 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version 2) is
+ used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: >-
+ The PEM-formatted public SSL certificate (or the combined
+ PEM-formatted SSL certificate and Certificate Authority
+ chain) that should be served on this NodeBalancer config's
+ port.
+
+
+ Line breaks must be represented as `\n` in the string for
+ API requests, but not when using the Linode CLI.
+
+
+ You can include [Diffie-Hellman
+ parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ in this value to enable forward secrecy.
+
+
+ The provided field don't appear in any responses that
+ display the NodeBalancer config. It's replaced with
+ ``.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint` fields
+ in a NodeBalancer config response are automatically derived
+ from your certificate. Please refer to these fields to
+ verify that the appropriate certificate was assigned to your
+ config.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name automatically
+ derived from the SSL certificate assigned to this
+ NodeBalancer config. Please refer to this field to verify
+ that the appropriate certificate is assigned to your config.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate assigned to
+ this NodeBalancer configuration. You can use the
+ `ssl_fingerprint` field to verify that the appropriate
+ certificate is assigned to your NodeBalancer configuration.
+ example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL certificate set in
+ the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the string for
+ API requests, but not when using the Linode CLI.
+
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will be
+ printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint` fields
+ in a NodeBalancerConfig
+
+ response are automatically derived from your certificate.
+ Please refer to these fields to
+
+ verify that the appropriate certificate was assigned to your
+ NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ Controls how session stickiness is handled on this port.
+
+ - If set to `none`, connections are always assigned a
+ backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote address
+ are routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows sessions
+ to be routed to the same backend based on a cookie set by
+ the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-cli.yaml
+ description: >-
+ NodeBalancer configuration details for the port based on the routing
+ protocol.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: NodeBalancer `config` options for each protocol.
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer configuration defines the protocol
+ and settings for a specific port on the NodeBalancer.
+ These fields apply to UDP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this UDP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - ring_hash
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of the
+ check in order for it to pass. If this value isn't
+ present in the response body of a check request, the
+ backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ description: __Read-only__ Must be `false` for UDP.
+ example: false
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 7
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ does not respond to this request, it's considered to
+ be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `udp` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 7000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `udp` in
+ this case. Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - udp
+ example: udp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ description: __Read-only__ Must be `none` for UDP.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for UPD configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: session
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections are assigned a backend
+ server based on the algorithm configured.
+
+ - If set to `session`, all packets with the same
+ session identifiers are routed to the same backend
+ server. Two packets are considered part of the same
+ session if they share the same source and destination
+ IP addresses or ports, and are received within a short
+ time window.
+
+ - If set to `source_ip`, the NodeBalancer uses the
+ client's source IP address to route all packets from
+ the same client to the same backend server.
+ enum:
+ - none
+ - session
+ - source_ip
+ example: none
+ type: string
+ x-linode-cli-display: 5
+ udp_check_port:
+ default: 80
+ description: >-
+ UDP NodeBalancers use TCP and HTTP active health
+ checks to ensure back-end nodes can receive traffic.
+ You can specify the health check port that the backend
+ node listens on, which may differ from the UDP port
+ used to serve traffic.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 6
+ udp_session_timeout:
+ default: 16
+ description: >-
+ __Read-only__ The maximum duration in seconds, a UDP
+ session can be idle before it is closed.
+ example: 2
+ maximum: 300
+ minimum: 1
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 11
+ required:
+ - nodes
+ title: UDP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-udp-response.yaml
+ status: BETA
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to TCP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this TCP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of the
+ check in order for it to pass. If this value is not
+ present in the response body of a check request, the
+ backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code is enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ does not respond to this request, it's considered to
+ be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `tcp` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 6000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 22
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `tcp` in
+ this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - tcp
+ example: tcp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ Proxy protocol is a TCP extension that sends initial
+ TCP connection information such as source or
+ destination IPs and ports to backend devices. Proxy
+ protocol preserves initial TCP information that would
+ be lost otherwise. Backend devices must be configured
+ to work with `proxy_protocol` if enabled.
+
+
+ - If omitted, or set to `none`, the NodeBalancer
+ doesn't send any auxiliary data over TCP connections.
+ This is the default.
+
+ - If set to `v1`, the human-readable header format
+ (Version 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version 2)
+ is used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ __Read-only__ Controls how session stickiness is
+ handled on this port.
+
+
+ Not applicable to TCP configurations.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: TCP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-tcp-response.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTP NodeBalancer uses for routing
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value needs to be in the response
+ body of the check in order for it to pass. Otherwise
+ the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `http` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers need to be unique across
+ TCP, HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced. You may
+ configure your NodeBalancer however you find useful.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `http`
+ in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - http
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections are always assigned a
+ backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote
+ address are routed to the same backend.
+
+ - If set to `http_cookie`, sessions are routed to the
+ same backend based on a cookie set by the
+ NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-http-response.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTPS configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTPS NodeBalancer uses for routing
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. The `check` is used
+ to determine if backends are up or down.
+
+
+ - If `none` no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value must be present in the
+ response body of the check in order for it to pass. If
+ this value is not present in the response body of a
+ check request, the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ The number of seconds between each check that backends
+ are up and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by this
+ NodeBalancer. The `legacy` cipher is considered
+ insecure and should only be used if necessary. For
+ information on recommended and legacy ciphers, see
+ [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 5000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 443
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `https`
+ in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features. The `https`
+ protocol needs to be specified with both `ssl_cert`
+ and `ssl_key`.
+ enum:
+ - https
+ example: https
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTPS configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: >-
+
+ The PEM-formatted public SSL certificate (or the
+ combined PEM-formatted SSL certificate and Certificate
+ Authority chain) that should be served on this
+ NodeBalancerConfig's port.
+
+
+ Line breaks must be represented as `\n` in the string
+ for requests (but not when using the Linode CLI).
+
+
+ [Diffie-Hellman
+ Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ can be included in this value to enable forward
+ secrecy.
+
+
+ The contents of this field will not be shown in any
+ responses that display the NodeBalancerConfig.
+ Instead, `` will be printed where the field
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig response are
+ automatically derived from your certificate. Please
+ refer to these fields to verify that the appropriate
+ certificate was assigned to your NodeBalancerConfig.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name automatically
+ derived from the SSL certificate assigned to this
+ NodeBalancerConfig. Please refer to this field to
+ verify that the appropriate certificate is assigned to
+ your NodeBalancerConfig.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate
+ assigned to this NodeBalancer configuration. Please
+ refer to the `ssl_fingerprint` field to verify that
+ the appropriate certificate is assigned to your
+ NodeBalancer configuration.
+ example: >-
+ 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL certificate
+ set in the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the string
+ for requests (but not when using the Linode CLI).
+
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will be
+ printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig
+
+ response are automatically derived from your
+ certificate. Please refer to these fields to
+
+ verify that the appropriate certificate was assigned
+ to your NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections will always be
+ assigned a backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows
+ sessions to be routed to the same backend based on a
+ cookie set by the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTPS
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-https-response.yaml
+ x-akamai:
+ file-path: schemas/node-balancer-config-response.yaml
+ x-example:
+ x-ref: ../examples/post-node-balancer-config-200.json
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this NodeBalancer should use to route
+ traffic to backends.
+
+ - If set to `roundrobin`, connections are allocated in a
+ weighted circular order across the backends.
+
+ - If set to `leastconn`, allocates new connections to the
+ backend with the least connections.
+
+ - If set to `source`, allocates the client's IP to the
+ same backend on subsequent requests. Session `stickiness`
+ affects this algorithm.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to ensure
+ they're serving requests. This determines if backends are
+ up or down.
+
+ - If `none`, no check is performed.
+
+ - If `connection`, requires a successful TCP handshake
+ with a backend node.
+
+ - If `http`, requires a 2xx or 3xx response from the
+ backend node.
+
+ - If `http_body`, requires the provided regular expression
+ matches against the request's result body.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ The check's response body needs to include this value for
+ it to pass. Otherwise the backend is identified as being
+ down.
+ example: it works
+ type: string
+ check_interval:
+ default: 31
+ description: >-
+ How often, in seconds, to check that backends are up and
+ serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ doesn't respond to this request it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt before
+ considering it failed. Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by this
+ NodeBalancer. The `legacy` cipher is considered insecure
+ and should only be used if necessary. For information on
+ recommended and legacy ciphers, see [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about the health of the backends
+ for this port. It's updated periodically as checks are
+ performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ `DOWN` and unhealthy. These are not in rotation, and
+ not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ `UP` and healthy, and that are serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ The port for this config. Ports need to be unique across
+ configs for each NodeBalancer. For example, you can't have
+ two configs for port 80. While some protocols are
+ typically assigned specific ports, there's no enforcement,
+ and you can configure your NodeBalancer however you find
+ useful. For example, while port 443 is generally used for
+ HTTPS, you don't need SSL configured to have a
+ NodeBalancer listening on port 443.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol this port is configured to serve.
+
+
+ - The `http` and `tcp` protocols don't support `ssl_cert`
+ and `ssl_key`.
+
+
+ - For the `https` protocol, you need `ssl_cert` and
+ `ssl_key`.
+
+
+ Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - http
+ - https
+ - tcp
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ ProxyProtocol is a TCP extension that sends initial TCP
+ connection information such as source IPs, destination
+ IPs, and ports to backend devices. This information would
+ be lost otherwise. Backend devices must be configured to
+ work with ProxyProtocol if enabled.
+
+
+ - If omitted or set to `none`, the NodeBalancer doesn't
+ send any auxiliary data over TCP connections. The default
+ is `none`.
+
+ - If set to `v1`, the human-readable header format
+ (Version 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version 2) is
+ used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: >-
+ The PEM-formatted public SSL certificate (or the combined
+ PEM-formatted SSL certificate and Certificate Authority
+ chain) that should be served on this NodeBalancer config's
+ port.
+
+
+ Line breaks must be represented as `\n` in the string for
+ API requests, but not when using the Linode CLI.
+
+
+ You can include [Diffie-Hellman
+ parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ in this value to enable forward secrecy.
+
+
+ The provided field don't appear in any responses that
+ display the NodeBalancer config. It's replaced with
+ ``.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancer config response are automatically
+ derived from your certificate. Please refer to these
+ fields to verify that the appropriate certificate was
+ assigned to your config.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name automatically
+ derived from the SSL certificate assigned to this
+ NodeBalancer config. Please refer to this field to verify
+ that the appropriate certificate is assigned to your
+ config.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate assigned to
+ this NodeBalancer configuration. You can use the
+ `ssl_fingerprint` field to verify that the appropriate
+ certificate is assigned to your NodeBalancer
+ configuration.
+ example: >-
+ 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL certificate set
+ in the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the string for
+ API requests, but not when using the Linode CLI.
+
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will be
+ printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig
+
+ response are automatically derived from your certificate.
+ Please refer to these fields to
+
+ verify that the appropriate certificate was assigned to
+ your NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ Controls how session stickiness is handled on this port.
+
+ - If set to `none`, connections are always assigned a
+ backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote address
+ are routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows sessions
+ to be routed to the same backend based on a cookie set by
+ the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-cli.yaml
+ description: Config created successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_write
+ summary: Create a config
+ tags:
+ - Configurations
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli nodebalancers config-create 12345 \
+ --port 443 \
+ --protocol https \
+ --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 "none" \
+ --ssl_cert "-----BEGIN CERTIFICATE-----
+ CERTIFICATE_INFORMATION
+ -----END CERTIFICATE-----" \
+ --ssl_key "-----BEGIN PRIVATE KEY-----
+ PRIVATE_KEY_INFORMATION
+ -----END PRIVATE KEY-----" \
+ --cipher_suite recommended
+ title: 'CLI: HTTPS'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ linode-cli nodebalancers config-create 12345 \
+ --port 80 \
+ --protocol udp \
+ --algorithm ring_hash \
+ --stickiness session \
+ --check http_body \
+ --check_interval 90 \
+ --check_timeout 10 \
+ --check_attempts 3 \
+ --check_path "/test" \
+ --check_body "it works" \
+ --udp_check_port 80
+ title: 'CLI: UDP'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ linode-cli nodebalancers config-create 12345 \
+ --port 80 \
+ --protocol tcp \
+ --algorithm roundrobin \
+ --stickiness none \
+ --check http_body \
+ --check_interval 90 \
+ --check_timeout 10 \
+ --check_attempts 3 \
+ --check_path "/test" \
+ --check_body "it works" \
+ --proxy_protocol "v2"
+ title: 'CLI: TCP'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ linode-cli nodebalancers config-create 12345 \
+ --port 440 \
+ --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"
+ title: 'CLI: HTTP'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: config-create
+ x-linode-grant: read_write
+ get:
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-node-balancer-configs
+ operationId: get-node-balancer-configs
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: NodeBalancer `config` options for each protocol.
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer configuration defines the protocol
+ and settings for a specific port on the NodeBalancer.
+ These fields apply to UDP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this UDP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - ring_hash
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of the
+ check in order for it to pass. If this value isn't
+ present in the response body of a check request, the
+ backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ description: __Read-only__ Must be `false` for UDP.
+ example: false
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 7
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ does not respond to this request, it's considered to
+ be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `udp` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 7000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `udp` in
+ this case. Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - udp
+ example: udp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ description: __Read-only__ Must be `none` for UDP.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for UPD configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: session
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections are assigned a backend
+ server based on the algorithm configured.
+
+ - If set to `session`, all packets with the same
+ session identifiers are routed to the same backend
+ server. Two packets are considered part of the same
+ session if they share the same source and destination
+ IP addresses or ports, and are received within a short
+ time window.
+
+ - If set to `source_ip`, the NodeBalancer uses the
+ client's source IP address to route all packets from
+ the same client to the same backend server.
+ enum:
+ - none
+ - session
+ - source_ip
+ example: none
+ type: string
+ x-linode-cli-display: 5
+ udp_check_port:
+ default: 80
+ description: >-
+ UDP NodeBalancers use TCP and HTTP active health
+ checks to ensure back-end nodes can receive traffic.
+ You can specify the health check port that the backend
+ node listens on, which may differ from the UDP port
+ used to serve traffic.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 6
+ udp_session_timeout:
+ default: 16
+ description: >-
+ __Read-only__ The maximum duration in seconds, a UDP
+ session can be idle before it is closed.
+ example: 2
+ maximum: 300
+ minimum: 1
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 11
+ required:
+ - nodes
+ title: UDP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-udp-response.yaml
+ status: BETA
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to TCP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this TCP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of the
+ check in order for it to pass. If this value is not
+ present in the response body of a check request, the
+ backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code is enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ does not respond to this request, it's considered to
+ be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `tcp` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 6000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 22
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `tcp` in
+ this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - tcp
+ example: tcp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ Proxy protocol is a TCP extension that sends initial
+ TCP connection information such as source or
+ destination IPs and ports to backend devices. Proxy
+ protocol preserves initial TCP information that would
+ be lost otherwise. Backend devices must be configured
+ to work with `proxy_protocol` if enabled.
+
+
+ - If omitted, or set to `none`, the NodeBalancer
+ doesn't send any auxiliary data over TCP connections.
+ This is the default.
+
+ - If set to `v1`, the human-readable header format
+ (Version 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version 2)
+ is used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ __Read-only__ Controls how session stickiness is
+ handled on this port.
+
+
+ Not applicable to TCP configurations.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: TCP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-tcp-response.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTP NodeBalancer uses for routing
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value needs to be in the response
+ body of the check in order for it to pass. Otherwise
+ the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `http` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers need to be unique across
+ TCP, HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced. You may
+ configure your NodeBalancer however you find useful.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `http`
+ in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - http
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections are always assigned a
+ backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote
+ address are routed to the same backend.
+
+ - If set to `http_cookie`, sessions are routed to the
+ same backend based on a cookie set by the
+ NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-http-response.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTPS configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTPS NodeBalancer uses for routing
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. The `check` is used
+ to determine if backends are up or down.
+
+
+ - If `none` no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value must be present in the
+ response body of the check in order for it to pass. If
+ this value is not present in the response body of a
+ check request, the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ The number of seconds between each check that backends
+ are up and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by this
+ NodeBalancer. The `legacy` cipher is considered
+ insecure and should only be used if necessary. For
+ information on recommended and legacy ciphers, see
+ [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 5000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 443
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `https`
+ in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features. The `https`
+ protocol needs to be specified with both `ssl_cert`
+ and `ssl_key`.
+ enum:
+ - https
+ example: https
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTPS configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: >-
+
+ The PEM-formatted public SSL certificate (or the
+ combined PEM-formatted SSL certificate and Certificate
+ Authority chain) that should be served on this
+ NodeBalancerConfig's port.
+
+
+ Line breaks must be represented as `\n` in the string
+ for requests (but not when using the Linode CLI).
+
+
+ [Diffie-Hellman
+ Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ can be included in this value to enable forward
+ secrecy.
+
+
+ The contents of this field will not be shown in any
+ responses that display the NodeBalancerConfig.
+ Instead, `` will be printed where the field
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig response are
+ automatically derived from your certificate. Please
+ refer to these fields to verify that the appropriate
+ certificate was assigned to your NodeBalancerConfig.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name automatically
+ derived from the SSL certificate assigned to this
+ NodeBalancerConfig. Please refer to this field to
+ verify that the appropriate certificate is assigned to
+ your NodeBalancerConfig.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate
+ assigned to this NodeBalancer configuration. Please
+ refer to the `ssl_fingerprint` field to verify that
+ the appropriate certificate is assigned to your
+ NodeBalancer configuration.
+ example: >-
+ 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL certificate
+ set in the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the string
+ for requests (but not when using the Linode CLI).
+
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will be
+ printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig
+
+ response are automatically derived from your
+ certificate. Please refer to these fields to
+
+ verify that the appropriate certificate was assigned
+ to your NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections will always be
+ assigned a backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows
+ sessions to be routed to the same backend based on a
+ cookie set by the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTPS
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-https-response.yaml
+ x-akamai:
+ file-path: schemas/node-balancer-config-response.yaml
+ x-example:
+ x-ref: ../examples/get-node-balancer-configs-200.json
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this NodeBalancer should use to route
+ traffic to backends.
+
+ - If set to `roundrobin`, connections are allocated in a
+ weighted circular order across the backends.
+
+ - If set to `leastconn`, allocates new connections to the
+ backend with the least connections.
+
+ - If set to `source`, allocates the client's IP to the
+ same backend on subsequent requests. Session `stickiness`
+ affects this algorithm.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to ensure
+ they're serving requests. This determines if backends are
+ up or down.
+
+ - If `none`, no check is performed.
+
+ - If `connection`, requires a successful TCP handshake
+ with a backend node.
+
+ - If `http`, requires a 2xx or 3xx response from the
+ backend node.
+
+ - If `http_body`, requires the provided regular expression
+ matches against the request's result body.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ The check's response body needs to include this value for
+ it to pass. Otherwise the backend is identified as being
+ down.
+ example: it works
+ type: string
+ check_interval:
+ default: 31
+ description: >-
+ How often, in seconds, to check that backends are up and
+ serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ doesn't respond to this request it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt before
+ considering it failed. Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by this
+ NodeBalancer. The `legacy` cipher is considered insecure
+ and should only be used if necessary. For information on
+ recommended and legacy ciphers, see [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about the health of the backends
+ for this port. It's updated periodically as checks are
+ performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ `DOWN` and unhealthy. These are not in rotation, and
+ not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ `UP` and healthy, and that are serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ The port for this config. Ports need to be unique across
+ configs for each NodeBalancer. For example, you can't have
+ two configs for port 80. While some protocols are
+ typically assigned specific ports, there's no enforcement,
+ and you can configure your NodeBalancer however you find
+ useful. For example, while port 443 is generally used for
+ HTTPS, you don't need SSL configured to have a
+ NodeBalancer listening on port 443.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol this port is configured to serve.
+
+
+ - The `http` and `tcp` protocols don't support `ssl_cert`
+ and `ssl_key`.
+
+
+ - For the `https` protocol, you need `ssl_cert` and
+ `ssl_key`.
+
+
+ Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - http
+ - https
+ - tcp
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ ProxyProtocol is a TCP extension that sends initial TCP
+ connection information such as source IPs, destination
+ IPs, and ports to backend devices. This information would
+ be lost otherwise. Backend devices must be configured to
+ work with ProxyProtocol if enabled.
+
+
+ - If omitted or set to `none`, the NodeBalancer doesn't
+ send any auxiliary data over TCP connections. The default
+ is `none`.
+
+ - If set to `v1`, the human-readable header format
+ (Version 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version 2) is
+ used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: >-
+ The PEM-formatted public SSL certificate (or the combined
+ PEM-formatted SSL certificate and Certificate Authority
+ chain) that should be served on this NodeBalancer config's
+ port.
+
+
+ Line breaks must be represented as `\n` in the string for
+ API requests, but not when using the Linode CLI.
+
+
+ You can include [Diffie-Hellman
+ parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ in this value to enable forward secrecy.
+
+
+ The provided field don't appear in any responses that
+ display the NodeBalancer config. It's replaced with
+ ``.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancer config response are automatically
+ derived from your certificate. Please refer to these
+ fields to verify that the appropriate certificate was
+ assigned to your config.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name automatically
+ derived from the SSL certificate assigned to this
+ NodeBalancer config. Please refer to this field to verify
+ that the appropriate certificate is assigned to your
+ config.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate assigned to
+ this NodeBalancer configuration. You can use the
+ `ssl_fingerprint` field to verify that the appropriate
+ certificate is assigned to your NodeBalancer
+ configuration.
+ example: >-
+ 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL certificate set
+ in the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the string for
+ API requests, but not when using the Linode CLI.
+
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will be
+ printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig
+
+ response are automatically derived from your certificate.
+ Please refer to these fields to
+
+ verify that the appropriate certificate was assigned to
+ your NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ Controls how session stickiness is handled on this port.
+
+ - If set to `none`, connections are always assigned a
+ backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote address
+ are routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows sessions
+ to be routed to the same backend based on a cookie set by
+ the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-cli.yaml
+ description: A paginated list of NodeBalancer Configs.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_only
+ summary: List configs
+ tags:
+ - Configurations
+ x-akamai:
+ tabs:
+ - syntax: linode-cli nodebalancers configs-list 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: configs-list
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the NodeBalancer.
+ example: '{{nodeBalancerId}}'
+ in: path
+ name: nodeBalancerId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/node-balancer-id.yaml
+ x-akamai:
+ file-path: paths/node-balancer-configs.yaml
+ path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs
+ x-linode-cli-command: nodebalancers
+ /nodebalancers/{nodeBalancerId}/configs/{configId}:
+ get:
+ description: >-
+ Returns configuration information for a single port of this
+ NodeBalancer.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-node-balancer-config
+ operationId: get-node-balancer-config
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: NodeBalancer `config` options for each protocol.
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer configuration defines the protocol
+ and settings for a specific port on the NodeBalancer.
+ These fields apply to UDP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this UDP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - ring_hash
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of the
+ check in order for it to pass. If this value isn't
+ present in the response body of a check request, the
+ backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ description: __Read-only__ Must be `false` for UDP.
+ example: false
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 7
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ does not respond to this request, it's considered to
+ be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `udp` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 7000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `udp` in
+ this case. Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - udp
+ example: udp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ description: __Read-only__ Must be `none` for UDP.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for UPD configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: session
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections are assigned a backend
+ server based on the algorithm configured.
+
+ - If set to `session`, all packets with the same
+ session identifiers are routed to the same backend
+ server. Two packets are considered part of the same
+ session if they share the same source and destination
+ IP addresses or ports, and are received within a short
+ time window.
+
+ - If set to `source_ip`, the NodeBalancer uses the
+ client's source IP address to route all packets from
+ the same client to the same backend server.
+ enum:
+ - none
+ - session
+ - source_ip
+ example: none
+ type: string
+ x-linode-cli-display: 5
+ udp_check_port:
+ default: 80
+ description: >-
+ UDP NodeBalancers use TCP and HTTP active health
+ checks to ensure back-end nodes can receive traffic.
+ You can specify the health check port that the backend
+ node listens on, which may differ from the UDP port
+ used to serve traffic.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 6
+ udp_session_timeout:
+ default: 16
+ description: >-
+ __Read-only__ The maximum duration in seconds, a UDP
+ session can be idle before it is closed.
+ example: 2
+ maximum: 300
+ minimum: 1
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 11
+ required:
+ - nodes
+ title: UDP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-udp-response.yaml
+ status: BETA
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to TCP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this TCP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of the
+ check in order for it to pass. If this value is not
+ present in the response body of a check request, the
+ backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code is enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ does not respond to this request, it's considered to
+ be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `tcp` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 6000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 22
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `tcp` in
+ this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - tcp
+ example: tcp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ Proxy protocol is a TCP extension that sends initial
+ TCP connection information such as source or
+ destination IPs and ports to backend devices. Proxy
+ protocol preserves initial TCP information that would
+ be lost otherwise. Backend devices must be configured
+ to work with `proxy_protocol` if enabled.
+
+
+ - If omitted, or set to `none`, the NodeBalancer
+ doesn't send any auxiliary data over TCP connections.
+ This is the default.
+
+ - If set to `v1`, the human-readable header format
+ (Version 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version 2)
+ is used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ __Read-only__ Controls how session stickiness is
+ handled on this port.
+
+
+ Not applicable to TCP configurations.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: TCP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-tcp-response.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTP NodeBalancer uses for routing
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value needs to be in the response
+ body of the check in order for it to pass. Otherwise
+ the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `http` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers need to be unique across
+ TCP, HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced. You may
+ configure your NodeBalancer however you find useful.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `http`
+ in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - http
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections are always assigned a
+ backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote
+ address are routed to the same backend.
+
+ - If set to `http_cookie`, sessions are routed to the
+ same backend based on a cookie set by the
+ NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-http-response.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTPS configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTPS NodeBalancer uses for routing
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. The `check` is used
+ to determine if backends are up or down.
+
+
+ - If `none` no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value must be present in the
+ response body of the check in order for it to pass. If
+ this value is not present in the response body of a
+ check request, the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ The number of seconds between each check that backends
+ are up and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by this
+ NodeBalancer. The `legacy` cipher is considered
+ insecure and should only be used if necessary. For
+ information on recommended and legacy ciphers, see
+ [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 5000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 443
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `https`
+ in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features. The `https`
+ protocol needs to be specified with both `ssl_cert`
+ and `ssl_key`.
+ enum:
+ - https
+ example: https
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTPS configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: >-
+
+ The PEM-formatted public SSL certificate (or the
+ combined PEM-formatted SSL certificate and Certificate
+ Authority chain) that should be served on this
+ NodeBalancerConfig's port.
+
+
+ Line breaks must be represented as `\n` in the string
+ for requests (but not when using the Linode CLI).
+
+
+ [Diffie-Hellman
+ Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ can be included in this value to enable forward
+ secrecy.
+
+
+ The contents of this field will not be shown in any
+ responses that display the NodeBalancerConfig.
+ Instead, `` will be printed where the field
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig response are
+ automatically derived from your certificate. Please
+ refer to these fields to verify that the appropriate
+ certificate was assigned to your NodeBalancerConfig.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name automatically
+ derived from the SSL certificate assigned to this
+ NodeBalancerConfig. Please refer to this field to
+ verify that the appropriate certificate is assigned to
+ your NodeBalancerConfig.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate
+ assigned to this NodeBalancer configuration. Please
+ refer to the `ssl_fingerprint` field to verify that
+ the appropriate certificate is assigned to your
+ NodeBalancer configuration.
+ example: >-
+ 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL certificate
+ set in the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the string
+ for requests (but not when using the Linode CLI).
+
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will be
+ printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig
+
+ response are automatically derived from your
+ certificate. Please refer to these fields to
+
+ verify that the appropriate certificate was assigned
+ to your NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections will always be
+ assigned a backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows
+ sessions to be routed to the same backend based on a
+ cookie set by the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTPS
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-https-response.yaml
+ x-akamai:
+ file-path: schemas/node-balancer-config-response.yaml
+ x-example:
+ x-ref: ../examples/get-node-balancer-config-200.json
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this NodeBalancer should use to route
+ traffic to backends.
+
+ - If set to `roundrobin`, connections are allocated in a
+ weighted circular order across the backends.
+
+ - If set to `leastconn`, allocates new connections to the
+ backend with the least connections.
+
+ - If set to `source`, allocates the client's IP to the
+ same backend on subsequent requests. Session `stickiness`
+ affects this algorithm.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to ensure
+ they're serving requests. This determines if backends are
+ up or down.
+
+ - If `none`, no check is performed.
+
+ - If `connection`, requires a successful TCP handshake
+ with a backend node.
+
+ - If `http`, requires a 2xx or 3xx response from the
+ backend node.
+
+ - If `http_body`, requires the provided regular expression
+ matches against the request's result body.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ The check's response body needs to include this value for
+ it to pass. Otherwise the backend is identified as being
+ down.
+ example: it works
+ type: string
+ check_interval:
+ default: 31
+ description: >-
+ How often, in seconds, to check that backends are up and
+ serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ doesn't respond to this request it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt before
+ considering it failed. Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by this
+ NodeBalancer. The `legacy` cipher is considered insecure
+ and should only be used if necessary. For information on
+ recommended and legacy ciphers, see [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about the health of the backends
+ for this port. It's updated periodically as checks are
+ performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ `DOWN` and unhealthy. These are not in rotation, and
+ not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ `UP` and healthy, and that are serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ The port for this config. Ports need to be unique across
+ configs for each NodeBalancer. For example, you can't have
+ two configs for port 80. While some protocols are
+ typically assigned specific ports, there's no enforcement,
+ and you can configure your NodeBalancer however you find
+ useful. For example, while port 443 is generally used for
+ HTTPS, you don't need SSL configured to have a
+ NodeBalancer listening on port 443.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol this port is configured to serve.
+
+
+ - The `http` and `tcp` protocols don't support `ssl_cert`
+ and `ssl_key`.
+
+
+ - For the `https` protocol, you need `ssl_cert` and
+ `ssl_key`.
+
+
+ Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - http
+ - https
+ - tcp
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ ProxyProtocol is a TCP extension that sends initial TCP
+ connection information such as source IPs, destination
+ IPs, and ports to backend devices. This information would
+ be lost otherwise. Backend devices must be configured to
+ work with ProxyProtocol if enabled.
+
+
+ - If omitted or set to `none`, the NodeBalancer doesn't
+ send any auxiliary data over TCP connections. The default
+ is `none`.
+
+ - If set to `v1`, the human-readable header format
+ (Version 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version 2) is
+ used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: >-
+ The PEM-formatted public SSL certificate (or the combined
+ PEM-formatted SSL certificate and Certificate Authority
+ chain) that should be served on this NodeBalancer config's
+ port.
+
+
+ Line breaks must be represented as `\n` in the string for
+ API requests, but not when using the Linode CLI.
+
+
+ You can include [Diffie-Hellman
+ parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ in this value to enable forward secrecy.
+
+
+ The provided field don't appear in any responses that
+ display the NodeBalancer config. It's replaced with
+ ``.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancer config response are automatically
+ derived from your certificate. Please refer to these
+ fields to verify that the appropriate certificate was
+ assigned to your config.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name automatically
+ derived from the SSL certificate assigned to this
+ NodeBalancer config. Please refer to this field to verify
+ that the appropriate certificate is assigned to your
+ config.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate assigned to
+ this NodeBalancer configuration. You can use the
+ `ssl_fingerprint` field to verify that the appropriate
+ certificate is assigned to your NodeBalancer
+ configuration.
+ example: >-
+ 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL certificate set
+ in the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the string for
+ API requests, but not when using the Linode CLI.
+
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will be
+ printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig
+
+ response are automatically derived from your certificate.
+ Please refer to these fields to
+
+ verify that the appropriate certificate was assigned to
+ your NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ Controls how session stickiness is handled on this port.
+
+ - If set to `none`, connections are always assigned a
+ backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote address
+ are routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows sessions
+ to be routed to the same backend based on a cookie set by
+ the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-cli.yaml
+ description: The requested NodeBalancer config.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_only
+ summary: Get a config
+ tags:
+ - Configurations
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli nodebalancers config-view \
+ 12345 4567
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: config-view
+ x-linode-grant: read_only
+ put:
+ description: >-
+ Updates the configuration for a single port on a NodeBalancer.
+
+
+ > 🚧
+
+ >
+
+ > You can configure UDP on the same NodeBalancer that also uses TCP,
+ HTTP, or HTTPS, but only when managing it through the API. If UDP is
+ configured and you make changes to the TCP, HTTP or HTTPS settings in
+ Cloud Manager, the existing UDP configuration will be overwritten. This
+ is because Cloud Manager doesn't currently support UDP. __CLI: HTTPS__.
+
+ ```
+ linode-cli nodebalancers config-update \
+ 12345 4567 \
+ --port 443 \
+ --protocol https \
+ --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 "none" \
+ --ssl_cert "-----BEGIN CERTIFICATE-----
+ CERTIFICATE_INFORMATION
+ -----END CERTIFICATE-----" \
+ --ssl_key "-----BEGIN PRIVATE KEY-----
+ PRIVATE_KEY_INFORMATION
+ -----END PRIVATE KEY-----" \
+ --cipher_suite recommended
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ - __CLI: UDP__.
+
+ ```
+ linode-cli nodebalancers config-update \
+ 12345 4567 \
+ --port 80 \
+ --protocol udp \
+ --algorithm ring_hash \
+ --stickiness session \
+ --check http_body \
+ --check_interval 90 \
+ --check_timeout 10 \
+ --check_attempts 3 \
+ --check_path "/test" \
+ --check_body "it works" \
+ --udp_check_port 80
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ - __CLI: TCP__.
+
+ ```
+ linode-cli nodebalancers config-update \
+ 12345 4567 \
+ --port 80 \
+ --protocol tcp \
+ --algorithm roundrobin \
+ --stickiness none \
+ --stickiness http_cookie \
+ --check http_body \
+ --check_interval 90 \
+ --check_timeout 10 \
+ --check_attempts 3 \
+ --check_path "/test" \
+ --check_body "it works" \
+ --proxy_protocol "v2"
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ - __CLI: HTTP__.
+
+ ```
+ linode-cli nodebalancers config-update \
+ 12345 4567 \
+ --port 440 \
+ --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"
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/put-node-balancer-config
+ operationId: put-node-balancer-config
+ requestBody:
+ content:
+ application/json:
+ schema:
+ description: NodeBalancer `config` options for each protocol.
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer configuration defines the protocol
+ and settings for a specific port on the NodeBalancer. These
+ fields apply to UDP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this UDP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - ring_hash
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to ensure
+ they're serving requests. This determines if backends
+ are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the backend
+ to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the check's response body
+ for it to pass. Otherwise the backend is considered to
+ be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ Number of seconds between checks to verify that backends
+ are up and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ description: __Read-only__ Must be `false` for UDP.
+ example: false
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 8
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ does not respond to this request, it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ Number of seconds to wait for a check attempt before
+ considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 7000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks are
+ performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These aren't in rotation,
+ and aren't serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, currently serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 11
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single NodeBalancer.
+ However, ports assigned to TCP, HTTP, or HTTPS
+ configurations can also be reused for UDP
+ configurations. For example, Port 80 can simultaneously
+ serve a TCP and a UDP configuration on the same
+ NodeBalancer, but it can't be shared by both a TCP and
+ an HTTP configuration. Although certain ports are
+ traditionally assigned specific protocols, this isn't
+ strictly enforced, and you may configure your
+ NodeBalancer however you find useful.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `udp` in
+ this case.
+
+
+ Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - udp
+ example: udp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ description: __Read-only__ Must be `none` for UDP.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for UPD configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 10
+ ssl_key:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: session
+ description: >-
+ Controls how session stickiness is handled on this port:
+
+
+ - If set to `none`, connections are assigned a back-end
+ server based on the algorithm configured.
+
+ - If set to `session`, all packets with the same session
+ identifiers are routed to the same backend server. Two
+ packets are considered part of the same session if they
+ share the same source and destination IP addresses or
+ ports, and are received within a short time window.
+
+ - If set to `source_ip`, the NodeBalancer uses the
+ client's source IP address to route all packets from the
+ same client to the same backend server.
+ enum:
+ - none
+ - session
+ - source_ip
+ example: none
+ type: string
+ x-linode-cli-display: 5
+ udp_check_port:
+ default: 80
+ description: >-
+ UDP NodeBalancers use TCP and HTTP active health checks
+ to ensure back-end nodes can receive traffic. You can
+ specify the health check port that the backend node
+ listens on, which may differ from the UDP port used to
+ serve traffic.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 6
+ udp_session_timeout:
+ default: 16
+ description: >-
+ __Read-only__ The maximum number of seconds a UDP
+ session can be idle before it's closed.
+ example: 2
+ maximum: 300
+ minimum: 1
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 12
+ title: UDP
+ type: object
+ x-akamai:
+ file-path: schemas/config-udp.yaml
+ status: BETA
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to TCP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this TCP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to ensure
+ they are serving requests. The `check` is used to
+ determine if backends are up or down.
+
+
+ - Setting this to `none` skips the check.
+
+ - `connection` requires only a connection to the backend
+ to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of the
+ check in order for it to pass. If this value is not
+ present in the response body of a check request, the
+ backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ Number of seconds between checks to verify that backends
+ are up and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ does not respond to this request it is considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ Number of seconds to wait for a check attempt before
+ considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 6000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks are
+ performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These aren't in rotation,
+ and aren't serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, currently serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single NodeBalancer.
+ However, ports assigned to TCP, HTTP, or HTTPS
+ configurations can also be reused for UDP
+ configurations. For example, Port 80 can simultaneously
+ serve a TCP and a UDP configuration on the same
+ NodeBalancer, but it can't be shared by both a TCP and
+ an HTTP configuration. Although certain ports are
+ traditionally assigned specific protocols, this isn't
+ strictly enforced, and you may configure your
+ NodeBalancer however you find useful.
+ example: 22
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `tcp` in
+ this case.
+
+
+ Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - tcp
+ example: tcp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ Proxy protocol is a TCP extension that sends initial TCP
+ connection information such as source or destination IPs
+ and ports to backend devices. Proxy protocol preserves
+ initial TCP information that would be lost otherwise.
+ Backend devices must be configured to work with
+ `proxy_protocol` if enabled.
+
+
+ - If omitted, or set to `none`, the NodeBalancer doesn't
+ send any auxiliary data over TCP connections. This is
+ the default.
+
+ - If set to `v1`, the human-readable header format
+ (Version 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version 2)
+ is used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ __Read-only__ Controls how session stickiness is handled
+ on this port:
+
+
+ - If set to `none`, connections will always be assigned
+ a backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+ enum:
+ - none
+ - table
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ title: TCP
+ type: object
+ x-akamai:
+ file-path: schemas/config-tcp.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTP NodeBalancer uses for routing
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to ensure
+ they're serving requests. This determines if backends
+ are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the backend
+ to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is `http_body`.
+ This value must be present in the response body of the
+ check in order for it to pass. If this value is not
+ present in the response body of a check request, the
+ backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ Number of seconds between checks to verify that backends
+ are up and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ Number of seconds to wait for a check attempt before
+ considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: recommended
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks are
+ performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These aren't in rotation,
+ and aren't serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, currently serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers need to be unique across
+ TCP, HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can simultaneously
+ serve a TCP and a UDP configuration on the same
+ NodeBalancer, but it can't be shared by both a TCP and
+ an HTTP configuration. Although certain ports are
+ traditionally assigned specific protocols, this isn't
+ strictly enforced. You may configure your NodeBalancer
+ however you find useful.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `http` in
+ this case.
+
+
+ Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - http
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this port:
+
+
+ - If set to `none`, connections will always be assigned
+ a backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+
+ - If set to `http_cookie`, sessions are routed to the
+ same backend based on a cookie set by the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ title: HTTP
+ type: object
+ x-akamai:
+ file-path: schemas/config-http.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTPS configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTPS NodeBalancer uses for routing
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to ensure
+ they are serving requests. The `check` is used to
+ determine if backends are up or down.
+
+
+ - Setting this to `none` skips the check.
+
+ - `connection` requires only a connection to the backend
+ to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is `http_body`.
+ This value must be present in the response body of the
+ check in order for it to pass. If this value is not
+ present in the response body of a check request, the
+ backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ Number of seconds between checks to verify that backends
+ are up and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ Number of seconds to wait for a check attempt before
+ considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by this
+ NodeBalancer.
+
+
+ - `legacy` is considered insecure and should only be
+ used if necessary.
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 5000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks are
+ performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These aren't in rotation,
+ and aren't serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, currently serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single NodeBalancer.
+ However, ports assigned to TCP, HTTP, or HTTPS
+ configurations can also be reused for UDP
+ configurations. For example, Port 80 can simultaneously
+ serve a TCP and a UDP configuration on the same
+ NodeBalancer, but it can't be shared by both a TCP and
+ an HTTP configuration. Although certain ports are
+ traditionally assigned specific protocols, this isn't
+ strictly enforced, and you may configure your
+ NodeBalancer however you find useful.
+ example: 443
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `https` in
+ this case.
+
+
+ - The `https` protocol is mutually required with
+ `ssl_cert` and `ssl_key`.
+
+
+ Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - https
+ example: https
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTPS configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: >-
+ The PEM-formatted public SSL certificate (or the
+ combined PEM-formatted SSL certificate and Certificate
+ Authority chain) that should be served on this
+ NodeBalancerConfig's port.
+
+
+ Line breaks must be represented as `\n` in the string
+ for requests (but not when using the Linode CLI).
+
+
+ [Diffie-Hellman
+ Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ can be included in this value to enable forward secrecy.
+
+
+ The contents of this field will not be shown in any
+ responses that display the NodeBalancerConfig. Instead,
+ `` will be printed where the field appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig response are
+ automatically derived from your certificate. Please
+ refer to these fields to verify that the appropriate
+ certificate was assigned to your NodeBalancerConfig.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name automatically
+ derived from the SSL certificate assigned to this
+ NodeBalancerConfig. Please refer to this field to verify
+ that the appropriate certificate is assigned to your
+ NodeBalancerConfig.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate assigned
+ to this NodeBalancer configuration. Please refer to the
+ `ssl_fingerprint` field to verify that the appropriate
+ certificate is assigned to your NodeBalancer
+ configuration.
+ example: >-
+ 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL certificate
+ set in the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the string
+ for requests (but not when using the Linode CLI).
+
+
+ The contents of this field will not be shown in any
+ responses that display the NodeBalancerConfig. Instead,
+ `` will be printed where the field appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig response are
+ automatically derived from your certificate. Please
+ refer to these fields to verify that the appropriate
+ certificate was assigned to your NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this port:
+
+
+ - If set to `none`, connections will always be assigned
+ a backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows
+ sessions to be routed to the same backend based on a
+ cookie set by the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ title: HTTPS
+ type: object
+ x-akamai:
+ file-path: schemas/config-https.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/config-protocol.yaml
+ x-example:
+ x-ref: ../examples/put-node-balancer-config.json
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this NodeBalancer should use to route traffic
+ to backends.
+
+ - If set to `roundrobin`, connections are allocated in a
+ weighted circular order across the backends.
+
+ - If set to `leastconn`, allocates new connections to the
+ backend with the least connections.
+
+ - If set to `source`, allocates the client's IP to the same
+ backend on subsequent requests. Session `stickiness` affects
+ this algorithm.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to ensure
+ they're serving requests. This determines if backends are up
+ or down.
+
+ - If `none`, no check is performed.
+
+ - If `connection`, requires a successful TCP handshake with
+ a backend node.
+
+ - If `http`, requires a 2xx or 3xx response from the backend
+ node.
+
+ - If `http_body`, requires the provided regular expression
+ matches against the request's result body.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ The check's response body needs to include this value for it
+ to pass. Otherwise the backend is identified as being down.
+ example: it works
+ type: string
+ check_interval:
+ default: 31
+ description: >-
+ How often, in seconds, to check that backends are up and
+ serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered unhealthy
+ and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ doesn't respond to this request it's considered to be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt before
+ considering it failed. Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by this
+ NodeBalancer. The `legacy` cipher is considered insecure and
+ should only be used if necessary. For information on
+ recommended and legacy ciphers, see [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about the health of the backends
+ for this port. It's updated periodically as checks are
+ performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ `DOWN` and unhealthy. These are not in rotation, and
+ not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ `UP` and healthy, and that are serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ The port for this config. Ports need to be unique across
+ configs for each NodeBalancer. For example, you can't have
+ two configs for port 80. While some protocols are typically
+ assigned specific ports, there's no enforcement, and you can
+ configure your NodeBalancer however you find useful. For
+ example, while port 443 is generally used for HTTPS, you
+ don't need SSL configured to have a NodeBalancer listening
+ on port 443.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol this port is configured to serve.
+
+
+ - The `http` and `tcp` protocols don't support `ssl_cert`
+ and `ssl_key`.
+
+
+ - For the `https` protocol, you need `ssl_cert` and
+ `ssl_key`.
+
+
+ Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - http
+ - https
+ - tcp
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ ProxyProtocol is a TCP extension that sends initial TCP
+ connection information such as source IPs, destination IPs,
+ and ports to backend devices. This information would be lost
+ otherwise. Backend devices must be configured to work with
+ ProxyProtocol if enabled.
+
+
+ - If omitted or set to `none`, the NodeBalancer doesn't send
+ any auxiliary data over TCP connections. The default is
+ `none`.
+
+ - If set to `v1`, the human-readable header format (Version
+ 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version 2) is
+ used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: >-
+ The PEM-formatted public SSL certificate (or the combined
+ PEM-formatted SSL certificate and Certificate Authority
+ chain) that should be served on this NodeBalancer config's
+ port.
+
+
+ Line breaks must be represented as `\n` in the string for
+ API requests, but not when using the Linode CLI.
+
+
+ You can include [Diffie-Hellman
+ parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ in this value to enable forward secrecy.
+
+
+ The provided field don't appear in any responses that
+ display the NodeBalancer config. It's replaced with
+ ``.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint` fields
+ in a NodeBalancer config response are automatically derived
+ from your certificate. Please refer to these fields to
+ verify that the appropriate certificate was assigned to your
+ config.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name automatically
+ derived from the SSL certificate assigned to this
+ NodeBalancer config. Please refer to this field to verify
+ that the appropriate certificate is assigned to your config.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate assigned to
+ this NodeBalancer configuration. You can use the
+ `ssl_fingerprint` field to verify that the appropriate
+ certificate is assigned to your NodeBalancer configuration.
+ example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL certificate set in
+ the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the string for
+ API requests, but not when using the Linode CLI.
+
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will be
+ printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint` fields
+ in a NodeBalancerConfig
+
+ response are automatically derived from your certificate.
+ Please refer to these fields to
+
+ verify that the appropriate certificate was assigned to your
+ NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ Controls how session stickiness is handled on this port.
+
+ - If set to `none`, connections are always assigned a
+ backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote address
+ are routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows sessions
+ to be routed to the same backend based on a cookie set by
+ the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-cli.yaml
+ description: The fields to update.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: NodeBalancer `config` options for each protocol.
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer configuration defines the protocol
+ and settings for a specific port on the NodeBalancer.
+ These fields apply to UDP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this UDP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - ring_hash
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of the
+ check in order for it to pass. If this value isn't
+ present in the response body of a check request, the
+ backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ description: __Read-only__ Must be `false` for UDP.
+ example: false
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 7
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ does not respond to this request, it's considered to
+ be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `udp` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 7000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `udp` in
+ this case. Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - udp
+ example: udp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ description: __Read-only__ Must be `none` for UDP.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for UPD configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: session
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections are assigned a backend
+ server based on the algorithm configured.
+
+ - If set to `session`, all packets with the same
+ session identifiers are routed to the same backend
+ server. Two packets are considered part of the same
+ session if they share the same source and destination
+ IP addresses or ports, and are received within a short
+ time window.
+
+ - If set to `source_ip`, the NodeBalancer uses the
+ client's source IP address to route all packets from
+ the same client to the same backend server.
+ enum:
+ - none
+ - session
+ - source_ip
+ example: none
+ type: string
+ x-linode-cli-display: 5
+ udp_check_port:
+ default: 80
+ description: >-
+ UDP NodeBalancers use TCP and HTTP active health
+ checks to ensure back-end nodes can receive traffic.
+ You can specify the health check port that the backend
+ node listens on, which may differ from the UDP port
+ used to serve traffic.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 6
+ udp_session_timeout:
+ default: 16
+ description: >-
+ __Read-only__ The maximum duration in seconds, a UDP
+ session can be idle before it is closed.
+ example: 2
+ maximum: 300
+ minimum: 1
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 11
+ required:
+ - nodes
+ title: UDP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-udp-response.yaml
+ status: BETA
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to TCP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this TCP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of the
+ check in order for it to pass. If this value is not
+ present in the response body of a check request, the
+ backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code is enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ does not respond to this request, it's considered to
+ be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `tcp` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 6000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 22
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `tcp` in
+ this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - tcp
+ example: tcp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ Proxy protocol is a TCP extension that sends initial
+ TCP connection information such as source or
+ destination IPs and ports to backend devices. Proxy
+ protocol preserves initial TCP information that would
+ be lost otherwise. Backend devices must be configured
+ to work with `proxy_protocol` if enabled.
+
+
+ - If omitted, or set to `none`, the NodeBalancer
+ doesn't send any auxiliary data over TCP connections.
+ This is the default.
+
+ - If set to `v1`, the human-readable header format
+ (Version 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version 2)
+ is used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ __Read-only__ Controls how session stickiness is
+ handled on this port.
+
+
+ Not applicable to TCP configurations.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: TCP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-tcp-response.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTP NodeBalancer uses for routing
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value needs to be in the response
+ body of the check in order for it to pass. Otherwise
+ the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `http` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers need to be unique across
+ TCP, HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced. You may
+ configure your NodeBalancer however you find useful.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `http`
+ in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - http
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections are always assigned a
+ backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote
+ address are routed to the same backend.
+
+ - If set to `http_cookie`, sessions are routed to the
+ same backend based on a cookie set by the
+ NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-http-response.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTPS configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTPS NodeBalancer uses for routing
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. The `check` is used
+ to determine if backends are up or down.
+
+
+ - If `none` no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value must be present in the
+ response body of the check in order for it to pass. If
+ this value is not present in the response body of a
+ check request, the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ The number of seconds between each check that backends
+ are up and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by this
+ NodeBalancer. The `legacy` cipher is considered
+ insecure and should only be used if necessary. For
+ information on recommended and legacy ciphers, see
+ [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 5000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 443
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `https`
+ in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features. The `https`
+ protocol needs to be specified with both `ssl_cert`
+ and `ssl_key`.
+ enum:
+ - https
+ example: https
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTPS configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: >-
+
+ The PEM-formatted public SSL certificate (or the
+ combined PEM-formatted SSL certificate and Certificate
+ Authority chain) that should be served on this
+ NodeBalancerConfig's port.
+
+
+ Line breaks must be represented as `\n` in the string
+ for requests (but not when using the Linode CLI).
+
+
+ [Diffie-Hellman
+ Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ can be included in this value to enable forward
+ secrecy.
+
+
+ The contents of this field will not be shown in any
+ responses that display the NodeBalancerConfig.
+ Instead, `` will be printed where the field
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig response are
+ automatically derived from your certificate. Please
+ refer to these fields to verify that the appropriate
+ certificate was assigned to your NodeBalancerConfig.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name automatically
+ derived from the SSL certificate assigned to this
+ NodeBalancerConfig. Please refer to this field to
+ verify that the appropriate certificate is assigned to
+ your NodeBalancerConfig.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate
+ assigned to this NodeBalancer configuration. Please
+ refer to the `ssl_fingerprint` field to verify that
+ the appropriate certificate is assigned to your
+ NodeBalancer configuration.
+ example: >-
+ 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL certificate
+ set in the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the string
+ for requests (but not when using the Linode CLI).
+
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will be
+ printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig
+
+ response are automatically derived from your
+ certificate. Please refer to these fields to
+
+ verify that the appropriate certificate was assigned
+ to your NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections will always be
+ assigned a backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows
+ sessions to be routed to the same backend based on a
+ cookie set by the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTPS
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-https-response.yaml
+ x-akamai:
+ file-path: schemas/node-balancer-config-response.yaml
+ x-example:
+ x-ref: ../examples/get-node-balancer-config-200.json
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this NodeBalancer should use to route
+ traffic to backends.
+
+ - If set to `roundrobin`, connections are allocated in a
+ weighted circular order across the backends.
+
+ - If set to `leastconn`, allocates new connections to the
+ backend with the least connections.
+
+ - If set to `source`, allocates the client's IP to the
+ same backend on subsequent requests. Session `stickiness`
+ affects this algorithm.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to ensure
+ they're serving requests. This determines if backends are
+ up or down.
+
+ - If `none`, no check is performed.
+
+ - If `connection`, requires a successful TCP handshake
+ with a backend node.
+
+ - If `http`, requires a 2xx or 3xx response from the
+ backend node.
+
+ - If `http_body`, requires the provided regular expression
+ matches against the request's result body.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ The check's response body needs to include this value for
+ it to pass. Otherwise the backend is identified as being
+ down.
+ example: it works
+ type: string
+ check_interval:
+ default: 31
+ description: >-
+ How often, in seconds, to check that backends are up and
+ serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ doesn't respond to this request it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt before
+ considering it failed. Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by this
+ NodeBalancer. The `legacy` cipher is considered insecure
+ and should only be used if necessary. For information on
+ recommended and legacy ciphers, see [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about the health of the backends
+ for this port. It's updated periodically as checks are
+ performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ `DOWN` and unhealthy. These are not in rotation, and
+ not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ `UP` and healthy, and that are serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ The port for this config. Ports need to be unique across
+ configs for each NodeBalancer. For example, you can't have
+ two configs for port 80. While some protocols are
+ typically assigned specific ports, there's no enforcement,
+ and you can configure your NodeBalancer however you find
+ useful. For example, while port 443 is generally used for
+ HTTPS, you don't need SSL configured to have a
+ NodeBalancer listening on port 443.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol this port is configured to serve.
+
+
+ - The `http` and `tcp` protocols don't support `ssl_cert`
+ and `ssl_key`.
+
+
+ - For the `https` protocol, you need `ssl_cert` and
+ `ssl_key`.
+
+
+ Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - http
+ - https
+ - tcp
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ ProxyProtocol is a TCP extension that sends initial TCP
+ connection information such as source IPs, destination
+ IPs, and ports to backend devices. This information would
+ be lost otherwise. Backend devices must be configured to
+ work with ProxyProtocol if enabled.
+
+
+ - If omitted or set to `none`, the NodeBalancer doesn't
+ send any auxiliary data over TCP connections. The default
+ is `none`.
+
+ - If set to `v1`, the human-readable header format
+ (Version 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version 2) is
+ used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: >-
+ The PEM-formatted public SSL certificate (or the combined
+ PEM-formatted SSL certificate and Certificate Authority
+ chain) that should be served on this NodeBalancer config's
+ port.
+
+
+ Line breaks must be represented as `\n` in the string for
+ API requests, but not when using the Linode CLI.
+
+
+ You can include [Diffie-Hellman
+ parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ in this value to enable forward secrecy.
+
+
+ The provided field don't appear in any responses that
+ display the NodeBalancer config. It's replaced with
+ ``.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancer config response are automatically
+ derived from your certificate. Please refer to these
+ fields to verify that the appropriate certificate was
+ assigned to your config.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name automatically
+ derived from the SSL certificate assigned to this
+ NodeBalancer config. Please refer to this field to verify
+ that the appropriate certificate is assigned to your
+ config.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate assigned to
+ this NodeBalancer configuration. You can use the
+ `ssl_fingerprint` field to verify that the appropriate
+ certificate is assigned to your NodeBalancer
+ configuration.
+ example: >-
+ 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL certificate set
+ in the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the string for
+ API requests, but not when using the Linode CLI.
+
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will be
+ printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig
+
+ response are automatically derived from your certificate.
+ Please refer to these fields to
+
+ verify that the appropriate certificate was assigned to
+ your NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ Controls how session stickiness is handled on this port.
+
+ - If set to `none`, connections are always assigned a
+ backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote address
+ are routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows sessions
+ to be routed to the same backend based on a cookie set by
+ the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-cli.yaml
+ description: Config updated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_write
+ summary: Update a config
+ tags:
+ - Configurations
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli nodebalancers config-update \
+ 12345 4567 \
+ --port 443 \
+ --protocol https \
+ --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 "none" \
+ --ssl_cert "-----BEGIN CERTIFICATE-----
+ CERTIFICATE_INFORMATION
+ -----END CERTIFICATE-----" \
+ --ssl_key "-----BEGIN PRIVATE KEY-----
+ PRIVATE_KEY_INFORMATION
+ -----END PRIVATE KEY-----" \
+ --cipher_suite recommended
+ title: 'CLI: HTTPS'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ linode-cli nodebalancers config-update \
+ 12345 4567 \
+ --port 80 \
+ --protocol udp \
+ --algorithm ring_hash \
+ --stickiness session \
+ --check http_body \
+ --check_interval 90 \
+ --check_timeout 10 \
+ --check_attempts 3 \
+ --check_path "/test" \
+ --check_body "it works" \
+ --udp_check_port 80
+ title: 'CLI: UDP'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ linode-cli nodebalancers config-update \
+ 12345 4567 \
+ --port 80 \
+ --protocol tcp \
+ --algorithm roundrobin \
+ --stickiness none \
+ --stickiness http_cookie \
+ --check http_body \
+ --check_interval 90 \
+ --check_timeout 10 \
+ --check_attempts 3 \
+ --check_path "/test" \
+ --check_body "it works" \
+ --proxy_protocol "v2"
+ title: 'CLI: TCP'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ linode-cli nodebalancers config-update \
+ 12345 4567 \
+ --port 440 \
+ --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"
+ title: 'CLI: HTTP'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: config-update
+ x-linode-grant: read_write
+ delete:
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-node-balancer-config
+ operationId: delete-node-balancer-config
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-node-balancer-config-200.json
+ description: NodeBalancer Config deleted successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_write
+ summary: Delete a config
+ tags:
+ - Configurations
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli nodebalancers config-delete \
+ 12345 4567
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: config-delete
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the NodeBalancer.
+ example: '{{nodeBalancerId}}'
+ in: path
+ name: nodeBalancerId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/node-balancer-id.yaml
+ - description: The ID of the Config to access.
+ example: '{{configId}}'
+ in: path
+ name: configId
+ required: true
+ schema:
+ example: 521
+ type: integer
+ x-akamai:
+ file-path: parameters/config-id.yaml
+ x-akamai:
+ file-path: paths/node-balancer-config.yaml
+ path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}
+ x-linode-cli-command: nodebalancers
+ /nodebalancers/{nodeBalancerId}/configs/{configId}/nodes:
+ post:
+ description: >-
+ Creates a backend node that can receive traffic for the NodeBalancer
+ configuration. Requests are routed to backend nodes on the specified
+ port based on their `status`. The configurable fields for the backend
+ node depend on the chosen protocol and whether the node is located
+ within a Linode VPC.
+
+
+ > 🚧
+
+ >
+
+ > You can configure UDP on the same NodeBalancer that also uses TCP,
+ HTTP, or HTTPS, but only when managing it through the API. If UDP is
+ configured and you make changes to the TCP, HTTP or HTTPS settings in
+ Cloud Manager, the existing UDP configuration will be overwritten. This
+ is because Cloud Manager doesn't currently support UDP. __CLI: TCP,
+ HTTP, HTTPS__.
+
+ ```
+ linode-cli nodebalancers node-create \
+ 12345 4567 \
+ --address 10.0.0.45:80 \
+ --label node54321 \
+ --weight 50 \
+ --mode accept \
+ --subnet_id 1
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ - __CLI: UDP__.
+
+ ```
+ linode-cli nodebalancers node-create \
+ 12345 4567 \
+ --address 192.168.210.120:80 \
+ --label node54321 \
+ --weight 50
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-node-balancer-node
+ operationId: post-node-balancer-node
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - description: >-
+ A NodeBalancer node represents a single backend serving
+ requests for a single port of a NodeBalancer. Nodes are tied
+ to individual NodeBalancer configurations and route traffic
+ over their private IPv4 address, IPv6 address, or VPC IPv4
+ address. If the same Linode is serving traffic for more than
+ one port on the same NodeBalancer, one NodeBalancer node is
+ required for each config (port) it should serve requests
+ on. For example, if you have four backends, and each should
+ respond to both HTTP and HTTPS requests, you will need two
+ NodeBalancer configs (port 80 and port 443) and four
+ backends each, one for each of the Linodes serving requests
+ for that port.
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer node represents a single backend
+ serving requests for a single port of a NodeBalancer.
+ Nodes are tied to individual NodeBalancer configurations
+ and route traffic over their private IPv4 address, IPv6
+ address, or VPC IPv4 address. If the same Linode is
+ serving traffic for more than one port on the same
+ NodeBalancer, one NodeBalancer node is required for each
+ config (port) it should serve requests on. For example,
+ if you have four backends, and each should respond to
+ both UDP and HTTPS requests, you will need two
+ NodeBalancer configs (port 80 and port 443) and four
+ backends each, one for each of the Linodes serving
+ requests for that port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes within a
+ VPC. The following IP types are supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that this
+ Node belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ __Read-only__ The mode this NodeBalancer should use
+ when sending traffic to this backend. For backend
+ nodes with a UDP config, the `mode` doesn't apply,
+ so the value is `none`.
+ enum:
+ - none
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this Node
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based
+ on the configured checks of its NodeBalancer config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The VPC's
+ subnet. To display information about your VPCs and
+ their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and
+ is not pinned to a single backend yet. Nodes with a
+ higher weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: UDP config
+ x-akamai:
+ file-path: schemas/node-balancer-node-udp.yaml
+ status: BETA
+ type: object
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend serving
+ requests for a single port of a NodeBalancer. Nodes are
+ tied to individual NodeBalancer configurations and route
+ traffic over their private IPv4 address, IPv6 address,
+ or VPC IPv4 address. If the same Linode is serving
+ traffic for more than one port on the same NodeBalancer,
+ one NodeBalancer node is required for each config (port)
+ it should serve requests on. For example, if you have
+ four backends, and each should respond to both HTTP and
+ HTTPS requests, you will need two NodeBalancer configs
+ (port 80 and port 443) and four backends each, one for
+ each of the Linodes serving requests for that port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes within a
+ VPC. The following IP types are supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that this
+ Node belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending
+ traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not receive
+ traffic.
+
+ - If set to `drain` this backend will not receive
+ _new_ traffic, but connections already pinned to it
+ will continue to be routed to it.
+
+ - If set to `backup`, this backend will only receive
+ traffic if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this Node
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based
+ on the configured checks of its NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The VPC's
+ subnet. To display information about your VPCs and
+ their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and
+ is not pinned to a single backend yet. Nodes with a
+ higher weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: schemas/node-balancer-node-tcp-http-https.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-node.yaml
+ required:
+ - label
+ - address
+ x-akamai:
+ file-path: schemas/added-post-node-balancer-node.yaml
+ x-example:
+ x-ref: ../examples/post-node-balancer-node.json
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be reached:
+ either the Linode’s private IPv4, public IPv6, or the VPC's
+ IPv4 address.
+ example: 192.168.210.120:80
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer config ID that this node
+ belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The label for this node. This is for display purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z0-9-_.]{3,32}$
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending traffic
+ to this backend.
+
+
+ - If set to `accept`, this backend is accepting traffic.
+
+ - If set to `reject`, this backend will not receive traffic.
+
+ - If set to `drain`, this backend will not receive _new_
+ traffic, but connections already pinned to it will continue
+ to be routed to it.
+
+ - If set to `backup`, this backend will only receive traffic
+ if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: __Read-only__ The NodeBalancer ID that this node belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based on the
+ configured checks of its NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is not
+ yet pinned to a single backend. Nodes with a higher weight
+ receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-node-cli.yaml
+ description: >-
+ Information about the node the NodeBalancer configuration will direct
+ traffic to. The fields available for the backend node depend on the
+ configuration's protocol, and if the backend node is in a VPC.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: >-
+ A NodeBalancer node represents a single backend serving
+ requests for a single port on a NodeBalancer. Nodes are tied
+ to NodeBalancer configurations, and serve traffic over their
+ private IPv4 address, IPv6 address, or VPC IPv4 address. If
+ the same Linode is serving traffic for more than one port on
+ the same NodeBalancer, one NodeBalancer node is required for
+ each config (port) it should serve requests on. For example,
+ if you have four backends, and each should respond to both
+ HTTP and HTTPS requests, you will need two NodeBalancer
+ configs (port 80 and port 443) and four backends each, one for
+ each of the Linodes serving requests for that port.
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend serving
+ requests for a single port of a NodeBalancer. Nodes are
+ tied to NodeBalancer configurations, and serve traffic
+ over their private IPv4 address, IPv6 address, or VPC IPv4
+ address. If the same Linode is serving traffic for more
+ than one port on the same NodeBalancer, one NodeBalancer
+ node is required for each config (port) it should serve
+ requests on. For example, if you have four backends, and
+ each should respond to both HTTP and HTTPS requests, you
+ will need two NodeBalancer configs (port 80 and port 443)
+ and four backends each, one for each of the Linodes
+ serving requests for that port.
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be
+ reached: either the Linode’s private IPv4, public
+ IPv6, or the VPC's IPv4 address.
+ example: 10.0.0.45:80
+ format: ip
+ type: string
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that this
+ Node belongs to.
+ example: 6
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 8
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display purposes
+ only.
+ example: vpc-node
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending
+ traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not receive
+ traffic.
+
+ - If set to `drain` this backend will not receive
+ _new_ traffic, but connections already pinned to it
+ will continue to be routed to it.
+
+ - If set to `backup`, this backend will only receive
+ traffic if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this Node
+ belongs to.
+ example: 10
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based
+ on the configured checks of its NodeBalancer Config.
+ enum:
+ - Unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ vpc_config_id:
+ description: >-
+ __Read-only__ For VPC backends, you can use the
+ `vpc_config_id` to [get VPC IDs and VPC subnet
+ IDs](https://techdocs.akamai.com/linode-api/reference/get-node-balancer-vpc-config).
+ Returns a `null` value if the backend is not a VPC
+ node. Included only in `{apiVersion}` `v4beta`.
+ example: 8
+ nullable: true
+ readOnly: true
+ type: integer
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is
+ not pinned to a single backend yet. Nodes with a
+ higher weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: schemas/node-balancer-node-tcp-http-https-response.yaml
+ type: object
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer node represents a single backend
+ serving requests for a single port of a NodeBalancer.
+ Nodes are tied to individual NodeBalancer configurations
+ and route traffic over their private IPv4 address, IPv6
+ address, or VPC IPv4 address. If the same Linode is
+ serving traffic for more than one port on the same
+ NodeBalancer, one NodeBalancer node is required for each
+ config (port) it should serve requests on. For example,
+ if you have four backends, and each should respond to both
+ UDP and HTTPS requests, you will need two NodeBalancer
+ configs (port 80 and port 443) and four backends each, one
+ for each of the Linodes serving requests for that port.
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be
+ reached: either the Linode’s private IPv4, public
+ IPv6, or the VPC's IPv4 address.
+ example: 10.0.0.45:80
+ format: ip
+ type: string
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that this
+ Node belongs to.
+ example: 6
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 9
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display purposes
+ only.
+ example: non-vpc-node
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ __Read-only__ The mode this NodeBalancer should use
+ when sending traffic to this backend. For backend
+ nodes with a UDP config, the `mode` doesn't apply, so
+ the value is `none`.
+ enum:
+ - none
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this Node
+ belongs to.
+ example: 10
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based
+ on the configured checks of its NodeBalancer config.
+ enum:
+ - Unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ vpc_config_id:
+ description: >-
+ __Read-only__ For VPC backends, the `vpc_config_id`
+ can be used to [get VPC IDs and VPC subnet
+ IDs](https://techdocs.akamai.com/linode-api/reference/get-node-balancer-vpc-config).
+ Returns a `null` value if the backend is not a VPC
+ node. Included only when the `apiVersion` is `v4beta`.
+ example: null
+ nullable: true
+ readOnly: true
+ type: integer
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is
+ not pinned to a single backend yet. Nodes with a
+ higher weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: UDP config
+ x-akamai:
+ file-path: schemas/node-balancer-node-udp-response.yaml
+ status: BETA
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-node-response.yaml
+ x-example:
+ x-ref: ../examples/post-node-balancer-node-200.json
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be reached:
+ either the Linode’s private IPv4, public IPv6, or the
+ VPC's IPv4 address.
+ example: 192.168.210.120:80
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer config ID that this node
+ belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display purposes
+ only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z0-9-_.]{3,32}$
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending traffic
+ to this backend.
+
+
+ - If set to `accept`, this backend is accepting traffic.
+
+ - If set to `reject`, this backend will not receive
+ traffic.
+
+ - If set to `drain`, this backend will not receive _new_
+ traffic, but connections already pinned to it will
+ continue to be routed to it.
+
+ - If set to `backup`, this backend will only receive
+ traffic if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this node belongs
+ to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based on
+ the configured checks of its NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is not
+ yet pinned to a single backend. Nodes with a higher weight
+ receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-node-cli.yaml
+ description: Node created successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_write
+ summary: Create a node
+ tags:
+ - Nodes
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli nodebalancers node-create \
+ 12345 4567 \
+ --address 10.0.0.45:80 \
+ --label node54321 \
+ --weight 50 \
+ --mode accept \
+ --subnet_id 1
+ title: 'CLI: TCP, HTTP, HTTPS'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ linode-cli nodebalancers node-create \
+ 12345 4567 \
+ --address 192.168.210.120:80 \
+ --label node54321 \
+ --weight 50
+ title: 'CLI: UDP'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: node-create
+ x-linode-grant: read_write
+ get:
+ description: >-
+ Returns a paginated list of NodeBalancer nodes associated with this
+ Config. These are the backends that will be sent traffic for this port.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-node-balancer-config-nodes
+ operationId: get-node-balancer-config-nodes
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - address: 10.0.0.10:80
+ config_id: 34
+ id: 56
+ label: vpc-node
+ mode: accept
+ nodebalancer_id: 12
+ status: Unknown
+ vpc_config_id: 8
+ weight: 50
+ - address: 192.168.128.2:80
+ config_id: 34
+ id: 57
+ label: non-vpc-node
+ mode: accept
+ nodebalancer_id: 12
+ status: Unknown
+ vpc_config_id: null
+ weight: 50
+ page: 1
+ pages: 1
+ results: 2
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ description: >-
+ A NodeBalancer node represents a single backend serving
+ requests for a single port on a NodeBalancer. Nodes are
+ tied to NodeBalancer configurations, and serve traffic
+ over their private IPv4 address, IPv6 address, or VPC
+ IPv4 address. If the same Linode is serving traffic for
+ more than one port on the same NodeBalancer, one
+ NodeBalancer node is required for each config (port) it
+ should serve requests on. For example, if you have four
+ backends, and each should respond to both HTTP and HTTPS
+ requests, you will need two NodeBalancer configs (port
+ 80 and port 443) and four backends each, one for each of
+ the Linodes serving requests for that port.
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend
+ serving requests for a single port of a
+ NodeBalancer. Nodes are tied to NodeBalancer
+ configurations, and serve traffic over their private
+ IPv4 address, IPv6 address, or VPC IPv4 address. If
+ the same Linode is serving traffic for more than one
+ port on the same NodeBalancer, one NodeBalancer node
+ is required for each config (port) it should serve
+ requests on. For example, if you have four
+ backends, and each should respond to both HTTP and
+ HTTPS requests, you will need two NodeBalancer
+ configs (port 80 and port 443) and four backends
+ each, one for each of the Linodes serving requests
+ for that port.
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be
+ reached: either the Linode’s private IPv4,
+ public IPv6, or the VPC's IPv4 address.
+ example: 10.0.0.45:80
+ format: ip
+ type: string
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that
+ this Node belongs to.
+ example: 6
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 8
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: vpc-node
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when
+ sending traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not
+ receive traffic.
+
+ - If set to `drain` this backend will not
+ receive _new_ traffic, but connections already
+ pinned to it will continue to be routed to it.
+
+ - If set to `backup`, this backend will only
+ receive traffic if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this Node
+ belongs to.
+ example: 10
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node,
+ based on the configured checks of its
+ NodeBalancer Config.
+ enum:
+ - Unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ vpc_config_id:
+ description: >-
+ __Read-only__ For VPC backends, you can use the
+ `vpc_config_id` to [get VPC IDs and VPC subnet
+ IDs](https://techdocs.akamai.com/linode-api/reference/get-node-balancer-vpc-config).
+ Returns a `null` value if the backend is not a
+ VPC node. Included only in `{apiVersion}`
+ `v4beta`.
+ example: 8
+ nullable: true
+ readOnly: true
+ type: integer
+ weight:
+ description: >-
+ Used when picking a backend to serve a request
+ and is not pinned to a single backend yet. Nodes
+ with a higher weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: >-
+ schemas/node-balancer-node-tcp-http-https-response.yaml
+ type: object
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer node represents a single
+ backend serving requests for a single port of a
+ NodeBalancer. Nodes are tied to individual
+ NodeBalancer configurations and route traffic over
+ their private IPv4 address, IPv6 address, or VPC
+ IPv4 address. If the same Linode is serving traffic
+ for more than one port on the same NodeBalancer, one
+ NodeBalancer node is required for each config (port)
+ it should serve requests on. For example, if you
+ have four backends, and each should respond to both
+ UDP and HTTPS requests, you will need two
+ NodeBalancer configs (port 80 and port 443) and four
+ backends each, one for each of the Linodes serving
+ requests for that port.
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be
+ reached: either the Linode’s private IPv4,
+ public IPv6, or the VPC's IPv4 address.
+ example: 10.0.0.45:80
+ format: ip
+ type: string
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that
+ this Node belongs to.
+ example: 6
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 9
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: non-vpc-node
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ __Read-only__ The mode this NodeBalancer should
+ use when sending traffic to this backend. For
+ backend nodes with a UDP config, the `mode`
+ doesn't apply, so the value is `none`.
+ enum:
+ - none
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this Node
+ belongs to.
+ example: 10
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node,
+ based on the configured checks of its
+ NodeBalancer config.
+ enum:
+ - Unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ vpc_config_id:
+ description: >-
+ __Read-only__ For VPC backends, the
+ `vpc_config_id` can be used to [get VPC IDs and
+ VPC subnet
+ IDs](https://techdocs.akamai.com/linode-api/reference/get-node-balancer-vpc-config).
+ Returns a `null` value if the backend is not a
+ VPC node. Included only when the `apiVersion` is
+ `v4beta`.
+ example: null
+ nullable: true
+ readOnly: true
+ type: integer
+ weight:
+ description: >-
+ Used when picking a backend to serve a request
+ and is not pinned to a single backend yet. Nodes
+ with a higher weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: UDP config
+ x-akamai:
+ file-path: schemas/node-balancer-node-udp-response.yaml
+ status: BETA
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-node-response.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 2
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-node-balancer-config-nodes-200.yaml
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be reached:
+ either the Linode’s private IPv4, public IPv6, or the
+ VPC's IPv4 address.
+ example: 192.168.210.120:80
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer config ID that this node
+ belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display purposes
+ only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z0-9-_.]{3,32}$
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending traffic
+ to this backend.
+
+
+ - If set to `accept`, this backend is accepting traffic.
+
+ - If set to `reject`, this backend will not receive
+ traffic.
+
+ - If set to `drain`, this backend will not receive _new_
+ traffic, but connections already pinned to it will
+ continue to be routed to it.
+
+ - If set to `backup`, this backend will only receive
+ traffic if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this node belongs
+ to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based on
+ the configured checks of its NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is not
+ yet pinned to a single backend. Nodes with a higher weight
+ receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-node-cli.yaml
+ description: A paginated list of NodeBalancer nodes.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_only
+ summary: List nodes
+ tags:
+ - Nodes
+ x-akamai:
+ tabs:
+ - syntax: linode-cli nodebalancers nodes-list 12345 4567
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: nodes-list
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the NodeBalancer.
+ example: '{{nodeBalancerId}}'
+ in: path
+ name: nodeBalancerId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/node-balancer-id.yaml
+ - description: The ID of the NodeBalancer config to access.
+ example: '{{configId}}'
+ in: path
+ name: configId
+ required: true
+ schema:
+ example: 521
+ type: integer
+ x-akamai:
+ file-path: parameters/config-id-node-balancer.yaml
+ x-akamai:
+ file-path: paths/nodes.yaml
+ path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes
+ x-linode-cli-command: nodebalancers
+ /nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId}:
+ get:
+ description: >-
+ Returns information about a single Node, a backend for this
+ NodeBalancer's configured port.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-node-balancer-node
+ operationId: get-node-balancer-node
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: >-
+ A NodeBalancer node represents a single backend serving
+ requests for a single port on a NodeBalancer. Nodes are tied
+ to NodeBalancer configurations, and serve traffic over their
+ private IPv4 address, IPv6 address, or VPC IPv4 address. If
+ the same Linode is serving traffic for more than one port on
+ the same NodeBalancer, one NodeBalancer node is required for
+ each config (port) it should serve requests on. For example,
+ if you have four backends, and each should respond to both
+ HTTP and HTTPS requests, you will need two NodeBalancer
+ configs (port 80 and port 443) and four backends each, one for
+ each of the Linodes serving requests for that port.
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend serving
+ requests for a single port of a NodeBalancer. Nodes are
+ tied to NodeBalancer configurations, and serve traffic
+ over their private IPv4 address, IPv6 address, or VPC IPv4
+ address. If the same Linode is serving traffic for more
+ than one port on the same NodeBalancer, one NodeBalancer
+ node is required for each config (port) it should serve
+ requests on. For example, if you have four backends, and
+ each should respond to both HTTP and HTTPS requests, you
+ will need two NodeBalancer configs (port 80 and port 443)
+ and four backends each, one for each of the Linodes
+ serving requests for that port.
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be
+ reached: either the Linode’s private IPv4, public
+ IPv6, or the VPC's IPv4 address.
+ example: 10.0.0.45:80
+ format: ip
+ type: string
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that this
+ Node belongs to.
+ example: 6
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 8
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display purposes
+ only.
+ example: vpc-node
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending
+ traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not receive
+ traffic.
+
+ - If set to `drain` this backend will not receive
+ _new_ traffic, but connections already pinned to it
+ will continue to be routed to it.
+
+ - If set to `backup`, this backend will only receive
+ traffic if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this Node
+ belongs to.
+ example: 10
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based
+ on the configured checks of its NodeBalancer Config.
+ enum:
+ - Unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ vpc_config_id:
+ description: >-
+ __Read-only__ For VPC backends, you can use the
+ `vpc_config_id` to [get VPC IDs and VPC subnet
+ IDs](https://techdocs.akamai.com/linode-api/reference/get-node-balancer-vpc-config).
+ Returns a `null` value if the backend is not a VPC
+ node. Included only in `{apiVersion}` `v4beta`.
+ example: 8
+ nullable: true
+ readOnly: true
+ type: integer
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is
+ not pinned to a single backend yet. Nodes with a
+ higher weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: schemas/node-balancer-node-tcp-http-https-response.yaml
+ type: object
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer node represents a single backend
+ serving requests for a single port of a NodeBalancer.
+ Nodes are tied to individual NodeBalancer configurations
+ and route traffic over their private IPv4 address, IPv6
+ address, or VPC IPv4 address. If the same Linode is
+ serving traffic for more than one port on the same
+ NodeBalancer, one NodeBalancer node is required for each
+ config (port) it should serve requests on. For example,
+ if you have four backends, and each should respond to both
+ UDP and HTTPS requests, you will need two NodeBalancer
+ configs (port 80 and port 443) and four backends each, one
+ for each of the Linodes serving requests for that port.
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be
+ reached: either the Linode’s private IPv4, public
+ IPv6, or the VPC's IPv4 address.
+ example: 10.0.0.45:80
+ format: ip
+ type: string
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that this
+ Node belongs to.
+ example: 6
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 9
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display purposes
+ only.
+ example: non-vpc-node
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ __Read-only__ The mode this NodeBalancer should use
+ when sending traffic to this backend. For backend
+ nodes with a UDP config, the `mode` doesn't apply, so
+ the value is `none`.
+ enum:
+ - none
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this Node
+ belongs to.
+ example: 10
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based
+ on the configured checks of its NodeBalancer config.
+ enum:
+ - Unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ vpc_config_id:
+ description: >-
+ __Read-only__ For VPC backends, the `vpc_config_id`
+ can be used to [get VPC IDs and VPC subnet
+ IDs](https://techdocs.akamai.com/linode-api/reference/get-node-balancer-vpc-config).
+ Returns a `null` value if the backend is not a VPC
+ node. Included only when the `apiVersion` is `v4beta`.
+ example: null
+ nullable: true
+ readOnly: true
+ type: integer
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is
+ not pinned to a single backend yet. Nodes with a
+ higher weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: UDP config
+ x-akamai:
+ file-path: schemas/node-balancer-node-udp-response.yaml
+ status: BETA
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-node-response.yaml
+ x-example:
+ x-ref: ../examples/get-node-balancer-node-200.json
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be reached:
+ either the Linode’s private IPv4, public IPv6, or the
+ VPC's IPv4 address.
+ example: 192.168.210.120:80
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer config ID that this node
+ belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display purposes
+ only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z0-9-_.]{3,32}$
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending traffic
+ to this backend.
+
+
+ - If set to `accept`, this backend is accepting traffic.
+
+ - If set to `reject`, this backend will not receive
+ traffic.
+
+ - If set to `drain`, this backend will not receive _new_
+ traffic, but connections already pinned to it will
+ continue to be routed to it.
+
+ - If set to `backup`, this backend will only receive
+ traffic if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this node belongs
+ to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based on
+ the configured checks of its NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is not
+ yet pinned to a single backend. Nodes with a higher weight
+ receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-node-cli.yaml
+ description: A paginated list of NodeBalancer nodes.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_write
+ summary: Get a NodeBalancer's node
+ tags:
+ - Nodes
+ x-akamai:
+ tabs:
+ - syntax: linode-cli nodebalancers node-view 12345 4567 54321
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: node-view
+ x-linode-grant: read_only
+ put:
+ description: >-
+ Updates information about a node, a backend for this NodeBalancer's
+ configured port.
+
+
+ > 🚧
+
+ >
+
+ > You can configure UDP on the same NodeBalancer that also uses TCP,
+ HTTP, or HTTPS, but only when managing it through the API. If UDP is
+ configured and you make changes to the TCP, HTTP or HTTPS settings in
+ Cloud Manager, the existing UDP configuration will be overwritten. This
+ is because Cloud Manager doesn't currently support UDP. __CLI: TCP,
+ HTTP, HTTPS__.
+
+ ```
+ linode-cli nodebalancers node-update \
+ 12345 4567 54321 \
+ --address 192.168.210.120:80 \
+ --label node54321 \
+ --weight 50 \
+ --mode accept
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ - __CLI: UDP__.
+
+ ```
+ linode-cli nodebalancers node-create \
+ 12345 4567 \
+ --address 192.168.210.120:80 \
+ --label node54321 \
+ --weight 50
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/put-node-balancer-node
+ operationId: put-node-balancer-node
+ requestBody:
+ content:
+ application/json:
+ schema:
+ description: >-
+ A NodeBalancer node represents a single backend serving requests
+ for a single port of a NodeBalancer. Nodes are tied to
+ individual NodeBalancer configurations and route traffic over
+ their private IPv4 address, IPv6 address, or VPC IPv4 address.
+ If the same Linode is serving traffic for more than one port on
+ the same NodeBalancer, one NodeBalancer node is required for
+ each config (port) it should serve requests on. For example, if
+ you have four backends, and each should respond to both HTTP and
+ HTTPS requests, you will need two NodeBalancer configs (port 80
+ and port 443) and four backends each, one for each of the
+ Linodes serving requests for that port.
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer node represents a single backend
+ serving requests for a single port of a NodeBalancer. Nodes
+ are tied to individual NodeBalancer configurations and route
+ traffic over their private IPv4 address, IPv6 address, or
+ VPC IPv4 address. If the same Linode is serving traffic for
+ more than one port on the same NodeBalancer, one
+ NodeBalancer node is required for each config (port) it
+ should serve requests on. For example, if you have four
+ backends, and each should respond to both UDP and HTTPS
+ requests, you will need two NodeBalancer configs (port 80
+ and port 443) and four backends each, one for each of the
+ Linodes serving requests for that port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes within a VPC.
+ The following IP types are supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that this Node
+ belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display purposes
+ only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ __Read-only__ The mode this NodeBalancer should use when
+ sending traffic to this backend. For backend nodes with
+ a UDP config, the `mode` doesn't apply, so the value is
+ `none`.
+ enum:
+ - none
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this Node belongs
+ to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based on
+ the configured checks of its NodeBalancer config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The VPC's subnet.
+ To display information about your VPCs and their
+ subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is
+ not pinned to a single backend yet. Nodes with a higher
+ weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: UDP config
+ x-akamai:
+ file-path: schemas/node-balancer-node-udp.yaml
+ status: BETA
+ type: object
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend serving
+ requests for a single port of a NodeBalancer. Nodes are tied
+ to individual NodeBalancer configurations and route traffic
+ over their private IPv4 address, IPv6 address, or VPC IPv4
+ address. If the same Linode is serving traffic for more than
+ one port on the same NodeBalancer, one NodeBalancer node is
+ required for each config (port) it should serve requests
+ on. For example, if you have four backends, and each should
+ respond to both HTTP and HTTPS requests, you will need two
+ NodeBalancer configs (port 80 and port 443) and four
+ backends each, one for each of the Linodes serving requests
+ for that port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes within a VPC.
+ The following IP types are supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that this Node
+ belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display purposes
+ only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending
+ traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting traffic.
+
+ - If set to `reject` this backend will not receive
+ traffic.
+
+ - If set to `drain` this backend will not receive _new_
+ traffic, but connections already pinned to it will
+ continue to be routed to it.
+
+ - If set to `backup`, this backend will only receive
+ traffic if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this Node belongs
+ to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based on
+ the configured checks of its NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The VPC's subnet.
+ To display information about your VPCs and their
+ subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is
+ not pinned to a single backend yet. Nodes with a higher
+ weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: schemas/node-balancer-node-tcp-http-https.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-node.yaml
+ x-example:
+ x-ref: ../examples/put-node-balancer-node.json
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be reached:
+ either the Linode’s private IPv4, public IPv6, or the VPC's
+ IPv4 address.
+ example: 192.168.210.120:80
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer config ID that this node
+ belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: The label for this node. This is for display purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z0-9-_.]{3,32}$
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending traffic
+ to this backend.
+
+
+ - If set to `accept`, this backend is accepting traffic.
+
+ - If set to `reject`, this backend will not receive traffic.
+
+ - If set to `drain`, this backend will not receive _new_
+ traffic, but connections already pinned to it will continue
+ to be routed to it.
+
+ - If set to `backup`, this backend will only receive traffic
+ if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: __Read-only__ The NodeBalancer ID that this node belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based on the
+ configured checks of its NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is not
+ yet pinned to a single backend. Nodes with a higher weight
+ receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-node-cli.yaml
+ description: >-
+ The fields to update. The fields available for the backend node depend
+ on the configuration's protocol, and if the backend node is in a VPC.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: >-
+ A NodeBalancer node represents a single backend serving
+ requests for a single port on a NodeBalancer. Nodes are tied
+ to NodeBalancer configurations, and serve traffic over their
+ private IPv4 address, IPv6 address, or VPC IPv4 address. If
+ the same Linode is serving traffic for more than one port on
+ the same NodeBalancer, one NodeBalancer node is required for
+ each config (port) it should serve requests on. For example,
+ if you have four backends, and each should respond to both
+ HTTP and HTTPS requests, you will need two NodeBalancer
+ configs (port 80 and port 443) and four backends each, one for
+ each of the Linodes serving requests for that port.
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend serving
+ requests for a single port of a NodeBalancer. Nodes are
+ tied to NodeBalancer configurations, and serve traffic
+ over their private IPv4 address, IPv6 address, or VPC IPv4
+ address. If the same Linode is serving traffic for more
+ than one port on the same NodeBalancer, one NodeBalancer
+ node is required for each config (port) it should serve
+ requests on. For example, if you have four backends, and
+ each should respond to both HTTP and HTTPS requests, you
+ will need two NodeBalancer configs (port 80 and port 443)
+ and four backends each, one for each of the Linodes
+ serving requests for that port.
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be
+ reached: either the Linode’s private IPv4, public
+ IPv6, or the VPC's IPv4 address.
+ example: 10.0.0.45:80
+ format: ip
+ type: string
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that this
+ Node belongs to.
+ example: 6
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 8
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display purposes
+ only.
+ example: vpc-node
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending
+ traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not receive
+ traffic.
+
+ - If set to `drain` this backend will not receive
+ _new_ traffic, but connections already pinned to it
+ will continue to be routed to it.
+
+ - If set to `backup`, this backend will only receive
+ traffic if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this Node
+ belongs to.
+ example: 10
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based
+ on the configured checks of its NodeBalancer Config.
+ enum:
+ - Unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ vpc_config_id:
+ description: >-
+ __Read-only__ For VPC backends, you can use the
+ `vpc_config_id` to [get VPC IDs and VPC subnet
+ IDs](https://techdocs.akamai.com/linode-api/reference/get-node-balancer-vpc-config).
+ Returns a `null` value if the backend is not a VPC
+ node. Included only in `{apiVersion}` `v4beta`.
+ example: 8
+ nullable: true
+ readOnly: true
+ type: integer
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is
+ not pinned to a single backend yet. Nodes with a
+ higher weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: schemas/node-balancer-node-tcp-http-https-response.yaml
+ type: object
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer node represents a single backend
+ serving requests for a single port of a NodeBalancer.
+ Nodes are tied to individual NodeBalancer configurations
+ and route traffic over their private IPv4 address, IPv6
+ address, or VPC IPv4 address. If the same Linode is
+ serving traffic for more than one port on the same
+ NodeBalancer, one NodeBalancer node is required for each
+ config (port) it should serve requests on. For example,
+ if you have four backends, and each should respond to both
+ UDP and HTTPS requests, you will need two NodeBalancer
+ configs (port 80 and port 443) and four backends each, one
+ for each of the Linodes serving requests for that port.
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be
+ reached: either the Linode’s private IPv4, public
+ IPv6, or the VPC's IPv4 address.
+ example: 10.0.0.45:80
+ format: ip
+ type: string
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that this
+ Node belongs to.
+ example: 6
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 9
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display purposes
+ only.
+ example: non-vpc-node
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ __Read-only__ The mode this NodeBalancer should use
+ when sending traffic to this backend. For backend
+ nodes with a UDP config, the `mode` doesn't apply, so
+ the value is `none`.
+ enum:
+ - none
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this Node
+ belongs to.
+ example: 10
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based
+ on the configured checks of its NodeBalancer config.
+ enum:
+ - Unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ vpc_config_id:
+ description: >-
+ __Read-only__ For VPC backends, the `vpc_config_id`
+ can be used to [get VPC IDs and VPC subnet
+ IDs](https://techdocs.akamai.com/linode-api/reference/get-node-balancer-vpc-config).
+ Returns a `null` value if the backend is not a VPC
+ node. Included only when the `apiVersion` is `v4beta`.
+ example: null
+ nullable: true
+ readOnly: true
+ type: integer
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is
+ not pinned to a single backend yet. Nodes with a
+ higher weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: UDP config
+ x-akamai:
+ file-path: schemas/node-balancer-node-udp-response.yaml
+ status: BETA
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-node-response.yaml
+ x-example:
+ x-ref: ../examples/get-node-balancer-node-200.json
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be reached:
+ either the Linode’s private IPv4, public IPv6, or the
+ VPC's IPv4 address.
+ example: 192.168.210.120:80
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer config ID that this node
+ belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display purposes
+ only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z0-9-_.]{3,32}$
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending traffic
+ to this backend.
+
+
+ - If set to `accept`, this backend is accepting traffic.
+
+ - If set to `reject`, this backend will not receive
+ traffic.
+
+ - If set to `drain`, this backend will not receive _new_
+ traffic, but connections already pinned to it will
+ continue to be routed to it.
+
+ - If set to `backup`, this backend will only receive
+ traffic if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this node belongs
+ to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based on
+ the configured checks of its NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is not
+ yet pinned to a single backend. Nodes with a higher weight
+ receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-node-cli.yaml
+ description: Node updated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_write
+ summary: Update a node
+ tags:
+ - Nodes
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli nodebalancers node-update \
+ 12345 4567 54321 \
+ --address 192.168.210.120:80 \
+ --label node54321 \
+ --weight 50 \
+ --mode accept
+ title: 'CLI: TCP, HTTP, HTTPS'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ linode-cli nodebalancers node-create \
+ 12345 4567 \
+ --address 192.168.210.120:80 \
+ --label node54321 \
+ --weight 50
+ title: 'CLI: UDP'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: node-update
+ x-linode-grant: read_write
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-node-balancer-config-node
+ operationId: delete-node-balancer-config-node
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-node-balancer-config-node-200.json
+ description: Node deleted successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_write
+ summary: Delete a NodeBalancer's node
+ tags:
+ - Nodes
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli nodebalancers node-delete \
+ 12345 4567 54321
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: node-delete
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the NodeBalancer.
+ example: '{{nodeBalancerId}}'
+ in: path
+ name: nodeBalancerId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/node-balancer-id.yaml
+ - description: The ID of the Config to access.
+ example: '{{configId}}'
+ in: path
+ name: configId
+ required: true
+ schema:
+ example: 521
+ type: integer
+ x-akamai:
+ file-path: parameters/config-id.yaml
+ - description: The ID of the Node to access.
+ example: '{{nodeId}}'
+ in: path
+ name: nodeId
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/node-id.yaml
+ x-akamai:
+ file-path: paths/config-node.yaml
+ path-info: >-
+ /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId}
+ x-linode-cli-command: nodebalancers
+ /nodebalancers/{nodeBalancerId}/configs/{configId}/rebuild:
+ post:
+ description: >-
+ Rebuilds a NodeBalancer config and its nodes that you have permission to
+ modify.
+
+
+ Use this operation to update a NodeBalancer's config and nodes with a
+ single request.
+
+
+ > 🚧
+
+ >
+
+ > You can configure UDP on the same NodeBalancer that also uses TCP,
+ HTTP, or HTTPS, but only when managing it through the API. If UDP is
+ configured and you make changes to the TCP, HTTP or HTTPS settings in
+ Cloud Manager, the existing UDP configuration will be overwritten. This
+ is because Cloud Manager doesn't currently support UDP. __CLI: HTTPS__.
+
+ ```
+ linode-cli nodebalancers config-rebuild \
+ 12345 4567 \
+ --port 443 \
+ --protocol https \
+ --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 "none" \
+ --ssl_cert "-----BEGIN CERTIFICATE-----
+ CERTIFICATE_INFORMATION
+ -----END CERTIFICATE-----" \
+ --ssl_key "-----BEGIN PRIVATE KEY-----
+ PRIVATE_KEY_INFORMATION
+ -----END PRIVATE KEY-----" \
+ --cipher_suite recommended \
+ --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
+ --nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' \
+ --nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ - __CLI: UDP__.
+
+ ```
+ linode-cli nodebalancers config-rebuild \
+ 12345 4567 \
+ --port 80 \
+ --protocol udp \
+ --algorithm ring_hash \
+ --udp_check_port 80 \
+ --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
+ --nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50}]' \
+ --nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ - __CLI: TCP__.
+
+ ```
+ linode-cli nodebalancers config-rebuild \
+ 12345 4567 \
+ --port 80 \
+ --protocol tcp \
+ --algorithm roundrobin \
+ --stickiness none \
+ --proxy_protocol "v2"
+ --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
+ --nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' \
+ --nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
+ ```
+
+ [Learn
+ more...](https://www.linode.com/docs/products/tools/cli/get-started/)
+
+
+ - __CLI: HTTP__.
+
+ ```
+ linode-cli nodebalancers config-rebuild \
+ 12345 4567 \
+ --port 440 \
+ --protocol http \
+ --algorithm roundrobin \
+ --stickiness none \
+ --check http_body \
+ --check_interval 90 \
+ --check_timeout 10 \
+ --check_attempts 3 \
+ --check_path "/test" \
+ --check_body "it works" \
+ --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
+ --nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' \
+ --nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-rebuild-node-balancer-config
+ operationId: post-rebuild-node-balancer-config
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - description: NodeBalancer `config` options for each protocol.
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer configuration defines the
+ protocol and settings for a specific port on the
+ NodeBalancer. These fields apply to UDP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this UDP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - ring_hash
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering
+ a backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of
+ the check in order for it to pass. If this value
+ isn't present in the response body of a check
+ request, the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ description: __Read-only__ Must be `false` for UDP.
+ example: false
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 8
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the
+ backend does not respond to this request, it's
+ considered to be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 7000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this
+ config belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes:
+ description: >-
+ The NodeBalancer nodes that serve this
+ configuration.
+ items:
+ additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer node represents a single
+ backend serving requests for a single port of a
+ NodeBalancer. Nodes are tied to individual
+ NodeBalancer configurations and route traffic over
+ their private IPv4 address, IPv6 address, or VPC
+ IPv4 address. If the same Linode is serving
+ traffic for more than one port on the same
+ NodeBalancer, one NodeBalancer node is required
+ for each config (port) it should serve requests
+ on. For example, if you have four backends, and
+ each should respond to both UDP and HTTPS
+ requests, you will need two NodeBalancer configs
+ (port 80 and port 443) and four backends each, one
+ for each of the Linodes serving requests for that
+ port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes
+ within a VPC. The following IP types are
+ supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that
+ this Node belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ __Read-only__ The mode this NodeBalancer
+ should use when sending traffic to this
+ backend. For backend nodes with a UDP config,
+ the `mode` doesn't apply, so the value is
+ `none`.
+ enum:
+ - none
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this
+ Node belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node,
+ based on the configured checks of its
+ NodeBalancer config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The VPC's
+ subnet. To display information about your VPCs
+ and their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request
+ and is not pinned to a single backend yet.
+ Nodes with a higher weight will receive more
+ traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: UDP config
+ x-akamai:
+ file-path: schemas/node-balancer-node-udp.yaml
+ status: BETA
+ type: object
+ type: array
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends
+ for this port. This data updates periodically as
+ checks are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 11
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for
+ this configuration. Port numbers must be unique
+ across TCP, HTTP, and HTTPS configurations on a
+ single NodeBalancer. However, ports assigned to TCP,
+ HTTP, or HTTPS configurations can also be reused for
+ UDP configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration
+ on the same NodeBalancer, but it can't be shared by
+ both a TCP and an HTTP configuration. Although
+ certain ports are traditionally associated with
+ specific protocols, this isn't strictly enforced,
+ and you may configure your NodeBalancer however you
+ find useful.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `udp`
+ in this case. Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - udp
+ example: udp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ description: __Read-only__ Must be `none` for UDP.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for UPD configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 10
+ ssl_key:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: session
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections are assigned a
+ backend server based on the algorithm configured.
+
+ - If set to `session`, all packets with the same
+ session identifiers are routed to the same backend
+ server. Two packets are considered part of the same
+ session if they share the same source and
+ destination IP addresses or ports, and are received
+ within a short time window.
+
+ - If set to `source_ip`, the NodeBalancer uses the
+ client's source IP address to route all packets from
+ the same client to the same backend server.
+ enum:
+ - none
+ - session
+ - source_ip
+ example: none
+ type: string
+ x-linode-cli-display: 5
+ udp_check_port:
+ default: 80
+ description: >-
+ UDP NodeBalancers use TCP and HTTP active health
+ checks to ensure back-end nodes can receive traffic.
+ You can specify the health check port that the
+ backend node listens on, which may differ from the
+ UDP port used to serve traffic.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 6
+ udp_session_timeout:
+ default: 16
+ description: >-
+ __Read-only__ The maximum duration in seconds, a UDP
+ session can be idle before it is closed.
+ example: 2
+ maximum: 300
+ minimum: 1
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 12
+ required:
+ - nodes
+ title: UDP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-udp.yaml
+ status: BETA
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to TCP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this TCP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. The `check` is
+ used to determine if backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering
+ a backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of
+ the check in order for it to pass. If this value is
+ not present in the response body of a check request,
+ the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a
+ `5xx` status code will be enough for it to be
+ considered unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the
+ backend does not respond to this request, it's
+ considered to be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `tcp` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 6000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this
+ config belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes:
+ description: >-
+ The NodeBalancer nodes that serve this
+ configuration.
+ items:
+ additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend
+ serving requests for a single port of a
+ NodeBalancer. Nodes are tied to individual
+ NodeBalancer configurations and route traffic over
+ their private IPv4 address, IPv6 address, or VPC
+ IPv4 address. If the same Linode is serving
+ traffic for more than one port on the same
+ NodeBalancer, one NodeBalancer node is required
+ for each config (port) it should serve requests
+ on. For example, if you have four backends, and
+ each should respond to both HTTP and HTTPS
+ requests, you will need two NodeBalancer configs
+ (port 80 and port 443) and four backends each, one
+ for each of the Linodes serving requests for that
+ port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes
+ within a VPC. The following IP types are
+ supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that
+ this Node belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when
+ sending traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not
+ receive traffic.
+
+ - If set to `drain` this backend will not
+ receive _new_ traffic, but connections already
+ pinned to it will continue to be routed to it.
+
+ - If set to `backup`, this backend will only
+ receive traffic if all `accept` nodes are
+ down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this
+ Node belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node,
+ based on the configured checks of its
+ NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The VPC's
+ subnet. To display information about your VPCs
+ and their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request
+ and is not pinned to a single backend yet.
+ Nodes with a higher weight will receive more
+ traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: schemas/node-balancer-node-tcp-http-https.yaml
+ type: object
+ type: array
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends
+ for this port. This data updates periodically as
+ checks are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for
+ this configuration. Port numbers must be unique
+ across TCP, HTTP, and HTTPS configurations on a
+ single NodeBalancer. However, ports assigned to TCP,
+ HTTP, or HTTPS configurations can also be reused for
+ UDP configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration
+ on the same NodeBalancer, but it can't be shared by
+ both a TCP and an HTTP configuration. Although
+ certain ports are traditionally associated with
+ specific protocols, this isn't strictly enforced,
+ and you may configure your NodeBalancer however you
+ find useful.
+ example: 22
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `tcp`
+ in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - tcp
+ example: tcp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ Proxy protocol is a TCP extension that sends initial
+ TCP connection information such as source or
+ destination IPs and ports to backend devices. Proxy
+ protocol preserves initial TCP information that
+ would be lost otherwise. Backend devices must be
+ configured to work with `proxy_protocol` if enabled.
+
+
+ - If omitted, or set to `none`, the NodeBalancer
+ doesn't send any auxiliary data over TCP
+ connections. This is the default.
+
+ - If set to `v1`, the human-readable header format
+ (Version 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version
+ 2) is used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ __Read-only__ Controls how session stickiness is
+ handled on this port.
+
+
+ - If set to `none`, connections will always be
+ assigned a backend based on the algorithm
+ configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+ enum:
+ - none
+ - table
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: TCP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-tcp.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTP NodeBalancer uses for
+ routing traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering
+ a backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value must be present in the
+ response body of the check in order for it to pass.
+ If this value is not present in the response body of
+ a check request, the backend is considered to be
+ down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a
+ `5xx` status code will be enough for it to be
+ considered unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to
+ be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `http` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this
+ config belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes:
+ description: >-
+ The NodeBalancer nodes that serve this
+ configuration.
+ items:
+ additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend
+ serving requests for a single port of a
+ NodeBalancer. Nodes are tied to individual
+ NodeBalancer configurations and route traffic over
+ their private IPv4 address, IPv6 address, or VPC
+ IPv4 address. If the same Linode is serving
+ traffic for more than one port on the same
+ NodeBalancer, one NodeBalancer node is required
+ for each config (port) it should serve requests
+ on. For example, if you have four backends, and
+ each should respond to both HTTP and HTTPS
+ requests, you will need two NodeBalancer configs
+ (port 80 and port 443) and four backends each, one
+ for each of the Linodes serving requests for that
+ port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes
+ within a VPC. The following IP types are
+ supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that
+ this Node belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when
+ sending traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not
+ receive traffic.
+
+ - If set to `drain` this backend will not
+ receive _new_ traffic, but connections already
+ pinned to it will continue to be routed to it.
+
+ - If set to `backup`, this backend will only
+ receive traffic if all `accept` nodes are
+ down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this
+ Node belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node,
+ based on the configured checks of its
+ NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The VPC's
+ subnet. To display information about your VPCs
+ and their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request
+ and is not pinned to a single backend yet.
+ Nodes with a higher weight will receive more
+ traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: schemas/node-balancer-node-tcp-http-https.yaml
+ type: object
+ type: array
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends
+ for this port. This data updates periodically as
+ checks are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for
+ this configuration. Port numbers need to be unique
+ across TCP, HTTP, and HTTPS configurations on a
+ single NodeBalancer. However, ports assigned to TCP,
+ HTTP, or HTTPS configurations can also be reused for
+ UDP configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration
+ on the same NodeBalancer, but it can't be shared by
+ both a TCP and an HTTP configuration. Although
+ certain ports are traditionally associated with
+ specific protocols, this isn't strictly enforced.
+ You may configure your NodeBalancer however you find
+ useful.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `http`
+ in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - http
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections will always be
+ assigned a backend based on the algorithm
+ configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+
+ - If set to `http_cookie`, sessions are routed to
+ the same backend based on a cookie set by the
+ NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-http.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTPS configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTPS NodeBalancer uses for
+ routing traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. The `check` is
+ used to determine if backends are up or down.
+
+
+ - If `none` no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering
+ a backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value must be present in the
+ response body of the check in order for it to pass.
+ If this value is not present in the response body of
+ a check request, the backend is considered to be
+ down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a
+ `5xx` status code will be enough for it to be
+ considered unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to
+ be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by
+ this NodeBalancer. The `legacy` cipher is considered
+ insecure and should only be used if necessary. For
+ information on recommended and legacy ciphers, see
+ [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 5000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this
+ config belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes:
+ description: >-
+ The NodeBalancer nodes that serve this
+ configuration.
+ items:
+ additionalProperties: false
+ description: >-
+ A NodeBalancer node represents a single backend
+ serving requests for a single port of a
+ NodeBalancer. Nodes are tied to individual
+ NodeBalancer configurations and route traffic over
+ their private IPv4 address, IPv6 address, or VPC
+ IPv4 address. If the same Linode is serving
+ traffic for more than one port on the same
+ NodeBalancer, one NodeBalancer node is required
+ for each config (port) it should serve requests
+ on. For example, if you have four backends, and
+ each should respond to both HTTP and HTTPS
+ requests, you will need two NodeBalancer configs
+ (port 80 and port 443) and four backends each, one
+ for each of the Linodes serving requests for that
+ port.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes
+ within a VPC. The following IP types are
+ supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ config_id:
+ description: >-
+ __Read-only__ The NodeBalancer Config ID that
+ this Node belongs to.
+ example: 4567
+ readOnly: true
+ type: integer
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when
+ sending traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not
+ receive traffic.
+
+ - If set to `drain` this backend will not
+ receive _new_ traffic, but connections already
+ pinned to it will continue to be routed to it.
+
+ - If set to `backup`, this backend will only
+ receive traffic if all `accept` nodes are
+ down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The NodeBalancer ID that this
+ Node belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ status:
+ description: >-
+ __Read-only__ The current status of this node,
+ based on the configured checks of its
+ NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The VPC's
+ subnet. To display information about your VPCs
+ and their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request
+ and is not pinned to a single backend yet.
+ Nodes with a higher weight will receive more
+ traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ title: TCP, HTTP, or HTTPS config
+ x-akamai:
+ file-path: schemas/node-balancer-node-tcp-http-https.yaml
+ type: object
+ type: array
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends
+ for this port. This data updates periodically as
+ checks are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered
+ to be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for
+ this configuration. Port numbers must be unique
+ across TCP, HTTP, and HTTPS configurations on a
+ single NodeBalancer. However, ports assigned to TCP,
+ HTTP, or HTTPS configurations can also be reused for
+ UDP configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration
+ on the same NodeBalancer, but it can't be shared by
+ both a TCP and an HTTP configuration. Although
+ certain ports are traditionally associated with
+ specific protocols, this isn't strictly enforced,
+ and you may configure your NodeBalancer however you
+ find useful.
+ example: 443
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve,
+ `https` in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features. The `https`
+ protocol needs to be specified with both `ssl_cert`
+ and `ssl_key`.
+ enum:
+ - https
+ example: https
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTPS configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: >-
+
+ The PEM-formatted public SSL certificate (or the
+ combined PEM-formatted SSL certificate and
+ Certificate Authority chain) that should be served
+ on this NodeBalancerConfig's port.
+
+
+ Line breaks must be represented as `\n` in the
+ string for requests (but not when using the Linode
+ CLI).
+
+
+ [Diffie-Hellman
+ Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ can be included in this value to enable forward
+ secrecy.
+
+
+ The contents of this field will not be shown in any
+ responses that display the NodeBalancerConfig.
+ Instead, `` will be printed where the
+ field appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig response are
+ automatically derived from your certificate. Please
+ refer to these fields to verify that the appropriate
+ certificate was assigned to your NodeBalancerConfig.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name
+ automatically derived from the SSL certificate
+ assigned to this NodeBalancerConfig. Please refer to
+ this field to verify that the appropriate
+ certificate is assigned to your NodeBalancerConfig.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate
+ assigned to this NodeBalancer configuration. Please
+ refer to the `ssl_fingerprint` field to verify that
+ the appropriate certificate is assigned to your
+ NodeBalancer configuration.
+ example: >-
+ 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL
+ certificate set in the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the
+ string for requests (but not when using the Linode
+ CLI).
+
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will
+ be printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig
+
+ response are automatically derived from your
+ certificate. Please refer to these fields to
+
+ verify that the appropriate certificate was assigned
+ to your NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections will always be
+ assigned a backend based on the algorithm
+ configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows
+ sessions to be routed to the same backend based on a
+ cookie set by the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTPS
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-https.yaml
+ x-akamai:
+ file-path: schemas/node-balancer-config.yaml
+ - additionalProperties: false
+ properties:
+ nodes:
+ description: |-
+ The NodeBalancer nodes that serve this config.
+
+ Some considerations for Nodes when rebuilding a config:
+
+ - Current Nodes excluded from the request body will be deleted from the Config.
+ - Current Nodes (identified by their Node ID) will be updated.
+ - New Nodes (included without a Node ID) will be created.
+ items:
+ additionalProperties: false
+ description: NodeBalancer node request object including ID.
+ properties:
+ address:
+ description: >-
+ Backend nodes can be Linodes and Linodes within a
+ VPC. The following IP types are supported:
+ - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.
+ - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.
+ - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached.
+ example:
+ - 192.168.210.120:443
+ - 10.100.5.5:80
+ - '[2300:5800::f03c:93ff:fe6e:1264]:8080'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: The unique ID of the Node to update.
+ example: 54321
+ type: integer
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending
+ traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not receive
+ traffic.
+
+ - If set to `drain` this backend will not receive
+ _new_ traffic, but connections already pinned to
+ it will continue to be routed to it.
+
+ - If set to `backup`, this backend will only
+ receive traffic if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ subnet_id:
+ description: >-
+ Required for VPC backend nodes only. The VPC's
+ subnet. To display information about your VPCs and
+ their subnets, run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation.
+ example: 1
+ type: integer
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and
+ is not pinned to a single backend yet. Nodes with
+ a higher weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ type: object
+ type: array
+ required:
+ - nodes
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-rebuild-node-balancer-config.yaml
+ x-example:
+ x-ref: ../examples/post-rebuild-node-balancer-config.json
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this NodeBalancer should use to route traffic
+ to backends.
+
+ - If set to `roundrobin`, connections are allocated in a
+ weighted circular order across the backends.
+
+ - If set to `leastconn`, allocates new connections to the
+ backend with the least connections.
+
+ - If set to `source`, allocates the client's IP to the same
+ backend on subsequent requests. Session `stickiness` affects
+ this algorithm.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to ensure
+ they're serving requests. This determines if backends are up
+ or down.
+
+ - If `none`, no check is performed.
+
+ - If `connection`, requires a successful TCP handshake with
+ a backend node.
+
+ - If `http`, requires a 2xx or 3xx response from the backend
+ node.
+
+ - If `http_body`, requires the provided regular expression
+ matches against the request's result body.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of the check
+ in order for it to pass. If this value isn't present in the
+ response body of a check request, the backend is considered
+ to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 31
+ description: >-
+ How often, in seconds, to check that backends are up and
+ serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered unhealthy
+ and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ doesn't respond to this request it's considered to be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt before
+ considering it failed. Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by this
+ NodeBalancer. The `legacy` cipher is considered insecure and
+ should only be used if necessary. For information on
+ recommended and legacy ciphers, see [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes:
+ description: The NodeBalancer nodes that serve this configuration.
+ items:
+ additionalProperties: false
+ description: NodeBalancer Node request object including ID.
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be
+ reached: either the Linode’s private IPv4, public
+ IPv6, or the VPC's IPv4 address.
+ example: 192.168.210.120:80
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display purposes
+ only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending
+ traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not receive
+ traffic.
+
+ - If set to `drain` this backend will not receive
+ _new_ traffic, but connections already pinned to it
+ will continue to be routed to it.
+
+ - If set to `backup`, this backend will only receive
+ traffic if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based
+ on the configured checks of its NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and is
+ not pinned to a single backend yet. Nodes with a
+ higher weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ type: object
+ type: array
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ A structure containing information about the
+ health of the backends for this port. This information is
+ updated periodically as checks are performed against
+ backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ "DOWN" and unhealthy. These are not in rotation, and
+ not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ "UP" and healthy, and that are serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ The port for this config. Ports need to be unique across
+ configs for each NodeBalancer. For example, you can't have
+ two configs for port 80. While some protocols are typically
+ assigned specific ports, there's no enforcement, and you can
+ configure your NodeBalancer however you find useful. For
+ example, while port 443 is generally used for HTTPS, you
+ don't need SSL configured to have a NodeBalancer listening
+ on port 443.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol this port is configured to serve.
+
+
+ - The `http` and `tcp` protocols don't support `ssl_cert`
+ and `ssl_key`.
+
+
+ - For the `https` protocol, you need `ssl_cert` and
+ `ssl_key`.
+
+
+ Review our guide on [Available
+ protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - http
+ - https
+ - tcp
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ ProxyProtocol is a TCP extension that sends initial TCP
+ connection information such as source/destination IPs and
+ ports to backend devices. This information would be lost
+ otherwise. Backend devices must be configured to work with
+ ProxyProtocol if enabled.
+
+
+ - If omitted, or set to `none`, the NodeBalancer doesn't
+ send any auxiliary data over TCP connections. This is the
+ default.
+
+ - If set to `v1`, the human-readable header format (Version
+ 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version 2) is
+ used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: >-
+
+ The PEM-formatted public SSL certificate (or the combined
+ PEM-formatted SSL certificate and Certificate Authority
+ chain) that should be served on this NodeBalancerConfig's
+ port.
+
+
+ Line breaks must be represented as `\n` in the string for
+ requests (but not when using the Linode CLI).
+
+
+ [Diffie-Hellman
+ Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ can be included in this value to enable forward secrecy.
+
+
+ The contents of this field will not be shown in any
+ responses that display the NodeBalancerConfig. Instead,
+ `` will be printed where the field appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint` fields
+ in a NodeBalancerConfig response are automatically derived
+ from your certificate. Please refer to these fields to
+ verify that the appropriate certificate was assigned to your
+ NodeBalancerConfig.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name automatically
+ derived from the SSL certificate assigned to this
+ NodeBalancerConfig. Please refer to this field to verify
+ that the appropriate certificate is assigned to your
+ NodeBalancerConfig.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate assigned to
+ this NodeBalancer configuration. Please refer to the
+ `ssl_fingerprint` field to verify that the appropriate
+ certificate is assigned to your NodeBalancer configuration.
+ example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL certificate set in
+ the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the string for
+ requests (but not when using the Linode CLI).
+
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will be
+ printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint` fields
+ in a NodeBalancerConfig
+
+ response are automatically derived from your certificate.
+ Please refer to these fields to
+
+ verify that the appropriate certificate was assigned to your
+ NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ Controls how session stickiness is handled on this port.
+
+ - If set to `none`, connections will always be assigned a
+ backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote address
+ will be routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows sessions
+ to be routed to the same backend based on a cookie set by
+ the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-rebuild-cli.yaml
+ x-linode-cli-subtables:
+ - nodes
+ description: Information about the NodeBalancer configuration to rebuild.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: NodeBalancer `config` options for each protocol.
+ oneOf:
+ - additionalProperties: false
+ description: >-
+ __Beta__ A NodeBalancer configuration defines the protocol
+ and settings for a specific port on the NodeBalancer.
+ These fields apply to UDP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this UDP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - ring_hash
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of the
+ check in order for it to pass. If this value isn't
+ present in the response body of a check request, the
+ backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ description: __Read-only__ Must be `false` for UDP.
+ example: false
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 7
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ does not respond to this request, it's considered to
+ be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `udp` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 7000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `udp` in
+ this case. Review our guide on [Available
+ Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - udp
+ example: udp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ description: __Read-only__ Must be `none` for UDP.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for UPD configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for UDP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: session
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections are assigned a backend
+ server based on the algorithm configured.
+
+ - If set to `session`, all packets with the same
+ session identifiers are routed to the same backend
+ server. Two packets are considered part of the same
+ session if they share the same source and destination
+ IP addresses or ports, and are received within a short
+ time window.
+
+ - If set to `source_ip`, the NodeBalancer uses the
+ client's source IP address to route all packets from
+ the same client to the same backend server.
+ enum:
+ - none
+ - session
+ - source_ip
+ example: none
+ type: string
+ x-linode-cli-display: 5
+ udp_check_port:
+ default: 80
+ description: >-
+ UDP NodeBalancers use TCP and HTTP active health
+ checks to ensure back-end nodes can receive traffic.
+ You can specify the health check port that the backend
+ node listens on, which may differ from the UDP port
+ used to serve traffic.
+ example: 5795
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 6
+ udp_session_timeout:
+ default: 16
+ description: >-
+ __Read-only__ The maximum duration in seconds, a UDP
+ session can be idle before it is closed.
+ example: 2
+ maximum: 300
+ minimum: 1
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 11
+ required:
+ - nodes
+ title: UDP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-udp-response.yaml
+ status: BETA
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to TCP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this TCP NodeBalancer uses to route
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: leastconn
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of the
+ check in order for it to pass. If this value is not
+ present in the response body of a check request, the
+ backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code is enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ does not respond to this request, it's considered to
+ be down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `tcp` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 6000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 22
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `tcp` in
+ this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - tcp
+ example: tcp
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ Proxy protocol is a TCP extension that sends initial
+ TCP connection information such as source or
+ destination IPs and ports to backend devices. Proxy
+ protocol preserves initial TCP information that would
+ be lost otherwise. Backend devices must be configured
+ to work with `proxy_protocol` if enabled.
+
+
+ - If omitted, or set to `none`, the NodeBalancer
+ doesn't send any auxiliary data over TCP connections.
+ This is the default.
+
+ - If set to `v1`, the human-readable header format
+ (Version 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version 2)
+ is used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for TCP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ __Read-only__ Controls how session stickiness is
+ handled on this port.
+
+
+ Not applicable to TCP configurations.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: TCP
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-tcp-response.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTP configurations.
+ properties:
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this HTTP NodeBalancer uses for routing
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. This determines if
+ backends are up or down.
+
+
+ - If `none`, no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value needs to be in the response
+ body of the check in order for it to pass. Otherwise
+ the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ How often, in seconds, to check that backends are up
+ and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ description: __Read-only__ Not applicable for `http` configs.
+ example: none
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ Identifies the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers need to be unique across
+ TCP, HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced. You may
+ configure your NodeBalancer however you find useful.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `http`
+ in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features.
+ enum:
+ - http
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: none
+ readOnly: true
+ type: string
+ ssl_cert:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ ssl_commonname:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: ''
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: __Read-only__ Not applicable for HTTP configs.
+ example: null
+ nullable: true
+ readOnly: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
- Each Config must have a unique port and at least one Node.
- required:
- - nodes
- items:
+ - If set to `none`, connections are always assigned a
+ backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote
+ address are routed to the same backend.
+
+ - If set to `http_cookie`, sessions are routed to the
+ same backend based on a cookie set by the
+ NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTP
type: object
- description: 'A request object representing a NodeBalancer Config, including Nodes.'
+ x-akamai:
+ file-path: schemas/node-balancer-config-http-response.yaml
+ - additionalProperties: false
+ description: >-
+ A NodeBalancer configuration defines the protocol and
+ settings for a specific port on the NodeBalancer. These
+ fields apply to HTTPS configurations.
properties:
- port:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/port'
- protocol:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/protocol'
algorithm:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/algorithm'
- stickiness:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/stickiness'
+ default: roundrobin
+ description: >-
+ The algorithm this HTTPS NodeBalancer uses for routing
+ traffic to backends.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
check:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/check'
- check_interval:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/check_interval'
- check_timeout:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/check_timeout'
+ default: none
+ description: >-
+ The type of check to perform against backends to
+ ensure they are serving requests. The `check` is used
+ to determine if backends are up or down.
+
+
+ - If `none` no check is performed.
+
+ - `connection` requires only a connection to the
+ backend to succeed.
+
+ - `http` and `http_body` rely on the backend serving
+ HTTP, and that the response returned matches what is
+ expected.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
check_attempts:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/check_attempts'
- check_path:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/check_path'
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
check_body:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/check_body'
+ description: >-
+ Use when the active health `check` type is
+ `http_body`. This value must be present in the
+ response body of the check in order for it to pass. If
+ this value is not present in the response body of a
+ check request, the backend is considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 5
+ description: >-
+ The number of seconds between each check that backends
+ are up and serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ maximum: 3600
+ minimum: 2
+ type: integer
check_passive:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/check_passive'
- proxy_protocol:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/proxy_protocol'
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. Use when the
+ active health `check` type is `http`. If the backend
+ doesn't respond to this request, it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 3
+ description: >-
+ How long, in seconds, to wait for a check attempt
+ before considering it failed.
+
+
+ Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
cipher_suite:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/cipher_suite'
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by this
+ NodeBalancer. The `legacy` cipher is considered
+ insecure and should only be used if necessary. For
+ information on recommended and legacy ciphers, see
+ [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 5000
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Describes the health of the backends for
+ this port. This data updates periodically as checks
+ are performed against backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `DOWN` and unhealthy. These are not in
+ rotation, and not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to
+ be `UP` and healthy, and that are serving
+ requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ This is the port the NodeBalancer listens on for this
+ configuration. Port numbers must be unique across TCP,
+ HTTP, and HTTPS configurations on a single
+ NodeBalancer. However, ports assigned to TCP, HTTP, or
+ HTTPS configurations can also be reused for UDP
+ configurations. For example, Port 80 can
+ simultaneously serve a TCP and a UDP configuration on
+ the same NodeBalancer, but it can't be shared by both
+ a TCP and an HTTP configuration. Although certain
+ ports are traditionally associated with specific
+ protocols, this isn't strictly enforced, and you may
+ configure your NodeBalancer however you find useful.
+ example: 443
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol the port is configured to serve, `https`
+ in this case. Review our guide on [Available
+ protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols)
+ for information on protocol features. The `https`
+ protocol needs to be specified with both `ssl_cert`
+ and `ssl_key`.
+ enum:
+ - https
+ example: https
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: __Read-only__ Not applicable for HTTPS configs.
+ example: none
+ readOnly: true
+ type: string
ssl_cert:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/ssl_cert'
+ description: >-
+
+ The PEM-formatted public SSL certificate (or the
+ combined PEM-formatted SSL certificate and Certificate
+ Authority chain) that should be served on this
+ NodeBalancerConfig's port.
+
+
+ Line breaks must be represented as `\n` in the string
+ for requests (but not when using the Linode CLI).
+
+
+ [Diffie-Hellman
+ Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ can be included in this value to enable forward
+ secrecy.
+
+
+ The contents of this field will not be shown in any
+ responses that display the NodeBalancerConfig.
+ Instead, `` will be printed where the field
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig response are
+ automatically derived from your certificate. Please
+ refer to these fields to verify that the appropriate
+ certificate was assigned to your NodeBalancerConfig.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name automatically
+ derived from the SSL certificate assigned to this
+ NodeBalancerConfig. Please refer to this field to
+ verify that the appropriate certificate is assigned to
+ your NodeBalancerConfig.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate
+ assigned to this NodeBalancer configuration. Please
+ refer to the `ssl_fingerprint` field to verify that
+ the appropriate certificate is assigned to your
+ NodeBalancer configuration.
+ example: >-
+ 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
ssl_key:
- $ref: '#/components/schemas/NodeBalancerConfig/properties/ssl_key'
- nodes:
- type: array
- description: |
- The NodeBalancer Node(s) that serve this Config.
- items:
- $ref: '#/components/schemas/NodeBalancerNode'
- responses:
- '200':
- description: NodeBalancer created successfully.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NodeBalancer'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "region": "us-east",
- "label": "balancer12345",
- "client_conn_throttle": 0,
- "configs": [
- {
- "port": 443,
- "protocol": "https",
- "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": "none",
- "cipher_suite": "recommended",
- "ssl_cert": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_INFORMATION\n-----END CERTIFICATE-----",
- "ssl_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY_INFORMATION\n-----END PRIVATE KEY-----",
- "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
- - lang: CLI
- source: |
- linode-cli nodebalancers create \
- --region us-east \
- --label balancer12345 \
- --client_conn_throttle 0
- '/nodebalancers/{nodeBalancerId}':
- get:
- x-linode-grant: read_only
- tags:
- - NodeBalancers
- summary: NodeBalancer View
- description: |
- Returns a single NodeBalancer you can access.
- operationId: getNodeBalancer
- x-linode-cli-action: view
- security:
- - personalAccessToken: []
- - oauth:
- - 'nodebalancers:read_only'
- responses:
- '200':
- description: The requested NodeBalancer object.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NodeBalancer'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/nodebalancers/12345
- - lang: CLI
- source: |
- linode-cli nodebalancers view 12345
- parameters:
- - name: nodeBalancerId
- in: path
- description: The ID of the NodeBalancer to access.
- required: true
- schema:
- type: integer
- put:
- x-linode-grant: read_write
- tags:
- - NodeBalancers
- summary: NodeBalancer Update
- description: |
- Updates information about a NodeBalancer you can access.
- operationId: updateNodeBalancer
- x-linode-cli-action: update
- security:
- - personalAccessToken: []
- - oauth:
- - 'nodebalancers:read_write'
- requestBody:
- description: The information to update.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NodeBalancer'
- responses:
- '200':
- description: NodeBalancer updated successfully.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NodeBalancer'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "label": "balancer12345",
- "client_conn_throttle": 0
- }' \
- https://api.linode.com/v4/nodebalancers/12345
- - lang: CLI
- source: |
- linode-cli nodebalancers update 12345 \
- --label balancer12345 \
- --client_conn_throttle 0
- parameters:
- - name: nodeBalancerId
- in: path
- description: The ID of the NodeBalancer to access.
- required: true
- schema:
- type: integer
- delete:
- x-linode-grant: read_write
- tags:
- - NodeBalancers
- summary: NodeBalancer Delete
- description: |
- Deletes a NodeBalancer.
+ description: >-
+ The PEM-formatted private key for the SSL certificate
+ set in the `ssl_cert` field.
- **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
- - rm
- security:
- - personalAccessToken: []
- - oauth:
- - 'nodebalancers:read_write'
- responses:
- '200':
- description: NodeBalancer deleted successfully.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/nodebalancers/12345
- - lang: CLI
- source: |
- linode-cli nodebalancers delete 12345
- parameters:
- - name: nodeBalancerId
- in: path
- description: The ID of the NodeBalancer to access.
- required: true
- schema:
- type: integer
- '/nodebalancers/{nodeBalancerId}/configs':
- get:
- x-linode-grant: read_only
- tags:
- - NodeBalancers
- parameters:
- - name: nodeBalancerId
- in: path
- description: The ID of the NodeBalancer to access.
- required: true
- schema:
- type: integer
- summary: Configs List
- 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.
+ Line breaks must be represented as `\n` in the string
+ for requests (but not when using the Linode CLI).
- For example, if you wanted to accept standard HTTP traffic, you would need a Config listening on port 80.
- operationId: getNodeBalancerConfigs
- x-linode-cli-action: configs-list
- security:
- - personalAccessToken: []
- - oauth:
- - 'nodebalancers:read_only'
- responses:
- '200':
- description: A paginted list of NodeBalancer Configs
- content:
- application/json:
- schema:
- type: object
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will be
+ printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig
+
+ response are automatically derived from your
+ certificate. Please refer to these fields to
+
+ verify that the appropriate certificate was assigned
+ to your NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: table
+ description: >-
+ Controls how session stickiness is handled on this
+ port.
+
+
+ - If set to `none`, connections will always be
+ assigned a backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote
+ address will be routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows
+ sessions to be routed to the same backend based on a
+ cookie set by the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ required:
+ - nodes
+ title: HTTPS
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-https-response.yaml
+ x-akamai:
+ file-path: schemas/node-balancer-config-response.yaml
+ x-example:
+ x-ref: ../examples/post-rebuild-node-balancer-config-200.json
+ x-linode-cli-use-schema:
+ additionalProperties: false
properties:
- data:
- type: array
+ algorithm:
+ default: roundrobin
+ description: >-
+ The algorithm this NodeBalancer should use to route
+ traffic to backends.
+
+ - If set to `roundrobin`, connections are allocated in a
+ weighted circular order across the backends.
+
+ - If set to `leastconn`, allocates new connections to the
+ backend with the least connections.
+
+ - If set to `source`, allocates the client's IP to the
+ same backend on subsequent requests. Session `stickiness`
+ affects this algorithm.
+ enum:
+ - roundrobin
+ - leastconn
+ - source
+ example: roundrobin
+ type: string
+ x-linode-cli-display: 4
+ check:
+ default: none
+ description: >-
+ The type of check to perform against backends to ensure
+ they're serving requests. This determines if backends are
+ up or down.
+
+ - If `none`, no check is performed.
+
+ - If `connection`, requires a successful TCP handshake
+ with a backend node.
+
+ - If `http`, requires a 2xx or 3xx response from the
+ backend node.
+
+ - If `http_body`, requires the provided regular expression
+ matches against the request's result body.
+ enum:
+ - none
+ - connection
+ - http
+ - http_body
+ example: http_body
+ type: string
+ check_attempts:
+ default: 3
+ description: >-
+ How many times to attempt a check before considering a
+ backend to be down.
+ example: 3
+ maximum: 30
+ minimum: 1
+ type: integer
+ check_body:
+ description: >-
+ This value must be present in the response body of the
+ check in order for it to pass. If this value isn't present
+ in the response body of a check request, the backend is
+ considered to be down.
+ example: it works
+ type: string
+ check_interval:
+ default: 31
+ description: >-
+ How often, in seconds, to check that backends are up and
+ serving requests.
+
+
+ Must be greater than `check_timeout`.
+ example: 90
+ type: integer
+ check_passive:
+ default: true
+ description: >-
+ If `true`, any response from this backend with a `5xx`
+ status code will be enough for it to be considered
+ unhealthy and taken out of rotation.
+ example: true
+ type: boolean
+ x-linode-cli-display: 6
+ check_path:
+ description: >-
+ The URL path to check on each backend. If the backend
+ doesn't respond to this request it's considered to be
+ down.
+ example: /test
+ pattern: ^[a-zA-Z0-9\/\-%?&=.]*$
+ type: string
+ check_timeout:
+ default: 30
+ description: >-
+ How long, in seconds, to wait for a check attempt before
+ considering it failed. Must be less than `check_interval`.
+ example: 10
+ maximum: 30
+ minimum: 1
+ type: integer
+ cipher_suite:
+ default: recommended
+ description: >-
+ What ciphers to use for SSL connections served by this
+ NodeBalancer. The `legacy` cipher is considered insecure
+ and should only be used if necessary. For information on
+ recommended and legacy ciphers, see [TLS cipher
+ suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites).
+ enum:
+ - recommended
+ - legacy
+ example: recommended
+ type: string
+ x-linode-cli-color:
+ default_: white
+ legacy: red
+ x-linode-cli-display: 7
+ id:
+ description: __Read-only__ This config's unique ID.
+ example: 4567
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ nodebalancer_id:
+ description: >-
+ __Read-only__ The ID for the NodeBalancer this config
+ belongs to.
+ example: 12345
+ readOnly: true
+ type: integer
+ nodes:
+ description: The NodeBalancer nodes that serve this configuration.
items:
- $ref: '#/components/schemas/NodeBalancerConfig'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/nodebalancers/12345/configs
- - lang: CLI
- source: |
- linode-cli nodebalancers configs-list 12345
- post:
- x-linode-grant: read_write
- tags:
- - NodeBalancers
- summary: Config Create
- description: |
- Creates a NodeBalancer Config, which allows the NodeBalancer to accept traffic on a new port. You will need to add NodeBalancer Nodes to the new Config before it can actually serve requests.
- operationId: createNodeBalancerConfig
- x-linode-cli-action: config-create
- security:
- - personalAccessToken: []
- - oauth:
- - 'nodebalancers:read_write'
- requestBody:
- description: Information about the port to configure.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NodeBalancerConfig'
- responses:
- '200':
- description: Config created successfully.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NodeBalancerConfig'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "port": 443,
- "protocol": "https",
- "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": "none",
- "ssl_cert": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_INFORMATION\n-----END CERTIFICATE-----",
- "ssl_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY_INFORMATION\n-----END PRIVATE KEY-----",
- "cipher_suite": "recommended"
- }' \
- https://api.linode.com/v4/nodebalancers/12345/configs
- - lang: CLI
- source: |
- linode-cli nodebalancers config-create 12345 \
- --port 443 \
- --protocol https \
- --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 "none" \
- --ssl_cert "-----BEGIN CERTIFICATE-----
- CERTIFICATE_INFORMATION
- -----END CERTIFICATE-----" \
- --ssl_key "-----BEGIN PRIVATE KEY-----
- PRIVATE_KEY_INFORMATION
- -----END PRIVATE KEY-----" \
- --cipher_suite recommended
- parameters:
- - name: nodeBalancerId
- in: path
- description: The ID of the NodeBalancer to access.
- required: true
- schema:
- type: integer
- '/nodebalancers/{nodeBalancerId}/configs/{configId}':
- get:
- x-linode-grant: read_only
- tags:
- - NodeBalancers
- summary: Config View
- description: |
- Returns configuration information for a single port of this NodeBalancer.
- operationId: getNodeBalancerConfig
- x-linode-cli-action: config-view
- security:
- - personalAccessToken: []
- - oauth:
- - 'nodebalancers:read_only'
- responses:
- '200':
- description: The requested NodeBalancer config.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NodeBalancerConfig'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/nodebalancers/12345/configs/4567
- - lang: CLI
- source: |
- linode-cli nodebalancers config-view \
- 12345 4567
- 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
- put:
- x-linode-grant: read_write
- tags:
- - NodeBalancers
- summary: Config Update
- description: |
- Updates the configuration for a single port on a NodeBalancer.
- operationId: updateNodeBalancerConfig
- x-linode-cli-action: config-update
- security:
- - personalAccessToken: []
- - oauth:
- - 'nodebalancers:read_write'
- requestBody:
- description: The fields to update.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NodeBalancerConfig'
- responses:
- '200':
- description: Config updated successfully.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NodeBalancerConfig'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "port": 443,
- "protocol": "https",
- "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": "none",
- "ssl_cert": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_INFORMATION\n-----END CERTIFICATE-----",
- "ssl_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY_INFORMATION\n-----END PRIVATE KEY-----",
- "cipher_suite": "recommended"
- }' \
- https://api.linode.com/v4/nodebalancers/12345/configs/4567
- - lang: CLI
- source: |
- linode-cli nodebalancers config-update \
- 12345 4567 \
- --port 443 \
- --protocol https \
- --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 "none" \
- --ssl_cert "-----BEGIN CERTIFICATE-----
- CERTIFICATE_INFORMATION
- -----END CERTIFICATE-----" \
- --ssl_key "-----BEGIN PRIVATE KEY-----
- PRIVATE_KEY_INFORMATION
- -----END PRIVATE KEY-----" \
- --cipher_suite recommended
- 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
- delete:
- x-linode-grant: read_write
- tags:
- - NodeBalancers
- summary: Config Delete
- description: |
- Deletes the Config for a port of this NodeBalancer.
+ additionalProperties: false
+ description: NodeBalancer Node request object including ID.
+ properties:
+ address:
+ description: >-
+ The address and port where this backend can be
+ reached: either the Linode’s private IPv4, public
+ IPv6, or the VPC's IPv4 address.
+ example: 192.168.210.120:80
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Read-only__ This node's unique ID.
+ example: 54321
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ The label for this node. This is for display
+ purposes only.
+ example: node54321
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_.]{3,32}'
+ type: string
+ x-linode-cli-display: 2
+ mode:
+ description: >-
+ The mode this NodeBalancer should use when sending
+ traffic to this backend.
+
+
+ - If set to `accept` this backend is accepting
+ traffic.
+
+ - If set to `reject` this backend will not receive
+ traffic.
+
+ - If set to `drain` this backend will not receive
+ _new_ traffic, but connections already pinned to it
+ will continue to be routed to it.
+
+ - If set to `backup`, this backend will only receive
+ traffic if all `accept` nodes are down.
+ enum:
+ - accept
+ - reject
+ - drain
+ - backup
+ example: accept
+ type: string
+ x-linode-cli-display: 6
+ status:
+ description: >-
+ __Read-only__ The current status of this node, based
+ on the configured checks of its NodeBalancer Config.
+ enum:
+ - unknown
+ - UP
+ - DOWN
+ example: UP
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ DOWN: red
+ UP: green
+ default_: white
+ unknown: yellow
+ x-linode-cli-display: 4
+ weight:
+ description: >-
+ Used when picking a backend to serve a request and
+ is not pinned to a single backend yet. Nodes with a
+ higher weight will receive more traffic.
+ example: 50
+ maximum: 255
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 5
+ type: object
+ type: array
+ nodes_status:
+ additionalProperties: false
+ description: >-
+ __Read-only__ A structure containing information about the
+ health of the backends for this port. This information is
+ updated periodically as checks are performed against
+ backends.
+ properties:
+ down:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ "DOWN" and unhealthy. These are not in rotation, and
+ not serving requests.
+ example: 0
+ readOnly: true
+ type: integer
+ up:
+ description: >-
+ __Read-only__ The number of backends considered to be
+ "UP" and healthy, and that are serving requests.
+ example: 4
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ x-linode-cli-display: 10
+ port:
+ default: 80
+ description: >-
+ The port for this config. Ports need to be unique across
+ configs for each NodeBalancer. For example, you can't have
+ two configs for port 80. While some protocols are
+ typically assigned specific ports, there's no enforcement,
+ and you can configure your NodeBalancer however you find
+ useful. For example, while port 443 is generally used for
+ HTTPS, you don't need SSL configured to have a
+ NodeBalancer listening on port 443.
+ example: 80
+ maximum: 65535
+ minimum: 1
+ type: integer
+ x-linode-cli-display: 2
+ protocol:
+ default: http
+ description: >-
+ The protocol this port is configured to serve.
+
+
+ - The `http` and `tcp` protocols don't support `ssl_cert`
+ and `ssl_key`.
+
+
+ - For the `https` protocol, you need `ssl_cert` and
+ `ssl_key`.
+
+
+ Review our guide on [Available
+ protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/)
+ for information on protocol features.
+ enum:
+ - http
+ - https
+ - tcp
+ example: http
+ type: string
+ x-linode-cli-display: 3
+ proxy_protocol:
+ default: none
+ description: >-
+ ProxyProtocol is a TCP extension that sends initial TCP
+ connection information such as source/destination IPs and
+ ports to backend devices. This information would be lost
+ otherwise. Backend devices must be configured to work with
+ ProxyProtocol if enabled.
+
+
+ - If omitted, or set to `none`, the NodeBalancer doesn't
+ send any auxiliary data over TCP connections. This is the
+ default.
+
+ - If set to `v1`, the human-readable header format
+ (Version 1) is used. Requires `tcp` protocol.
+
+ - If set to `v2`, the binary header format (Version 2) is
+ used. Requires `tcp` protocol.
+ enum:
+ - none
+ - v1
+ - v2
+ example: none
+ type: string
+ ssl_cert:
+ description: >-
+
+ The PEM-formatted public SSL certificate (or the combined
+ PEM-formatted SSL certificate and Certificate Authority
+ chain) that should be served on this NodeBalancerConfig's
+ port.
+
+
+ Line breaks must be represented as `\n` in the string for
+ requests (but not when using the Linode CLI).
- **This cannot be undone.**
- Once completed, this NodeBalancer will no longer respond to requests on the given port. This also deletes all associated NodeBalancerNodes, but the Linodes they were routing traffic to will be unchanged and will not be removed.
- operationId: deleteNodeBalancerConfig
- x-linode-cli-action: config-delete
- security:
- - personalAccessToken: []
- - oauth:
- - 'nodebalancers:read_write'
- responses:
- '200':
- description: NodeBalancer Config deleted successfully.
+ [Diffie-Hellman
+ Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters)
+ can be included in this value to enable forward secrecy.
+
+
+ The contents of this field will not be shown in any
+ responses that display the NodeBalancerConfig. Instead,
+ `` will be printed where the field appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig response are automatically
+ derived from your certificate. Please refer to these
+ fields to verify that the appropriate certificate was
+ assigned to your NodeBalancerConfig.
+ example:
+ format: ssl-cert
+ nullable: true
+ type: string
+ ssl_commonname:
+ description: >-
+ __Read-only__ The read-only common name automatically
+ derived from the SSL certificate assigned to this
+ NodeBalancerConfig. Please refer to this field to verify
+ that the appropriate certificate is assigned to your
+ NodeBalancerConfig.
+ example: www.example.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ ssl_fingerprint:
+ description: >-
+ __Read-only__ The read-only SHA1-encoded fingerprint
+ automatically derived from the SSL certificate assigned to
+ this NodeBalancer configuration. Please refer to the
+ `ssl_fingerprint` field to verify that the appropriate
+ certificate is assigned to your NodeBalancer
+ configuration.
+ example: >-
+ 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13
+ readOnly: true
+ type: string
+ x-linode-cli-display: 9
+ ssl_key:
+ description: >-
+ The PEM-formatted private key for the SSL certificate set
+ in the `ssl_cert` field.
+
+
+ Line breaks must be represented as `\n` in the string for
+ requests (but not when using the Linode CLI).
+
+
+ The contents of this field will not be shown in any
+ responses that display
+
+ the NodeBalancerConfig. Instead, `` will be
+ printed where the field
+
+ appears.
+
+
+ The read-only `ssl_commonname` and `ssl_fingerprint`
+ fields in a NodeBalancerConfig
+
+ response are automatically derived from your certificate.
+ Please refer to these fields to
+
+ verify that the appropriate certificate was assigned to
+ your NodeBalancerConfig.
+ example:
+ format: ssl-key
+ nullable: true
+ type: string
+ stickiness:
+ default: none
+ description: >-
+ Controls how session stickiness is handled on this port.
+
+ - If set to `none`, connections will always be assigned a
+ backend based on the algorithm configured.
+
+ - If set to `table`, sessions from the same remote address
+ will be routed to the same backend.
+
+ - For HTTP or HTTPS clients, `http_cookie` allows sessions
+ to be routed to the same backend based on a cookie set by
+ the NodeBalancer.
+ enum:
+ - none
+ - table
+ - http_cookie
+ example: http_cookie
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-config-rebuild-cli.yaml
+ x-linode-cli-subtables:
+ - nodes
+ description: NodeBalancer created successfully.
+ default:
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/nodebalancers/12345/configs/4567
- - lang: CLI
- source: |
- linode-cli nodebalancers config-delete \
- 12345 4567
- 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
- '/nodebalancers/{nodeBalancerId}/configs/{configId}/rebuild':
- post:
- x-linode-grant: add_nodebalancers
- tags:
- - NodeBalancers
- summary: Config Rebuild
- description: |
- Rebuilds a NodeBalancer Config and its Nodes that you have permission to modify.
-
- Use this command to update a NodeBalancer's Config and Nodes with a single request.
- operationId: rebuildNodeBalancerConfig
- x-linode-cli-action: config-rebuild
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'nodebalancers:read_write'
- requestBody:
- description: |
- Information about the NodeBalancer Config to rebuild.
+ - nodebalancers:read_write
+ summary: Rebuild a config
+ tags:
+ - Configurations
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli nodebalancers config-rebuild \
+ 12345 4567 \
+ --port 443 \
+ --protocol https \
+ --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 "none" \
+ --ssl_cert "-----BEGIN CERTIFICATE-----
+ CERTIFICATE_INFORMATION
+ -----END CERTIFICATE-----" \
+ --ssl_key "-----BEGIN PRIVATE KEY-----
+ PRIVATE_KEY_INFORMATION
+ -----END PRIVATE KEY-----" \
+ --cipher_suite recommended \
+ --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
+ --nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' \
+ --nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
+ title: 'CLI: HTTPS'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ linode-cli nodebalancers config-rebuild \
+ 12345 4567 \
+ --port 80 \
+ --protocol udp \
+ --algorithm ring_hash \
+ --udp_check_port 80 \
+ --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
+ --nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50}]' \
+ --nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
+ title: 'CLI: UDP'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ linode-cli nodebalancers config-rebuild \
+ 12345 4567 \
+ --port 80 \
+ --protocol tcp \
+ --algorithm roundrobin \
+ --stickiness none \
+ --proxy_protocol "v2"
+ --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
+ --nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' \
+ --nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
+ title: 'CLI: TCP'
+ url: https://www.linode.com/docs/products/tools/cli/get-started/
+ - syntax: |-
+ linode-cli nodebalancers config-rebuild \
+ 12345 4567 \
+ --port 440 \
+ --protocol http \
+ --algorithm roundrobin \
+ --stickiness none \
+ --check http_body \
+ --check_interval 90 \
+ --check_timeout 10 \
+ --check_attempts 3 \
+ --check_path "/test" \
+ --check_body "it works" \
+ --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
+ --nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' \
+ --nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
+ title: 'CLI: HTTP'
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: config-rebuild
+ x-linode-grant: add_nodebalancers
+ parameters:
+ - description: The ID of the NodeBalancer.
+ example: '{{nodeBalancerId}}'
+ in: path
+ name: nodeBalancerId
required: true
- content:
- application/json:
- schema:
- allOf:
- - $ref: '#/components/schemas/NodeBalancerConfig'
- - type: object
- required:
- - nodes
- properties:
- nodes:
- type: array
- description: |
- The NodeBalancer Node(s) that serve this Config.
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/node-balancer-id.yaml
+ - description: The ID of the Config to access.
+ example: '{{configId}}'
+ in: path
+ name: configId
+ required: true
+ schema:
+ example: 521
+ type: integer
+ x-akamai:
+ file-path: parameters/config-id.yaml
+ x-akamai:
+ file-path: paths/config-rebuild.yaml
+ path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/rebuild
+ x-linode-cli-command: nodebalancers
+ /nodebalancers/{nodeBalancerId}/firewalls:
+ get:
+ description: >-
+ View information for Firewalls assigned to this NodeBalancer.
- Some considerations for Nodes when rebuilding a config:
- * Current Nodes excluded from the request body will be deleted from the Config.
- * Current Nodes (identified by their Node ID) will be updated.
- * New Nodes (included without a Node ID) will be created.
- items:
- type: object
- description: NodeBalancer Node request object including ID.
- properties:
- id:
- type: integer
- description: The unique ID of the Node to update.
- example: 54321
- address:
- $ref: '#/components/schemas/NodeBalancerNode/properties/address'
- label:
- $ref: '#/components/schemas/NodeBalancerNode/properties/label'
- weight:
- $ref: '#/components/schemas/NodeBalancerNode/properties/weight'
- mode:
- $ref: '#/components/schemas/NodeBalancerNode/properties/mode'
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-node-balancer-firewalls
+ operationId: get-node-balancer-firewalls
responses:
'200':
- description: NodeBalancer created successfully.
content:
application/json:
+ example:
+ data:
+ - created: '2018-01-01T00:01:01'
+ id: 123
+ label: firewall123
+ rules:
+ inbound:
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 192.0.2.0/24
+ - 192.0.2.167/24
+ ipv6:
+ - 2001:DB8::/128
+ description: An example firewall rule description.
+ label: firewallrule123
+ ports: 22-24, 80, 443
+ protocol: TCP
+ inbound_policy: DROP
+ outbound:
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 192.0.2.0/24
+ - 192.0.2.1/24
+ ipv6:
+ - 2001:DB8::/128
+ description: An example firewall rule description.
+ label: firewallrule123
+ ports: 22-24, 80, 443
+ protocol: TCP
+ outbound_policy: DROP
+ status: enabled
+ tags:
+ - example tag
+ - another example
+ updated: '2018-01-02T00:01:01'
+ page: 1
+ pages: 1
+ results: 1
schema:
- $ref: '#/components/schemas/NodeBalancerConfig'
+ allOf:
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ A resource that controls incoming and outgoing
+ network traffic to a compute service. Only one
+ enabled Firewall can be attached to a particular
+ service at any given time. [Create a firewall
+ device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device)
+ to assign a Firewall to a service. Currently,
+ Firewalls can assigned to Linode compute instances
+ and NodeBalancers.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall
+ was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ id:
+ description: >-
+ __Filterable__, __Read-only__ The Firewall's
+ unique ID.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ The Firewall's label, for display
+ purposes only.
+
+
+ Firewall labels have the following constraints:
+
+ - Must begin and end with an alphanumeric character.
+ - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.
+ - Must be between 3 and 32 characters.
+ - Must be unique.
+ example: firewall123
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ rules:
+ additionalProperties: false
+ description: >-
+ The inbound and outbound access rules to apply
+ to the Firewall.
+
+
+ A Firewall may have up to 25 rules across its
+ inbound and outbound rulesets.
+
+
+ Multiple rules are applied in order. If two
+ rules conflict, the first rule takes precedence.
+ For example, if the first rule accepts inbound
+ traffic from an address, and the second rule
+ drops inbound traffic the same address, the
+ first rule applies and inbound traffic from that
+ address is accepted.
+ properties:
+ fingerprint:
+ description: >-
+ __Read-only__ The fingerprint is a 32-bit
+ hash. It represents the firewall rules as an
+ 8 character hex string. You can use
+ `fingerprint` to compare rule versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: >-
+ The inbound rules for the firewall, as a
+ JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound
+ access rules. The `ports` property can be
+ used to allow traffic on a comma-separated
+ list of different ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or
+ dropped by this rule. Overrides the
+ Firewall's `inbound_policy` if this is
+ an inbound rule, or the
+ `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by
+ this rule. A rule can have up to 255
+ total addresses or networks listed
+ across its `ipv4` and `ipv6` arrays. A
+ network and a single IP are treated as
+ equivalent when accounting for this
+ limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format.
+ Must not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and
+ must not include zone_id notation as
+ described in [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this
+ rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display
+ purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display
+ purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports
+ affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports
+ are affected.
+
+ - Only allowed for the TCP and UDP
+ protocols. Ports are not allowed for the
+ ICMP and IPENCAP protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by
+ this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: >-
+ The default behavior for inbound traffic.
+ This setting can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the
+ Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: >-
+ The outbound rules for the firewall, as a
+ JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound
+ access rules. The `ports` property can be
+ used to allow traffic on a comma-separated
+ list of different ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or
+ dropped by this rule. Overrides the
+ Firewall's `inbound_policy` if this is
+ an inbound rule, or the
+ `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by
+ this rule. A rule can have up to 255
+ total addresses or networks listed
+ across its `ipv4` and `ipv6` arrays. A
+ network and a single IP are treated as
+ equivalent when accounting for this
+ limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format.
+ Must not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and
+ must not include zone_id notation as
+ described in [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this
+ rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display
+ purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display
+ purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports
+ affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports
+ are affected.
+
+ - Only allowed for the TCP and UDP
+ protocols. Ports are not allowed for the
+ ICMP and IPENCAP protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by
+ this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: >-
+ The default behavior for outbound traffic.
+ This setting can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the
+ Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: >-
+ __Read-only__ The firewall's rule version.
+ The first version is `1`. The version number
+ is incremented when the firewall's rules
+ change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ status:
+ description: |-
+ __Read-only__ The status of this Firewall.
+
+ - When a Firewall is first created its status is `enabled`.
+ - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.
+ - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall.
+ enum:
+ - enabled
+ - disabled
+ - deleted
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this
+ object. Tags are for organizational purposes
+ only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall
+ was last updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-node-balancer-firewalls-200.yaml
+ description: Returns a paginated list of Firewalls assigned to this NodeBalancer.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "port": 1234,
- "protocol": "https",
- "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": "none",
- "cipher_suite": "recommended",
- "ssl_cert": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_INFORMATION\n-----END CERTIFICATE-----",
- "ssl_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY_INFORMATION\n-----END PRIVATE KEY-----",
- "nodes": [
- {
- "id": 54321,
- "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 nodebalancers config-rebuild \
- 12345 4567 \
- --port 443 \
- --protocol https \
- --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 "none" \
- --ssl_cert "-----BEGIN CERTIFICATE-----
- CERTIFICATE_INFORMATION
- -----END CERTIFICATE-----" \
- --ssl_key "-----BEGIN PRIVATE KEY-----
- PRIVATE_KEY_INFORMATION
- -----END PRIVATE KEY-----" \
- --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"}'
- 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
- '/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes':
- get:
- x-linode-grant: read_only
- tags:
- - NodeBalancers
- 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
- summary: Nodes 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'nodebalancers:read_only'
- responses:
- '200':
- description: A paginated list of NodeBalancer nodes.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
items:
- $ref: '#/components/schemas/NodeBalancerNode'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes
- - lang: CLI
- source: |
- linode-cli nodebalancers nodes-list 12345 4567
- post:
- x-linode-grant: read_write
- tags:
- - NodeBalancers
- summary: Node 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
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'nodebalancers:read_write'
+ - nodebalancers:read_only
+ summary: List NodeBalancer firewalls
+ tags:
+ - Firewalls
+ x-akamai:
+ tabs:
+ - syntax: linode-cli nodebalancers firewalls $nodeBalancerId
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: firewalls
+ x-linode-grant: read_only
+ put:
+ description: >-
+ Replace the current list of assigned firewalls with a new list, or
+ provide an empty list to remove all firewalls from this NodeBalancer.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/put-node-balancer-firewalls
+ operationId: put-node-balancer-firewalls
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
requestBody:
- description: Information about the Node to create.
- required: true
content:
application/json:
schema:
+ additionalProperties: false
+ description: >-
+ Replace or remove firewalls IDs assigned to a Linode or
+ NodeBalancer.
+ properties:
+ firewall_ids:
+ description: >-
+ A complete list of firewall IDs to assign to this Linode or
+ NodeBalancer. This operation replaces any existing
+ assignments. To remove all firewalls, pass an empty list,
+ `[]`.
+ example: 1234
+ items:
+ type: integer
+ minItems: 0
+ type: array
required:
- - label
- - address
- allOf:
- - $ref: '#/components/schemas/NodeBalancerNode'
+ - firewall_ids
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-ids-request.yaml
+ x-example:
+ x-ref: ../examples/put-node-balancer.json
+ required: true
responses:
'200':
- description: Node created successfully.
content:
application/json:
+ example:
+ data:
+ - created: '2018-01-01T00:01:01'
+ id: 123
+ label: firewall123
+ rules:
+ inbound:
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 192.0.2.0/24
+ - 192.0.2.167/24
+ ipv6:
+ - 2001:DB8::/128
+ description: An example firewall rule description.
+ label: firewallrule123
+ ports: 22-24, 80, 443
+ protocol: TCP
+ inbound_policy: DROP
+ outbound:
+ - action: ACCEPT
+ addresses:
+ ipv4:
+ - 192.0.2.0/24
+ - 192.0.2.1/24
+ ipv6:
+ - 2001:DB8::/128
+ description: An example firewall rule description.
+ label: firewallrule123
+ ports: 22-24, 80, 443
+ protocol: TCP
+ outbound_policy: DROP
+ status: enabled
+ tags:
+ - example tag
+ - another example
+ updated: '2018-01-02T00:01:01'
+ page: 1
+ pages: 1
+ results: 1
schema:
- $ref: '#/components/schemas/NodeBalancerNode'
+ allOf:
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ A resource that controls incoming and outgoing
+ network traffic to a compute service. Only one
+ enabled Firewall can be attached to a particular
+ service at any given time. [Create a firewall
+ device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device)
+ to assign a Firewall to a service. Currently,
+ Firewalls can assigned to Linode compute instances
+ and NodeBalancers.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall
+ was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ id:
+ description: >-
+ __Filterable__, __Read-only__ The Firewall's
+ unique ID.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ The Firewall's label, for display
+ purposes only.
+
+
+ Firewall labels have the following constraints:
+
+ - Must begin and end with an alphanumeric character.
+ - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).
+ - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.
+ - Must be between 3 and 32 characters.
+ - Must be unique.
+ example: firewall123
+ maxLength: 32
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ rules:
+ additionalProperties: false
+ description: >-
+ The inbound and outbound access rules to apply
+ to the Firewall.
+
+
+ A Firewall may have up to 25 rules across its
+ inbound and outbound rulesets.
+
+
+ Multiple rules are applied in order. If two
+ rules conflict, the first rule takes precedence.
+ For example, if the first rule accepts inbound
+ traffic from an address, and the second rule
+ drops inbound traffic the same address, the
+ first rule applies and inbound traffic from that
+ address is accepted.
+ properties:
+ fingerprint:
+ description: >-
+ __Read-only__ The fingerprint is a 32-bit
+ hash. It represents the firewall rules as an
+ 8 character hex string. You can use
+ `fingerprint` to compare rule versions.
+ example: 997dd135
+ readOnly: true
+ type: string
+ inbound:
+ description: >-
+ The inbound rules for the firewall, as a
+ JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound
+ access rules. The `ports` property can be
+ used to allow traffic on a comma-separated
+ list of different ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or
+ dropped by this rule. Overrides the
+ Firewall's `inbound_policy` if this is
+ an inbound rule, or the
+ `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by
+ this rule. A rule can have up to 255
+ total addresses or networks listed
+ across its `ipv4` and `ipv6` arrays. A
+ network and a single IP are treated as
+ equivalent when accounting for this
+ limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format.
+ Must not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and
+ must not include zone_id notation as
+ described in [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this
+ rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display
+ purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display
+ purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports
+ affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports
+ are affected.
+
+ - Only allowed for the TCP and UDP
+ protocols. Ports are not allowed for the
+ ICMP and IPENCAP protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by
+ this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ inbound_policy:
+ description: >-
+ The default behavior for inbound traffic.
+ This setting can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `inbound.action` property of the
+ Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ outbound:
+ description: >-
+ The outbound rules for the firewall, as a
+ JSON array.
+ items:
+ additionalProperties: false
+ description: >-
+ One of a Firewall's inbound or outbound
+ access rules. The `ports` property can be
+ used to allow traffic on a comma-separated
+ list of different ports.
+ properties:
+ action:
+ description: >-
+ Controls whether traffic is accepted or
+ dropped by this rule. Overrides the
+ Firewall's `inbound_policy` if this is
+ an inbound rule, or the
+ `outbound_policy` if this is an outbound
+ rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: ACCEPT
+ type: string
+ addresses:
+ additionalProperties: false
+ description: >-
+ The IPv4 or IPv6 addresses affected by
+ this rule. A rule can have up to 255
+ total addresses or networks listed
+ across its `ipv4` and `ipv6` arrays. A
+ network and a single IP are treated as
+ equivalent when accounting for this
+ limit.
+
+
+ Must contain `ipv4`, `ipv6`, or both.
+ properties:
+ ipv4:
+ description: >-
+ A list of IPv4 addresses or networks.
+ Addresses must be in IP/mask format.
+ Must not be an empty list.
+
+
+ If `0.0.0.0/0` is included in this list,
+ all IPv4 addresses are affected by this
+ rule.
+ example:
+ - 192.0.2.0/24
+ - 198.51.100.2/32
+ items:
+ type: string
+ type: array
+ ipv6:
+ description: >-
+ A list of IPv6 addresses or networks.
+ Addresses must be in IP/mask format and
+ must not include zone_id notation as
+ described in [RFC
+ 4007](https://www.rfc-editor.org/rfc/rfc4007).
+ Must not be an empty list.
+
+
+ If `::/0` is included in this list, all
+ IPv6 addresses are affected by this
+ rule.
+ example:
+ - 2001:DB8::/128
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ description: >-
+ Used to describe this rule. For display
+ purposes only.
+ example: An example firewall rule description.
+ maxLength: 100
+ minLength: 1
+ type: string
+ label:
+ description: >-
+ Used to identify this rule. For display
+ purposes only.
+ example: firewallrule123
+ maxLength: 32
+ minLength: 3
+ type: string
+ ports:
+ description: >-
+ A string representing the port or ports
+ affected by this rule:
+
+
+ - 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.
+
+ - 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.
+
+ - If no ports are configured, all ports
+ are affected.
+
+ - Only allowed for the TCP and UDP
+ protocols. Ports are not allowed for the
+ ICMP and IPENCAP protocols.
+ example: 22-24, 80, 443
+ nullable: true
+ type: string
+ protocol:
+ description: >-
+ The type of network traffic affected by
+ this rule.
+ enum:
+ - TCP
+ - UDP
+ - ICMP
+ - IPENCAP
+ example: TCP
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/firewall-rule-config.yaml
+ type: array
+ x-linode-cli-format: json
+ outbound_policy:
+ description: >-
+ The default behavior for outbound traffic.
+ This setting can be overridden by
+ [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules)
+ the `outbound.action` property of the
+ Firewall Rule.
+ enum:
+ - ACCEPT
+ - DROP
+ example: DROP
+ type: string
+ version:
+ description: >-
+ __Read-only__ The firewall's rule version.
+ The first version is `1`. The version number
+ is incremented when the firewall's rules
+ change.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ status:
+ description: |-
+ __Read-only__ The status of this Firewall.
+
+ - When a Firewall is first created its status is `enabled`.
+ - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.
+ - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall.
+ enum:
+ - enabled
+ - disabled
+ - deleted
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to this
+ object. Tags are for organizational purposes
+ only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this Firewall
+ was last updated.
+ example: '2018-01-02T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/firewall.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-node-balancer-firewalls-200.yaml
+ description: Returns a paginated list of Firewalls assigned to this NodeBalancer.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "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-update \
- 12345 4567 \
- --address 192.168.210.120:80 \
- --label node54321 \
- --weight 50 \
- --mode accept
- 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
- '/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId}':
- get:
- x-linode-grant: read_only
- tags:
- - NodeBalancers
- summary: Node View
- description: |
- Returns information about a single Node, a backend for this NodeBalancer's configured port.
- operationId: getNodeBalancerNode
- x-linode-cli-action: node-view
- security:
- - personalAccessToken: []
- - oauth:
- - 'nodebalancers:read_write'
- responses:
- '200':
- description: A paginated list of NodeBalancer nodes.
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancerNode'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes/54321
- - lang: CLI
- source: |
- linode-cli nodebalancers node-view 12345 4567 54321
- 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
- put:
- x-linode-grant: read_write
- tags:
- - NodeBalancers
- summary: Node Update
- description: |
- Updates information about a Node, a backend for this NodeBalancer's configured port.
- operationId: updateNodeBalancerNode
- x-linode-cli-action: node-update
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'nodebalancers:read_write'
- requestBody:
- description: The fields to update.
+ - nodebalancers:read_write
+ summary: Update a NodeBalancer's firewalls
+ tags:
+ - Firewalls
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli nodebalancers firewalls-update 12345 \
+ --firewall_ids '[1234, 4567]'
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: firewalls
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the NodeBalancer.
+ example: '{{nodeBalancerId}}'
+ in: path
+ name: nodeBalancerId
required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NodeBalancerNode'
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/node-balancer-id.yaml
+ x-akamai:
+ file-path: paths/node-balancer-firewalls.yaml
+ path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/firewalls
+ x-linode-cli-command: nodebalancers
+ /nodebalancers/{nodeBalancerId}/stats:
+ get:
+ description: >-
+ Returns detailed statistics about the requested NodeBalancer. __OAuth
+ scopes__.
+
+ ```
+ nodebalancers:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-node-balancer-stats
+ operationId: get-node-balancer-stats
responses:
'200':
- description: Node updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancerNode'
+ additionalProperties: false
+ description: Stats for this NodeBalancer.
+ properties:
+ data:
+ additionalProperties: false
+ description: The data returned about this NodeBalancers.
+ properties:
+ connections:
+ description: >-
+ An array of key/value pairs representing unix
+ timestamp and reading for connections to this
+ NodeBalancer.
+ items:
+ example:
+ - 1526391300000
+ - 0
+ type: number
+ type: array
+ traffic:
+ additionalProperties: false
+ description: Traffic statistics for this NodeBalancer.
+ properties:
+ in:
+ description: >-
+ An array of key/value pairs representing unix
+ timestamp and reading for inbound traffic.
+ items:
+ example:
+ - 1526391300000
+ - 631.21
+ type: number
+ type: array
+ out:
+ description: >-
+ An array of key/value pairs representing unix
+ timestamp and reading for outbound traffic.
+ items:
+ example:
+ - 1526391300000
+ - 103.44
+ type: number
+ type: array
+ type: object
+ type: object
+ title:
+ description: The title for the statistics generated in this response.
+ example: linode.com - balancer12345 (12345) - day (5 min avg)
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-stats.yaml
+ x-example:
+ x-ref: ../examples/get-node-balancer-stats-200.json
+ description: The requested stats.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "address": "192.168.210.120:80",
- "label": "node54321",
- "weight": 50,
- "mode": "accept"
- }' \
- https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes/54321
- - lang: CLI
- source: |
- linode-cli nodebalancers node-create \
- 12345 4567 54321 \
- --address 192.168.210.120:80 \
- --label node54321 \
- --weight 50 \
- --mode accept
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_only
+ summary: Get NodeBalancer statistics
+ tags:
+ - Statistics
+ x-akamai:
+ tabs:
+ - syntax: nodebalancers:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: stats
+ x-linode-cli-skip: true
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the NodeBalancer.
+ example: '{{nodeBalancerId}}'
+ in: path
+ name: nodeBalancerId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/node-balancer-id.yaml
+ x-akamai:
+ file-path: paths/stats.yaml
+ path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/stats
+ x-linode-cli-command: nodebalancers
+ /nodebalancers/{nodeBalancerId}/vpcs:
+ get:
+ description: >-
+ Returns a paginated list of VPC configurations for the NodeBalancer.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-node-balancer-vpcs
+ operationId: get-node-balancer-vpcs
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
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
schema:
+ default: 1
+ example: 6
+ minimum: 1
type: integer
- - name: nodeId
- in: path
- description: The ID of the Node to access
- required: true
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
type: integer
- delete:
- x-linode-grant: read_write
- tags:
- - NodeBalancers
- summary: Node 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'nodebalancers:read_write'
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Node deleted successfully.
content:
application/json:
+ example:
+ data:
+ - id: 6
+ ipv4_range: 10.0.0.12/30
+ ipv6_range: null
+ nodebalancer_id: 8
+ subnet_id: 1
+ vpc_id: 1
+ - id: 7
+ ipv4_range: 10.0.1.8/30
+ ipv6_range: null
+ nodebalancer_id: 8
+ subnet_id: 7
+ vpc_id: 1
+ page: 1
+ pages: 1
+ results: 2
schema:
+ additionalProperties: false
+ properties:
+ data:
+ example:
+ - id: 6
+ ipv4_range: 10.0.0.12/30
+ ipv6_range: null
+ nodebalancer_id: 8
+ subnet_id: 1
+ vpc_id: 1
+ items:
+ additionalProperties: false
+ description: >-
+ You can have only one VPC in a NodeBalancer
+ configuration. If any of your backend nodes are VPC
+ Linodes, specify the VPC subnet and CIDR range.
+ NodeBalancer routes traffic to backend VPC nodes through
+ this subnet. Once the NodeBalancer is created, its VPC
+ cannot be changed.
+ properties:
+ id:
+ description: >-
+ __Read-only__ Identifies the VPC configuration for
+ this NodeBalancer.
+ example: 6
+ readOnly: true
+ type: integer
+ ipv4_range:
+ description: >-
+ A CIDR range for the VPC's IPv4 addresses. The
+ NodeBalancer sources IP addresses from this range
+ when routing traffic to the backend VPC nodes.
+ example: 10.100.5.100/30
+ type: string
+ x-linode-cli-display: 12
+ ipv4_range_auto_assign:
+ default: false
+ description: >-
+ Enables the use of a larger `ipv4_range` subnet for
+ multiple NodeBalancers within the same VPC by
+ allocating smaller `/30` subnets for each
+ NodeBalancer's backends.
+
+
+ - When set to `true`, the system automatically
+ allocates the smallest possible subnet (`/30`) from
+ the provided `ipv4_range` for the NodeBalancer's
+ backend interface. If the specified range doesn't
+ have enough available IPs to allocate a `/30`
+ subnet, the creation fails.
+
+
+ - When set to `false`, the NodeBalancer is created
+ using the entire `ipv4_range` as specified, without
+ attempting to allocate a `/30` subnet.
+ example: false
+ nullable: true
+ type: boolean
+ x-linode-cli-display: 14
+ nodebalancer_id:
+ description: __Read-only__ Identifies the NodeBalancer.
+ example: 8
+ readOnly: true
+ type: integer
+ subnet_id:
+ description: >-
+ The VPC's subnet. Run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation provides data for your VPCs and their
+ subnets.
+ example: 1
+ type: integer
+ x-linode-cli-display: 11
+ vpc_id:
+ description: >-
+ __Read-only__ The `id` of the VPC configured for
+ this NodeBalancer.
+ example: 1
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - subnet_id
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-vpc.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
type: object
+ x-akamai:
+ file-path: schemas/added-get-node-balancer-vpcs-200.yaml
+ description: A paginated list of NodeBalancer VPC configurations.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes/54321
- - lang: CLI
- source: |
- linode-cli nodebalancers node-delete \
- 12345 4567 54321
- 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
- '/nodebalancers/{nodeBalancerId}/stats':
- get:
- x-linode-grant: read_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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'nodebalancers:read_only'
+ - nodebalancers:read_only
+ summary: List VPC configurations
+ tags:
+ - VPCs
+ x-akamai:
+ tabs:
+ - syntax: linode-cli nodebalancers vpcs-list 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: vpcs-list
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the NodeBalancer.
+ example: '{{nodeBalancerId}}'
+ in: path
+ name: nodeBalancerId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/node-balancer-id.yaml
+ x-akamai:
+ file-path: paths/node-balancer-vpcs.yaml
+ path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/vpcs
+ x-linode-cli-command: nodebalancers
+ /nodebalancers/{nodeBalancerId}/vpcs/{nodeBalancerVpcConfigId}:
+ get:
+ description: >-
+ Returns a single VPC configuration for the NodeBalancer ID.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-node-balancer-vpc-config
+ operationId: get-node-balancer-vpc-config
responses:
'200':
- description: The requested stats.
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancerStats'
+ additionalProperties: false
+ description: >-
+ You can have only one VPC in a NodeBalancer configuration. If
+ any of your backend nodes are VPC Linodes, specify the VPC
+ subnet and CIDR range. NodeBalancer routes traffic to backend
+ VPC nodes through this subnet. Once the NodeBalancer is
+ created, its VPC cannot be changed.
+ properties:
+ id:
+ description: >-
+ __Read-only__ Identifies the VPC configuration for this
+ NodeBalancer.
+ example: 6
+ readOnly: true
+ type: integer
+ ipv4_range:
+ description: >-
+ A CIDR range for the VPC's IPv4 addresses. The
+ NodeBalancer sources IP addresses from this range when
+ routing traffic to the backend VPC nodes.
+ example: 10.100.5.100/30
+ type: string
+ x-linode-cli-display: 12
+ ipv4_range_auto_assign:
+ default: false
+ description: >-
+ Enables the use of a larger `ipv4_range` subnet for
+ multiple NodeBalancers within the same VPC by allocating
+ smaller `/30` subnets for each NodeBalancer's backends.
+
+
+ - When set to `true`, the system automatically allocates
+ the smallest possible subnet (`/30`) from the provided
+ `ipv4_range` for the NodeBalancer's backend interface. If
+ the specified range doesn't have enough available IPs to
+ allocate a `/30` subnet, the creation fails.
+
+
+ - When set to `false`, the NodeBalancer is created using
+ the entire `ipv4_range` as specified, without attempting
+ to allocate a `/30` subnet.
+ example: false
+ nullable: true
+ type: boolean
+ x-linode-cli-display: 14
+ nodebalancer_id:
+ description: __Read-only__ Identifies the NodeBalancer.
+ example: 8
+ readOnly: true
+ type: integer
+ subnet_id:
+ description: >-
+ The VPC's subnet. Run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation provides data for your VPCs and their subnets.
+ example: 1
+ type: integer
+ x-linode-cli-display: 11
+ vpc_id:
+ description: >-
+ __Read-only__ The `id` of the VPC configured for this
+ NodeBalancer.
+ example: 1
+ nullable: true
+ readOnly: true
+ type: integer
+ required:
+ - subnet_id
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer-vpc.yaml
+ x-example:
+ x-ref: ../examples/get-node-balancer-config-200.json
+ description: The requested NodeBalancer VPC configuration.
default:
- $ref: '#/components/responses/ErrorResponse'
- parameters:
- - name: nodeBalancerId
- in: path
- description: The ID of the NodeBalancer to access.
- required: true
- schema:
- type: integer
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - nodebalancers:read_only
+ summary: Get a VPC configuration
+ tags:
+ - VPCs
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli nodebalancers vpcs-view \
+ 12345 7
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: nodebalancers:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: vpc-view
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the NodeBalancer.
+ example: '{{nodeBalancerId}}'
+ in: path
+ name: nodeBalancerId
+ required: true
+ schema:
+ type: integer
+ x-akamai:
+ file-path: parameters/node-balancer-id.yaml
+ - description: The VPC configuration `id` for the NodeBalancer.
+ example: '{{nodeBalancerVpcConfigId}}'
+ in: path
+ name: nodeBalancerVpcConfigId
+ required: true
+ schema:
+ example: 7
+ type: integer
+ x-akamai:
+ file-path: parameters/node-balancer-vpc-config-id.yaml
+ x-akamai:
+ file-path: paths/node-balancer-vpc.yaml
+ path-info: >-
+ /{apiVersion}/nodebalancers/{nodeBalancerId}/vpcs/{nodeBalancerVPCConfigId}
+ x-linode-cli-command: nodebalancers
+components:
+ x-stackQL-resources:
+ node_balancers:
+ id: linode.nodebalancers.node_balancers
+ name: node_balancers
+ title: Node Balancers
+ methods:
+ post_node_balancer:
+ operation:
+ $ref: '#/paths/~1nodebalancers/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_node_balancers:
+ operation:
+ $ref: '#/paths/~1nodebalancers/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_node_balancer:
+ operation:
+ $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_node_balancer:
+ operation:
+ $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_node_balancer:
+ operation:
+ $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/node_balancers/methods/get_node_balancer
+ - $ref: >-
+ #/components/x-stackQL-resources/node_balancers/methods/get_node_balancers
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/node_balancers/methods/post_node_balancer
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/node_balancers/methods/delete_node_balancer
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/node_balancers/methods/put_node_balancer
+ types:
+ id: linode.nodebalancers.types
+ name: types
+ title: Types
+ methods:
+ get_node_balancer_types:
+ operation:
+ $ref: '#/paths/~1nodebalancers~1types/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/types/methods/get_node_balancer_types
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ configurations:
+ id: linode.nodebalancers.configurations
+ name: configurations
+ title: Configurations
+ methods:
+ post_node_balancer_config:
+ operation:
+ $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_node_balancer_configs:
+ operation:
+ $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_node_balancer_config:
+ operation:
+ $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_node_balancer_config:
+ operation:
+ $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_node_balancer_config:
+ operation:
+ $ref: >-
+ #/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}/delete
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_rebuild_node_balancer_config:
+ operation:
+ $ref: >-
+ #/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}~1rebuild/post
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/configurations/methods/get_node_balancer_config
+ - $ref: >-
+ #/components/x-stackQL-resources/configurations/methods/get_node_balancer_configs
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/configurations/methods/post_node_balancer_config
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/configurations/methods/delete_node_balancer_config
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/configurations/methods/put_node_balancer_config
+ nodes:
+ id: linode.nodebalancers.nodes
+ name: nodes
+ title: Nodes
+ methods:
+ post_node_balancer_node:
+ operation:
+ $ref: >-
+ #/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}~1nodes/post
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_node_balancer_config_nodes:
+ operation:
+ $ref: >-
+ #/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}~1nodes/get
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_node_balancer_node:
+ operation:
+ $ref: >-
+ #/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}~1nodes~1{nodeId}/get
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_node_balancer_node:
+ operation:
+ $ref: >-
+ #/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}~1nodes~1{nodeId}/put
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_node_balancer_config_node:
+ operation:
+ $ref: >-
+ #/paths/~1nodebalancers~1{nodeBalancerId}~1configs~1{configId}~1nodes~1{nodeId}/delete
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/nodes/methods/get_node_balancer_node
+ - $ref: >-
+ #/components/x-stackQL-resources/nodes/methods/get_node_balancer_config_nodes
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/nodes/methods/post_node_balancer_node
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/nodes/methods/delete_node_balancer_config_node
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/nodes/methods/put_node_balancer_node
+ firewalls:
+ id: linode.nodebalancers.firewalls
+ name: firewalls
+ title: Firewalls
+ methods:
+ get_node_balancer_firewalls:
+ operation:
+ $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1firewalls/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ put_node_balancer_firewalls:
+ operation:
+ $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1firewalls/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/firewalls/methods/get_node_balancer_firewalls
+ insert: []
+ update: []
+ delete: []
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/firewalls/methods/put_node_balancer_firewalls
+ statistics:
+ id: linode.nodebalancers.statistics
+ name: statistics
+ title: Statistics
+ methods:
+ get_node_balancer_stats:
+ operation:
+ $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1stats/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/statistics/methods/get_node_balancer_stats
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ vpc_configs:
+ id: linode.nodebalancers.vpc_configs
+ name: vpc_configs
+ title: Vpc Configs
+ methods:
+ get_node_balancer_vpcs:
+ operation:
+ $ref: '#/paths/~1nodebalancers~1{nodeBalancerId}~1vpcs/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_node_balancer_vpc_config:
+ operation:
+ $ref: >-
+ #/paths/~1nodebalancers~1{nodeBalancerId}~1vpcs~1{nodeBalancerVpcConfigId}/get
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/vpc_configs/methods/get_node_balancer_vpc_config
+ - $ref: >-
+ #/components/x-stackQL-resources/vpc_configs/methods/get_node_balancer_vpcs
+ insert: []
+ update: []
+ delete: []
+ replace: []
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/object_storage.yaml b/providers/src/linode/v00.00.00000/services/object_storage.yaml
index 06e6dfa4..8ad216f6 100644
--- a/providers/src/linode/v00.00.00000/services/object_storage.yaml
+++ b/providers/src/linode/v00.00.00000/services/object_storage.yaml
@@ -1,1999 +1,5750 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
info:
- version: 4.147.0
- title: Linode API - object_storage
- description: object_storage
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- ObjectStorageBucket:
- type: object
- description: |
- An Object Storage Bucket. This should be accessed primarily through the S3 API; [click here for more information](https://docs.ceph.com/en/latest/radosgw/s3/#api).
- properties:
- created:
- type: string
- format: date-time
- description: When this bucket was created.
- example: 2019-01-01T01:23:45.000Z
- cluster:
- type: string
- description: The ID of the Object Storage Cluster this bucket is in.
- example: us-east-1
- label:
- type: string
- description: The name of this bucket.
- example: example-bucket
- hostname:
- type: string
- description: |
- The hostname where this bucket can be accessed. This hostname can be accessed through a browser if the bucket is made public.
- example: example-bucket.us-east-1.linodeobjects.com
- size:
- type: integer
- description: The size of the bucket in bytes.
- example: 188318981
- objects:
- type: integer
- description: |
- The number of objects stored in this bucket.
- example: 4
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- ObjectStorageObject:
- type: object
- description: |
- An Object in Object Storage, or a "prefix" that contains one or more objects when a `delimiter` is used.
- properties:
- name:
- type: string
- description: |
- The name of this object or prefix.
- example: example
- etag:
- type: string
- description: |
- An MD-5 hash of the object. `null` if this object represents a prefix.
- example: 9f254c71e28e033bf9e0e5262e3e72ab
- last_modified:
- type: string
- format: date-time
- description: |
- The date and time this object was last modified. `null` if this object represents a prefix.
- example: 2019-01-01T01:23:45.000Z
- owner:
- type: string
- description: |
- The owner of this object, as a UUID. `null` if this object represents a prefix.
- example: bfc70ab2-e3d4-42a4-ad55-83921822270c
- size:
- type: integer
- description: |
- The size of this object, in bytes. `null` if this object represents a prefix.
- example: 123
- next_marker:
- type: string
- description: |
- Returns the value you should pass to the `marker` query parameter to get the next page of objects. If there is no next page, `null` will be returned.
- example: bd021c21-e734-4823-97a4-58b41c2cd4c8.892602.184
- nullable: true
- is_truncated:
- type: boolean
- description: Designates if there is another page of bucket objects.
- example: true
- ObjectStorageCluster:
- type: object
- description: An Object Storage Cluster
- properties:
- id:
- type: string
- description: The unique ID for this cluster.
- example: us-east-1
- domain:
- type: string
- description: 'The base URL for this cluster, used for connecting with third-party clients.'
- example: us-east-1.linodeobjects.com
- status:
- type: string
- enum:
- - available
- - unavailable
- description: This cluster's status.
- example: available
- region:
- type: string
- description: The region where this cluster is located.
+ title: object_storage API
+ description: linode object_storage API
+ version: 4.208.1
+paths:
+ /object-storage/buckets:
+ post:
+ description: >-
+ Creates an Object Storage bucket in the specified data center
+ ([region](https://techdocs.akamai.com/linode-api/reference/get-regions)).
+ If the bucket already exists on your account, this operation returns a
+ 200 response with that bucket as if the API just created it.
+
+
+ > 📘
+
+ >
+
+ > - Accounts with negative balances can't access this operation.
+
+ >
+
+ > - The API still supports the `clusterId` equivalent (`us-west-1`) when
+ setting a `region` for a new bucket, but you should use the `regionId`
+ (`us-west`) instead.
+
+ >
+
+ > - You can use an outside API, such as the [Ceph Object Gateway S3
+ API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#put-bucket)
+ for more options. __OAuth scopes__.
+
+ ```
+ object_storage:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-object-storage-bucket
+ operationId: post-object-storage-bucket
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ acl:
+ default: private
+ description: >-
+ The S3 predefined collection of grantees and permissions set
+ for the bucket, also referred to as a [Canned
+ ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl).
+ enum:
+ - private
+ - public-read
+ - authenticated-read
+ - public-read-write
+ example: '{{acl}}'
+ type: string
+ cors_enabled:
+ description: >-
+ If set to `false`, cross-origin resource sharing (CORS) is
+ disabled for all origins in the bucket.
+ example: '{{cors_enabled}}'
+ type: boolean
+ endpoint_type:
+ description: >-
+ The type of `s3_endpoint` available to the active `user` in
+ this `region`. See [Endpoint
+ types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types)
+ for more information.
+ enum:
+ - E0
+ - E1
+ - E2
+ - E3
+ example: '{{endpoint_type}}'
+ type: string
+ label:
+ description: >-
+ The name for this bucket.
+
+
+ * A bucket name can contain from 3 to 63 alphanumeric
+ characters, dashes (`-`), or dots (`.`).
+
+ * A bucket name can't end in a dash and you can't use two
+ consecutive dashes.
+
+ * A bucket name can't start or end in a dot, and you can't
+ use two consecutive dots. As a best practice, only use dots
+ if a certificate you're using with your bucket requires it.
+ (For example, if you're using a custom TLS certificate.)
+
+ * A bucket name needs to be unique in the `region` where
+ you're creating the bucket. The API only reserves labels for
+ the `region` where active buckets are created and stored. If
+ you want to reserve this bucket's label in another `region`,
+ create a new bucket with the same label in the new `region`.
+ example: '{{label}}'
+ pattern: >-
+ ^(?=.{3,63}$)[a-z0-9]+(?:-[a-z0-9]+)*(?:[.][a-z0-9]+(?:-[a-z0-9]+)*)*$
+ type: string
+ region:
+ description: >-
+ The `id` assigned to the data center
+ ([region](https://techdocs.akamai.com/linode-api/reference/get-regions))
+ where this Object Storage bucket should be created.
+
+
+ > 📘
+
+ >
+
+ > This supports legacy `clusterId` values that represented a
+ specific region. For example, `us-east-1` is the legacy
+ reference for the `us-east` region.
+ example: '{{region}}'
+ type: string
+ s3_endpoint:
+ description: >-
+ The active user's S3-compatible endpoint URL, based on the
+ `endpoint_type` and `region`.
+ example: '{{s3_endpoint}}'
+ type: string
+ required:
+ - label
+ - cluster
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-object-storage-bucket.yaml
+ x-example:
+ x-ref: ../examples/post-object-storage-bucket.json
+ description: Information about the bucket you want to create.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An Object Storage bucket.
+ properties:
+ cluster:
+ deprecated: true
+ description: >-
+ __Deprecated__ The legacy `clusterId` equivalent for the
+ `regionId` where this bucket lives. The API maintains this
+ for backward compatibility.
+
+
+ > 📘
+
+ >
+
+ > - This value and the `regionId` are interchangeable when
+ used in requests. Best practice is to use the `regionId`.
+
+ >
+
+ > - This value is empty for newer regions that don't have
+ a legacy `clusterId`.
+ example: us-east-1
+ type: string
+ x-akamai:
+ status: DEPRECATED
+ created:
+ description: When this bucket was created.
+ example: '2019-01-01T01:23:45'
+ format: date-time
+ type: string
+ endpoint_type:
+ description: >-
+ The type of `s3_endpoint` available to the active `user`
+ in this `region`. See [Endpoint
+ types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types)
+ for more information.
+ enum:
+ - E0
+ - E1
+ - E2
+ - E3
+ example: E1
+ type: string
+ hostname:
+ description: >-
+ The hostname where this bucket can be accessed. This
+ hostname can be accessed through a browser if the bucket
+ is made public.
+ example: primary-bucket-1.us-east-12.linodeobjects.com
+ type: string
+ label:
+ description: The name of this bucket.
+ example: primary-bucket
+ type: string
+ objects:
+ description: The number of objects stored in this bucket.
+ example: 4
+ type: integer
+ region:
+ description: >-
+ The `id` of the
+ [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where this Object Storage bucket lives.
+ example: us-east
+ type: string
+ s3_endpoint:
+ description: >-
+ The active user's S3-compatible endpoint URL, based on the
+ `endpoint_type` and `region`.
+ example: us-east-12.linodeobjects.com
+ type: string
+ size:
+ description: The size of the bucket in bytes.
+ example: 188318981
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-bucket.yaml
+ x-example:
+ x-ref: ../examples/post-object-storage-bucket-200.json
+ description: The bucket created successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - object_storage:read_write
+ summary: Create an Object Storage bucket
+ tags:
+ - Buckets
+ x-akamai:
+ tabs:
+ - syntax: object_storage:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ get:
+ description: >-
+ Returns a paginated list of all Object Storage buckets available in your
+ account.
+
+
+ > 📘
+
+ >
+
+ > You can use an outside API, such as the [Ceph Object Gateway S3
+ API](https://docs.ceph.com/en/latest/radosgw/s3/serviceops/#list-buckets)
+ for more options. __OAuth scopes__.
+
+ ```
+ object_storage:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-buckets
+ operationId: get-object-storage-buckets
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: An Object Storage bucket.
+ properties:
+ cluster:
+ deprecated: true
+ description: >-
+ __Deprecated__ The legacy `clusterId` equivalent for
+ the `regionId` where this bucket lives. The API
+ maintains this for backward compatibility.
+
+
+ > 📘
+
+ >
+
+ > - This value and the `regionId` are
+ interchangeable when used in requests. Best practice
+ is to use the `regionId`.
+
+ >
+
+ > - This value is empty for newer regions that don't
+ have a legacy `clusterId`.
+ example: us-east-1
+ type: string
+ x-akamai:
+ status: DEPRECATED
+ created:
+ description: When this bucket was created.
+ example: '2019-01-01T01:23:45'
+ format: date-time
+ type: string
+ endpoint_type:
+ description: >-
+ The type of `s3_endpoint` available to the active
+ `user` in this `region`. See [Endpoint
+ types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types)
+ for more information.
+ enum:
+ - E0
+ - E1
+ - E2
+ - E3
+ example: E1
+ type: string
+ hostname:
+ description: >-
+ The hostname where this bucket can be accessed. This
+ hostname can be accessed through a browser if the
+ bucket is made public.
+ example: primary-bucket-1.us-east-12.linodeobjects.com
+ type: string
+ label:
+ description: The name of this bucket.
+ example: primary-bucket
+ type: string
+ objects:
+ description: The number of objects stored in this bucket.
+ example: 4
+ type: integer
+ region:
+ description: >-
+ The `id` of the
+ [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where this Object Storage bucket lives.
+ example: us-east
+ type: string
+ s3_endpoint:
+ description: >-
+ The active user's S3-compatible endpoint URL, based
+ on the `endpoint_type` and `region`.
+ example: us-east-12.linodeobjects.com
+ type: string
+ size:
+ description: The size of the bucket in bytes.
+ example: 188318981
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-bucket.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-object-storage-buckets-200.yaml
+ x-example:
+ x-ref: ../examples/get-object-storage-buckets-200.json
+ description: A paginated list of buckets you own.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - object_storage:read_only
+ summary: List Object Storage buckets
+ tags:
+ - Buckets
+ x-akamai:
+ tabs:
+ - syntax: object_storage:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ parameters: []
+ x-akamai:
+ file-path: paths/buckets.yaml
+ path-info: /{apiVersion}/object-storage/buckets
+ /object-storage/buckets/{regionId}:
+ get:
+ description: >-
+ Returns a list of buckets on your account, in the specified region.
+
+
+ > 📘
+
+ >
+
+ > You can use the [Ceph Object Gateway S3
+ API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#get-bucket)
+ for more options. __OAuth scopes__.
+
+ ```
+ object_storage:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-bucketin-cluster
+ operationId: get-object-storage-bucketin-cluster
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: An Object Storage bucket.
+ properties:
+ cluster:
+ deprecated: true
+ description: >-
+ __Deprecated__ The legacy `clusterId` equivalent for
+ the `regionId` where this bucket lives. The API
+ maintains this for backward compatibility.
+
+
+ > 📘
+
+ >
+
+ > - This value and the `regionId` are
+ interchangeable when used in requests. Best practice
+ is to use the `regionId`.
+
+ >
+
+ > - This value is empty for newer regions that don't
+ have a legacy `clusterId`.
+ example: us-east-1
+ type: string
+ x-akamai:
+ status: DEPRECATED
+ created:
+ description: When this bucket was created.
+ example: '2019-01-01T01:23:45'
+ format: date-time
+ type: string
+ endpoint_type:
+ description: >-
+ The type of `s3_endpoint` available to the active
+ `user` in this `region`. See [Endpoint
+ types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types)
+ for more information.
+ enum:
+ - E0
+ - E1
+ - E2
+ - E3
+ example: E1
+ type: string
+ hostname:
+ description: >-
+ The hostname where this bucket can be accessed. This
+ hostname can be accessed through a browser if the
+ bucket is made public.
+ example: primary-bucket-1.us-east-12.linodeobjects.com
+ type: string
+ label:
+ description: The name of this bucket.
+ example: primary-bucket
+ type: string
+ objects:
+ description: The number of objects stored in this bucket.
+ example: 4
+ type: integer
+ region:
+ description: >-
+ The `id` of the
+ [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where this Object Storage bucket lives.
+ example: us-east
+ type: string
+ s3_endpoint:
+ description: >-
+ The active user's S3-compatible endpoint URL, based
+ on the `endpoint_type` and `region`.
+ example: us-east-12.linodeobjects.com
+ type: string
+ size:
+ description: The size of the bucket in bytes.
+ example: 188318981
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-bucket.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-object-storage-bucketin-cluster-200.yaml
+ x-example:
+ x-ref: ../examples/get-object-storage-bucketin-cluster-200.json
+ description: A paginated list of buckets on your account in this region.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - object_storage:read_only
+ summary: List Object Storage buckets per region
+ tags:
+ - Buckets
+ x-akamai:
+ tabs:
+ - syntax: object_storage:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ parameters:
+ - description: >-
+ Identifies a region where this bucket lives.
+
+
+ > 📘
+
+ >
+
+ > You can use a `clusterId` in place of `regionId` in requests for
+ buckets that you created using the legacy version of the API. Run
+ [List
+ clusters](https://techdocs.akamai.com/linode-api/reference/get-object-storage-clusters)
+ to see each cluster `id`.
+ example: '{{regionId}}'
+ in: path
+ name: regionId
+ required: true
+ schema:
example: us-east
- static_site_domain:
- type: string
- description: The base URL for this cluster used when hosting static sites.
- example: website-us-east-1.linodeobjects.com
- ObjectStorageKey:
- type: object
- description: A keypair used to communicate with the Object Storage S3 API.
- properties:
- id:
- type: integer
- description: This keypair's unique ID
- example: 123
- readOnly: true
- label:
- type: string
- description: The label given to this key. For display purposes only.
- example: my-key
- access_key:
- type: string
- description: This keypair's access key. This is not secret.
- example: KVAKUTGBA4WTR2NSJQ81
- readOnly: true
- secret_key:
type: string
- description: This keypair's secret key. Only returned on key creation.
- example: OiA6F5r0niLs3QA2stbyq7mY5VCV7KqOzcmitmHw
- readOnly: true
- limited:
- type: boolean
- description: Whether or not this key is a limited access key. Will return `false` if this key grants full access to all buckets on the user's account.
- example: true
- readOnly: true
- bucket_access:
- type: array
- description: |
- Defines this key as a Limited Access Key. Limited Access Keys restrict this Object Storage key's access to only the bucket(s) declared in this array and define their bucket-level permissions.
-
-
- Limited Access Keys can:
-
- * [list all buckets](/docs/api/object-storage/#object-storage-buckets-list) available on this Account, but cannot perform any actions on a bucket unless it has access to the bucket.
-
-
- * [create new buckets](/docs/api/object-storage/#object-storage-bucket-create), but do not have any access to the buckets it creates, unless explicitly given access to them.
-
-
- **Note:** You can create an Object Storage Limited Access Key without access to any buckets.
- This is achieved by sending a request with an empty `bucket_access` array.
-
-
- **Note:** If this field is omitted, a regular unlimited access key is issued.
- items:
- type: object
- properties:
- cluster:
- type: string
- description: The Object Storage cluster where a bucket to which the key is granting access is hosted.
- example: ap-south-1
- bucket_name:
- type: string
- description: The unique label of the bucket to which the key will grant limited access.
- example: example-bucket
- permissions:
- type: string
- enum:
- - read_write
- - read_only
- description: This Limited Access Key's permissions for the selected bucket.
- example: read_only
- ObjectStorageSSLResponse:
- type: object
- description: |
- If this Object Storage bucket has a corresponding TLS/SSL Certificate.
- properties:
- ssl:
- type: boolean
- description: |
- A boolean indicating if this Bucket has a corresponding TLS/SSL certificate that was uploaded by an Account user.
- example: true
- readOnly: true
- ObjectStorageSSL:
- type: object
- required:
- - certificate
- - private_key
- description: |
- Upload a TLS/SSL certificate and private key to be served when you visit your Object Storage bucket via HTTPS.
- properties:
- certificate:
- type: string
- description: |
- Your Base64 encoded and PEM formatted SSL certificate.
-
- Line breaks must be represented as "\n" in the string for requests (but not when using the Linode CLI)
- example: |-
- -----BEGIN CERTIFICATE-----
- CERTIFICATE_INFORMATION
- -----END CERTIFICATE-----
- private_key:
- type: string
- description: |
- The private key associated with this TLS/SSL certificate.
-
- Line breaks must be represented as "\n" in the string for requests (but not when using the Linode CLI)
- example: |-
- -----BEGIN PRIVATE KEY-----
- PRIVATE_KEY_INFORMATION
- -----END PRIVATE KEY-----
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- buckets:
- id: linode.object_storage.buckets
- name: buckets
- title: Buckets
- methods:
- getObjectStorageBuckets:
- operation:
- $ref: '#/paths/~1object-storage~1buckets/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getObjectStorageBuckets:
- operation:
- $ref: '#/paths/~1object-storage~1buckets/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createObjectStorageBucket:
- operation:
- $ref: '#/paths/~1object-storage~1buckets/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getObjectStorageBucket:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getObjectStorageBucket:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteObjectStorageBucket:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getObjectStorageBucketinCluster:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getObjectStorageBucketinCluster:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- modifyObjectStorageBucketAccess:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}~1access/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateObjectStorageBucketAccess:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}~1access/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- viewObjectStorageBucketACL:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}~1object-acl/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _viewObjectStorageBucketACL:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}~1object-acl/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateObjectStorageBucketACL:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}~1object-acl/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/buckets/methods/getObjectStorageBuckets'
- - $ref: '#/components/x-stackQL-resources/buckets/methods/getObjectStorageBucket'
- - $ref: '#/components/x-stackQL-resources/buckets/methods/getObjectStorageBucketinCluster'
- insert:
- - $ref: '#/components/x-stackQL-resources/buckets/methods/createObjectStorageBucket'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/buckets/methods/deleteObjectStorageBucket'
- buckets_object_list:
- id: linode.object_storage.buckets_object_list
- name: buckets_object_list
- title: Buckets Object List
- methods:
- getObjectStorageBucketContent:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}~1object-list/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getObjectStorageBucketContent:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}~1object-list/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/buckets_object_list/methods/getObjectStorageBucketContent'
- insert: []
- update: []
- delete: []
- buckets_object_url:
- id: linode.object_storage.buckets_object_url
- name: buckets_object_url
- title: Buckets Object Url
- methods:
- createObjectStorageObjectURL:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}~1object-url/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select: []
- insert:
- - $ref: '#/components/x-stackQL-resources/buckets_object_url/methods/createObjectStorageObjectURL'
- update: []
- delete: []
- clusters:
- id: linode.object_storage.clusters
- name: clusters
- title: Clusters
- methods:
- getObjectStorageClusters:
- operation:
- $ref: '#/paths/~1object-storage~1clusters/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getObjectStorageClusters:
- operation:
- $ref: '#/paths/~1object-storage~1clusters/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getObjectStorageCluster:
- operation:
- $ref: '#/paths/~1object-storage~1clusters~1{clusterId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getObjectStorageCluster:
- operation:
- $ref: '#/paths/~1object-storage~1clusters~1{clusterId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/clusters/methods/getObjectStorageClusters'
- - $ref: '#/components/x-stackQL-resources/clusters/methods/getObjectStorageCluster'
- insert: []
- update: []
- delete: []
- keys:
- id: linode.object_storage.keys
- name: keys
- title: Keys
- methods:
- getObjectStorageKeys:
- operation:
- $ref: '#/paths/~1object-storage~1keys/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getObjectStorageKeys:
- operation:
- $ref: '#/paths/~1object-storage~1keys/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createObjectStorageKeys:
- operation:
- $ref: '#/paths/~1object-storage~1keys/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getObjectStorageKey:
- operation:
- $ref: '#/paths/~1object-storage~1keys~1{keyId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getObjectStorageKey:
- operation:
- $ref: '#/paths/~1object-storage~1keys~1{keyId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateObjectStorageKey:
- operation:
- $ref: '#/paths/~1object-storage~1keys~1{keyId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteObjectStorageKey:
- operation:
- $ref: '#/paths/~1object-storage~1keys~1{keyId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/keys/methods/getObjectStorageKeys'
- - $ref: '#/components/x-stackQL-resources/keys/methods/getObjectStorageKey'
- insert:
- - $ref: '#/components/x-stackQL-resources/keys/methods/createObjectStorageKeys'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/keys/methods/deleteObjectStorageKey'
- cancel:
- id: linode.object_storage.cancel
- name: cancel
- title: Cancel
- methods:
- cancelObjectStorage:
- operation:
- $ref: '#/paths/~1object-storage~1cancel/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select: []
- insert: []
- update: []
- delete: []
- buckets_ssl:
- id: linode.object_storage.buckets_ssl
- name: buckets_ssl
- title: Buckets Ssl
- methods:
- getObjectStorageSSL:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}~1ssl/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getObjectStorageSSL:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}~1ssl/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createObjectStorageSSL:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}~1ssl/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteObjectStorageSSL:
- operation:
- $ref: '#/paths/~1object-storage~1buckets~1{clusterId}~1{bucket}~1ssl/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/buckets_ssl/methods/getObjectStorageSSL'
- insert:
- - $ref: '#/components/x-stackQL-resources/buckets_ssl/methods/createObjectStorageSSL'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/buckets_ssl/methods/deleteObjectStorageSSL'
- transfer:
- id: linode.object_storage.transfer
- name: transfer
- title: Transfer
- methods:
- getObjectStorageTransfer:
- operation:
- $ref: '#/paths/~1object-storage~1transfer/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getObjectStorageTransfer:
- operation:
- $ref: '#/paths/~1object-storage~1transfer/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/transfer/methods/getObjectStorageTransfer'
- insert: []
- update: []
- delete: []
-paths:
- /object-storage/buckets:
+ x-akamai:
+ file-path: parameters/region-id-obj.yaml
+ x-akamai:
+ file-path: paths/buckets-region.yaml
+ path-info: /{apiVersion}/object-storage/buckets/{regionId}
+ /object-storage/buckets/{regionId}/{bucket}:
+ get:
+ description: >-
+ Returns a single Object Storage bucket.
+
+
+ > 📘
+
+ >
+
+ > You can use an outside API, such as the [Ceph Object Gateway S3
+ API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#get-bucket)
+ for more options. __OAuth scopes__.
+
+ ```
+ object_storage:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-bucket
+ operationId: get-object-storage-bucket
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An Object Storage bucket.
+ properties:
+ cluster:
+ deprecated: true
+ description: >-
+ __Deprecated__ The legacy `clusterId` equivalent for the
+ `regionId` where this bucket lives. The API maintains this
+ for backward compatibility.
+
+
+ > 📘
+
+ >
+
+ > - This value and the `regionId` are interchangeable when
+ used in requests. Best practice is to use the `regionId`.
+
+ >
+
+ > - This value is empty for newer regions that don't have
+ a legacy `clusterId`.
+ example: us-east-1
+ type: string
+ x-akamai:
+ status: DEPRECATED
+ created:
+ description: When this bucket was created.
+ example: '2019-01-01T01:23:45'
+ format: date-time
+ type: string
+ endpoint_type:
+ description: >-
+ The type of `s3_endpoint` available to the active `user`
+ in this `region`. See [Endpoint
+ types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types)
+ for more information.
+ enum:
+ - E0
+ - E1
+ - E2
+ - E3
+ example: E1
+ type: string
+ hostname:
+ description: >-
+ The hostname where this bucket can be accessed. This
+ hostname can be accessed through a browser if the bucket
+ is made public.
+ example: primary-bucket-1.us-east-12.linodeobjects.com
+ type: string
+ label:
+ description: The name of this bucket.
+ example: primary-bucket
+ type: string
+ objects:
+ description: The number of objects stored in this bucket.
+ example: 4
+ type: integer
+ region:
+ description: >-
+ The `id` of the
+ [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where this Object Storage bucket lives.
+ example: us-east
+ type: string
+ s3_endpoint:
+ description: >-
+ The active user's S3-compatible endpoint URL, based on the
+ `endpoint_type` and `region`.
+ example: us-east-12.linodeobjects.com
+ type: string
+ size:
+ description: The size of the bucket in bytes.
+ example: 188318981
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-bucket.yaml
+ x-example:
+ x-ref: ../examples/get-object-storage-bucket-200.json
+ description: The requested bucket.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - object_storage:read_only
+ summary: Get an Object Storage bucket
+ tags:
+ - Buckets
+ x-akamai:
+ tabs:
+ - syntax: object_storage:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ delete:
+ description: >-
+ Removes a single bucket.
+
+
+ > 📘
+
+ >
+
+ > - You need to remove all objects from a bucket before you can delete
+ it. While you can delete a bucket using the
+ [CLI](https://www.linode.com/docs/products/storage/object-storage/guides/s3cmd/#delete-a-bucket),
+ this operation fails if the bucket contains too many objects. The best
+ way to empty large buckets is to configure lifecycle policies with an
+ outside API, such as the [Ceph Object Gateway S3
+ API](https://docs.ceph.com/en/latest/radosgw/bucketpolicy/#). Set a
+ policy to remove all objects, wait a day or more for the system to
+ remove all objects, then delete the bucket.
+
+ >
+
+ > - You can use an outside API, such as the [Ceph Object Gateway S3
+ API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#delete-bucket)
+ for more options. __OAuth scopes__.
+
+ ```
+ object_storage:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-object-storage-bucket
+ operationId: delete-object-storage-bucket
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-object-storage-bucket-200.json
+ description: Bucket deleted successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - object_storage:read_write
+ summary: Remove an Object Storage bucket
+ tags:
+ - Buckets
+ x-akamai:
+ tabs:
+ - syntax: object_storage:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ parameters:
+ - description: >-
+ Identifies a region where this bucket lives.
+
+
+ > 📘
+
+ >
+
+ > You can use a `clusterId` in place of `regionId` in requests for
+ buckets that you created using the legacy version of the API. Run
+ [List
+ clusters](https://techdocs.akamai.com/linode-api/reference/get-object-storage-clusters)
+ to see each cluster `id`.
+ example: '{{regionId}}'
+ in: path
+ name: regionId
+ required: true
+ schema:
+ example: us-east
+ type: string
+ x-akamai:
+ file-path: parameters/region-id-obj.yaml
+ - description: The bucket name.
+ example: '{{bucket}}'
+ in: path
+ name: bucket
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/bucket.yaml
+ x-akamai:
+ file-path: paths/bucket.yaml
+ path-info: /{apiVersion}/object-storage/buckets/{regionId}/{bucket}
+ /object-storage/buckets/{regionId}/{bucket}/access:
+ post:
+ description: >-
+ Apply basic cross-origin resource sharing (CORS) and [S3 canned access
+ control list
+ (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl)
+ settings.
+
+
+ > 📘
+
+ >
+
+ > You can use the S3 API for more fine-grained control of the
+ [CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html)
+ or [S3 canned
+ ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html)
+ settings. __OAuth scopes__.
+
+ ```
+ object_storage:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-object-storage-bucket-access
+ operationId: post-object-storage-bucket-access
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ acl:
+ description: >-
+ The S3 predefined collection of grantees and permissions set
+ for the bucket, also referred to as a [Canned
+ ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl).
+ enum:
+ - private
+ - public-read
+ - authenticated-read
+ - public-read-write
+ - custom
+ example: '{{acl}}'
+ type: string
+ cors_enabled:
+ description: >-
+ If `true`, cross-origin resource sharing (CORS) is enabled
+ for all origins in the bucket.
+ example: '{{cors_enabled}}'
+ type: boolean
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-object-storage-bucket-access.yaml
+ x-example:
+ x-ref: ../examples/post-object-storage-bucket-access.json
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-object-storage-bucket-access-200.json
+ description: Access controls updated.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - object_storage:read_write
+ summary: Allow access to an Object Storage bucket
+ tags:
+ - Bucket access
+ x-akamai:
+ tabs:
+ - syntax: object_storage:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
get:
- operationId: getObjectStorageBuckets
+ description: >-
+ View the cross-origin resource sharing (CORS) and [S3 canned access
+ control
+ (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl)
+ settings for a specific Object Storage bucket.
+
+
+ > 📘
+
+ >
+
+ > You can use the S3 API to view more details on
+ [CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html)
+ or [S3 canned
+ ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html)
+ settings. __OAuth scopes__.
+
+ ```
+ object_storage:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-bucket-access
+ operationId: get-object-storage-bucket-access
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ acl:
+ description: >-
+ The S3 predefined collection of grantees and permissions
+ set for the bucket, also referred to as a [Canned
+ ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl).
+ enum:
+ - private
+ - public-read
+ - authenticated-read
+ - public-read-write
+ - custom
+ example: public-read
+ type: string
+ acl_xml:
+ description: The full XML of the object's ACL policy.
+ example: ...
+ type: string
+ cors_enabled:
+ description: >-
+ If `true`, cross-origin resource sharing (CORS) is enabled
+ for all origins in the bucket. Returned as `null` for `E2`
+ and `E3` [endpoint
+ types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types)
+ because CORS is not supported.
+ example: true
+ nullable: true
+ type: boolean
+ cors_xml:
+ description: >-
+ The full XML of the bucket's CORS policy. Returned as an
+ empty object if `cors_enabled` is `false`, and `null` for
+ `E2` and `E3` [endpoint
+ types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types).
+ CORS is not supported with these endpoint types.
+ example: ...
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/get-object-storage-bucket-access-200.yaml
+ x-example:
+ x-ref: ../examples/get-object-storage-bucket-access-200.json
+ description: Access settings for the specific bucket.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - object_storage:read_only
+ summary: Get Object Storage bucket access
+ tags:
+ - Bucket access
+ x-akamai:
+ tabs:
+ - syntax: object_storage:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
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.
+ put:
+ description: >-
+ Update basic cross-origin resource sharing (CORS) and [S3 canned access
+ control list
+ (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl)
+ settings.
- 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:
- - Object Storage
+ > 📘
+
+ >
+
+ > You can use the S3 API for more fine-grained control of the
+ [CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html)
+ or [S3 canned
+ ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html)
+ settings. __OAuth scopes__.
+
+ ```
+ object_storage:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/put-storage-bucket-access
+ operationId: put-storage-bucket-access
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ acl:
+ description: >-
+ The S3 predefined collection of grantees and permissions set
+ for the bucket, also referred to as a [Canned
+ ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl).
+ enum:
+ - private
+ - public-read
+ - authenticated-read
+ - public-read-write
+ - custom
+ example: '{{acl}}'
+ type: string
+ cors_enabled:
+ description: >-
+ If `true`, the API enables cross-origin resource sharing for
+ all origins on the bucket.
+ example: '{{cors_enabled}}'
+ type: boolean
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-storage-bucket-access.yaml
+ x-example:
+ x-ref: ../examples/put-storage-bucket-access.json
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/put-storage-bucket-access-200.json
+ description: Access controls updated.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'object_storage:read_only'
+ - object_storage:read_write
+ summary: Update access to an Object Storage bucket
+ tags:
+ - Bucket access
+ x-akamai:
+ tabs:
+ - syntax: object_storage:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ parameters:
+ - description: >-
+ Identifies a region where this bucket lives.
+
+
+ > 📘
+
+ >
+
+ > You can use a `clusterId` in place of `regionId` in requests for
+ buckets that you created using the legacy version of the API. Run
+ [List
+ clusters](https://techdocs.akamai.com/linode-api/reference/get-object-storage-clusters)
+ to see each cluster `id`.
+ example: '{{regionId}}'
+ in: path
+ name: regionId
+ required: true
+ schema:
+ example: us-east
+ type: string
+ x-akamai:
+ file-path: parameters/region-id-obj.yaml
+ - description: The bucket name.
+ example: '{{bucket}}'
+ in: path
+ name: bucket
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/bucket.yaml
+ x-akamai:
+ file-path: paths/access.yaml
+ path-info: /{apiVersion}/object-storage/buckets/{regionId}/{bucket}/access
+ /object-storage/buckets/{regionId}/{bucket}/object-acl:
+ get:
+ description: >-
+ View a specific object's access control list (ACL) settings. ACLs define
+ who can access your buckets and objects and specify the level of access
+ granted to those users.
+
+
+ > 📘
+
+ >
+
+ > You can use an outside API, such as the [Ceph Object Gateway S3
+ API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#get-object-acl)
+ for more options. __OAuth scopes__.
+
+ ```
+ object_storage:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-bucket-acl
+ operationId: get-object-storage-bucket-acl
+ parameters:
+ - description: >-
+ The name of a specific object to get its access control list (ACL)
+ details. Run the [List Object Storage bucket
+ contents](https://techdocs.akamai.com/linode-api/reference/get-object-storage-bucket-content)
+ operation to access all object names in a bucket.
+ example: '{{name}}'
+ in: query
+ name: name
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/name-query.yaml
responses:
'200':
- description: A paginated list of buckets you own.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ acl:
+ description: >-
+ The S3 predefined collection of grantees and permissions
+ set for the bucket, also referred to as a [Canned
+ ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl).
+ enum:
+ - private
+ - public-read
+ - authenticated-read
+ - public-read-write
+ - custom
+ example: public-read
+ type: string
+ acl_xml:
+ description: The full XML of the object's ACL policy.
+ example: ...
+ type: string
type: object
+ x-akamai:
+ file-path: schemas/added-get-object-storage-bucket-acl-200.yaml
+ x-example:
+ x-ref: ../examples/get-object-storage-bucket-acl-200.json
+ description: The Object's canned ACL and policy.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
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/
- post:
- operationId: createObjectStorageBucket
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - object_storage:read_only
+ summary: Get an Object Storage object ACL configuration
+ tags:
+ - ACL configurations
+ x-akamai:
+ tabs:
+ - syntax: object_storage:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
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 specified cluster.
+ put:
+ description: >-
+ Update a specific object's access control list (ACL) settings. ACLs
+ define who can access your buckets and objects, and specify the level of
+ access granted to those users.
+
+
+ > 📘
- Accounts with negative balances cannot access this command.
+ >
- If the bucket already exists and is owned by you, this endpoint returns a `200` response with that bucket as if it had just been created.
+ > You can use an outside API, such as the [Ceph Object Gateway S3
+ API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#set-object-acl)
+ for more options. __OAuth scopes__.
- 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.
+ ```
+ object_storage:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/put-object-storage-bucket-acl
+ operationId: put-object-storage-bucket-acl
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ acl:
+ description: >-
+ The S3 predefined collection of grantees and permissions set
+ for the bucket, also referred to as a [Canned
+ ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl).
+ enum:
+ - private
+ - public-read
+ - authenticated-read
+ - public-read-write
+ - custom
+ example: '{{acl}}'
+ type: string
+ name:
+ description: >-
+ The name of the object where access control list (ACL)
+ settings will be updated. Run the [List Object Storage
+ bucket
+ contents](https://techdocs.akamai.com/linode-api/reference/get-object-storage-bucket-content)
+ operation to access all object names in a bucket.
+ example: '{{name}}'
+ type: string
+ required:
+ - acl
+ - name
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-object-storage-bucket-acl.yaml
+ x-example:
+ x-ref: ../examples/put-object-storage-bucket-acl.json
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/get-object-storage-bucket-acl-200.json
+ description: The ACL configuration was updated.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - object_storage:read_write
+ summary: Update an object's ACL configuration
tags:
- - Object Storage
+ - ACL configurations
+ x-akamai:
+ tabs:
+ - syntax: object_storage:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ parameters:
+ - description: >-
+ Identifies a region where this bucket lives.
+
+
+ > 📘
+
+ >
+
+ > You can use a `clusterId` in place of `regionId` in requests for
+ buckets that you created using the legacy version of the API. Run
+ [List
+ clusters](https://techdocs.akamai.com/linode-api/reference/get-object-storage-clusters)
+ to see each cluster `id`.
+ example: '{{regionId}}'
+ in: path
+ name: regionId
+ required: true
+ schema:
+ example: us-east
+ type: string
+ x-akamai:
+ file-path: parameters/region-id-obj.yaml
+ - description: The bucket name.
+ example: '{{bucket}}'
+ in: path
+ name: bucket
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/bucket.yaml
+ x-akamai:
+ file-path: paths/object-acl.yaml
+ path-info: /{apiVersion}/object-storage/buckets/{regionId}/{bucket}/object-acl
+ /object-storage/buckets/{regionId}/{bucket}/object-list:
+ get:
+ description: >-
+ Returns the contents of a bucket. The contents are paginated using a
+ `marker`, that's the name of the last object on the previous page.
+ Objects can also be filtered by `prefix` and `delimiter`. See [Filtering
+ and
+ sorting](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting)
+ for more information.
+
+
+ > 📘
+
+ >
+
+ > You can use an outside API, such as the [Ceph Object Gateway S3
+ API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#get-object)
+ for more options. __OAuth scopes__.
+
+ ```
+ object_storage:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-bucket-content
+ operationId: get-object-storage-bucket-content
+ parameters:
+ - 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.
+ example: '{{marker}}'
+ in: query
+ name: marker
+ required: false
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/marker-query.yaml
+ - 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.
+ example: '{{delimiter}}'
+ in: query
+ name: delimiter
+ required: false
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/delimiter-query.yaml
+ - 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.
+ example: '{{prefix}}'
+ in: query
+ name: prefix
+ required: false
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/prefix-query.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ An Object in Object Storage, or a "prefix" that contains
+ one or more objects when a `delimiter` is used.
+ properties:
+ etag:
+ description: >-
+ An MD-5 hash of the object. `null` if this object
+ represents a prefix.
+ example: 9f254c71e28e033bf9e0e5262e3e72ab
+ type: string
+ last_modified:
+ description: >-
+ The date and time this object was last modified.
+ `null` if this object represents a prefix.
+ example: '2019-01-01T01:23:45'
+ format: date-time
+ type: string
+ name:
+ description: The name of this object or prefix.
+ example: example
+ type: string
+ owner:
+ description: >-
+ The owner of this object, as a UUID. `null` if this
+ object represents a prefix.
+ example: bfc70ab2-e3d4-42a4-ad55-83921822270c
+ type: string
+ size:
+ description: >-
+ The size of this object, in bytes. `null` if this
+ object represents a prefix.
+ example: 123
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-object.yaml
+ type: array
+ is_truncated:
+ description: Designates if there is another page of bucket objects.
+ example: true
+ type: boolean
+ next_marker:
+ description: >-
+ Returns the value you should pass to the `marker` query
+ parameter to get the next page of objects. If there is no
+ next page, `null` will be returned.
+ example: bd021c21-e734-4823-97a4-58b41c2cd4c8.892602.184
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-object-storage-bucket-content-200.yaml
+ x-example:
+ x-ref: ../examples/get-object-storage-bucket-content-200.json
+ description: One page of the requested bucket's contents.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'object_storage:read_write'
+ - object_storage:read_only
+ summary: List Object Storage bucket contents
+ tags:
+ - Bucket contents
+ x-akamai:
+ tabs:
+ - syntax: object_storage:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ parameters:
+ - description: >-
+ Identifies a region where this bucket lives.
+
+
+ > 📘
+
+ >
+
+ > You can use a `clusterId` in place of `regionId` in requests for
+ buckets that you created using the legacy version of the API. Run
+ [List
+ clusters](https://techdocs.akamai.com/linode-api/reference/get-object-storage-clusters)
+ to see each cluster `id`.
+ example: '{{regionId}}'
+ in: path
+ name: regionId
+ required: true
+ schema:
+ example: us-east
+ type: string
+ x-akamai:
+ file-path: parameters/region-id-obj.yaml
+ - description: The bucket name.
+ example: '{{bucket}}'
+ in: path
+ name: bucket
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/bucket.yaml
+ x-akamai:
+ file-path: paths/object-list.yaml
+ path-info: /{apiVersion}/object-storage/buckets/{regionId}/{bucket}/object-list
+ /object-storage/buckets/{regionId}/{bucket}/object-url:
+ post:
+ description: >-
+ Creates a pre-signed URL to access a single object in a bucket. Use it
+ to share, create, or delete objects by using the appropriate HTTP method
+ in your request body's `method` parameter.
+
+
+ > 📘
+
+ >
+
+ > You can use an outside API, such as the [Ceph Object Gateway S3
+ API](https://docs.ceph.com/en/latest/radosgw/s3/) for more options.
+ __OAuth scopes__.
+
+ ```
+ object_storage:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-object-storage-object-url
+ operationId: post-object-storage-object-url
requestBody:
- description: |
- Information about the bucket you want to create.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
+ properties:
+ content_type:
+ 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: '{{content_type}}'
+ nullable: true
+ type: string
+ expires_in:
+ 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: '{{expires_in}}'
+ maximum: 86400
+ minimum: 360
+ nullable: true
+ type: integer
+ method:
+ default: GET
+ description: The HTTP method allowed to be used with the pre-signed URL.
+ example: '{{method}}'
+ type: string
+ name:
+ 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: '{{name}}'
+ type: string
required:
- - label
- - cluster
+ - name
+ - method
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-object-storage-object-url.yaml
+ x-example:
+ x-ref: ../examples/post-object-storage-object-url.json
+ description: Information about the request to sign.
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ url:
+ 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
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-object-storage-object-url-200.yaml
+ x-example:
+ x-ref: ../examples/post-object-storage-object-url-200.json
+ description: The URL with which to access your object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - object_storage:read_write
+ summary: Create a URL for an object
+ tags:
+ - Buckets
+ x-akamai:
+ tabs:
+ - syntax: object_storage:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-skip: true
+ parameters:
+ - description: >-
+ Identifies a region where this bucket lives.
+
+
+ > 📘
+
+ >
+
+ > You can use a `clusterId` in place of `regionId` in requests for
+ buckets that you created using the legacy version of the API. Run
+ [List
+ clusters](https://techdocs.akamai.com/linode-api/reference/get-object-storage-clusters)
+ to see each cluster `id`.
+ example: '{{regionId}}'
+ in: path
+ name: regionId
+ required: true
+ schema:
+ example: us-east
+ type: string
+ x-akamai:
+ file-path: parameters/region-id-obj.yaml
+ - description: The bucket name.
+ example: '{{bucket}}'
+ in: path
+ name: bucket
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/bucket.yaml
+ x-akamai:
+ file-path: paths/object-url.yaml
+ path-info: /{apiVersion}/object-storage/buckets/{regionId}/{bucket}/object-url
+ /object-storage/buckets/{regionId}/{bucket}/ssl:
+ post:
+ 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
+ certificates](https://techdocs.akamai.com/linode-api/reference/delete-object-storage-ssl)
+ and upload a new one.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-object-storage-ssl
+ operationId: post-object-storage-ssl
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ Upload a TLS/SSL certificate and private key to be served when
+ you visit your Object Storage bucket via HTTPS.
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:
+ certificate:
+ description: >-
+ Your Base64 encoded and PEM formatted SSL certificate.
+
+
+ Line breaks must be represented as `\n` in the string for
+ requests (but not when using the Linode CLI)
+ example: '{{certificate}}'
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:
+ private_key:
+ description: >-
+ The private key associated with this TLS/SSL certificate.
+
+
+ Line breaks must be represented as `\n` in the string for
+ requests (but not when using the Linode CLI)
+ example: '{{private_key}}'
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
+ required:
+ - certificate
+ - private_key
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-ssl.yaml
+ x-example:
+ x-ref: ../examples/post-object-storage-ssl.json
+ description: Upload this TLS/SSL certificate with its corresponding secret key.
responses:
'200':
- description: The bucket created successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/ObjectStorageBucket'
+ additionalProperties: false
+ description: >-
+ If this Object Storage bucket has a corresponding TLS/SSL
+ Certificate.
+ properties:
+ ssl:
+ description: >-
+ __Read-only__ A boolean indicating if this Bucket has a
+ corresponding TLS/SSL certificate that was uploaded by an
+ Account user.
+ example: true
+ readOnly: true
+ type: boolean
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-ssl-response.yaml
+ x-example:
+ x-ref: ../examples/post-object-storage-ssl-200.json
+ description: >-
+ The response indicates whether this bucket has a corresponding
+ TLS/SSL certificate that was uploaded by a user.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "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}':
- 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.
- tags:
- - Object Storage
- security:
- - personalAccessToken: []
- - oauth:
- - 'object_storage:read_only'
- responses:
- '200':
- description: The requested bucket.
content:
application/json:
schema:
- $ref: '#/components/schemas/ObjectStorageBucket'
- 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
- 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
- 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
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'object_storage:read_write'
+ - object_storage:read_write
+ summary: Upload an Object Storage TLS/SSL certificate
+ tags:
+ - TLS/SSL certificates
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli object-storage ssl-upload \
+ us-east-1 example-bucket \
+ --certificate "-----BEGIN CERTIFICATE-----
+ CERTIFICATE_INFORMATION
+ -----END CERTIFICATE-----" \
+ --private_key "-----BEGIN PRIVATE KEY-----
+ PRIVATE_KEY_INFORMATION
+ -----END PRIVATE KEY-----"
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: object_storage:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: ssl-upload
+ get:
+ description: >-
+ Returns a boolean value indicating if this bucket has a corresponding
+ TLS/SSL certificate that was uploaded by an Account user.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-ssl
+ operationId: get-object-storage-ssl
responses:
'200':
- description: Bucket deleted successfully.
content:
application/json:
schema:
+ additionalProperties: false
+ description: >-
+ If this Object Storage bucket has a corresponding TLS/SSL
+ Certificate.
+ properties:
+ ssl:
+ description: >-
+ __Read-only__ A boolean indicating if this Bucket has a
+ corresponding TLS/SSL certificate that was uploaded by an
+ Account user.
+ example: true
+ readOnly: true
+ type: boolean
type: object
+ x-akamai:
+ file-path: schemas/object-storage-ssl-response.yaml
+ x-example:
+ x-ref: ../examples/get-object-storage-ssl-200.json
+ description: >-
+ Returns a boolean value indicating if this bucket has a
+ corresponding TLS/SSL certificate that was uploaded by an Account
+ user.
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
- 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
- '/object-storage/buckets/{clusterId}':
- get:
- operationId: getObjectStorageBucketinCluster
- x-linode-cli-skip: true
- servers:
- - url: 'https://api.linode.com/v4'
- summary: Object Storage Buckets in Cluster List
- description: |
- 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: A paginated list of buckets you own in this cluster.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
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
- parameters:
- - name: clusterId
- in: path
- description: The ID of the cluster this bucket exists in.
- required: true
- schema:
- type: string
- '/object-storage/buckets/{clusterId}/{bucket}/access':
- 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.
-
-
- 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
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - '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
+ - object_storage:read_only
+ summary: Get an Object Storage TLS/SSL certificate
+ tags:
+ - TLS/SSL certificates
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli object-storage ssl-view \
+ us-east-1 example-bucket
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: object_storage:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: ssl-view
+ delete:
+ description: >-
+ Deletes this Object Storage bucket's user uploaded TLS/SSL certificate
+ and private key.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-object-storage-ssl
+ operationId: delete-object-storage-ssl
responses:
'200':
- description: Access controls updated.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-object-storage-ssl-200.json
+ description: >-
+ Deletes this Object Storage bucket's user uploaded TLS/SSL
+ certificate and private key.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- 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
- 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
- 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.
- tags:
- - Object Storage
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - '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
+ - object_storage:read_write
+ summary: Delete an Object Storage TLS/SSL certificate
+ tags:
+ - TLS/SSL certificates
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli object-storage ssl-delete \
+ us-east-1 example-bucket
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: object_storage:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: ssl-delete
+ parameters:
+ - description: >-
+ Identifies a region where this bucket lives.
+
+
+ > 📘
+
+ >
+
+ > You can use a `clusterId` in place of `regionId` in requests for
+ buckets that you created using the legacy version of the API. Run
+ [List
+ clusters](https://techdocs.akamai.com/linode-api/reference/get-object-storage-clusters)
+ to see each cluster `id`.
+ example: '{{regionId}}'
+ in: path
+ name: regionId
+ required: true
+ schema:
+ example: us-east
+ type: string
+ x-akamai:
+ file-path: parameters/region-id-obj.yaml
+ - description: The bucket name.
+ example: '{{bucket}}'
+ in: path
+ name: bucket
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/bucket.yaml
+ x-akamai:
+ file-path: paths/bucket-ssl.yaml
+ path-info: /{apiVersion}/object-storage/buckets/{regionId}/{bucket}/ssl
+ x-linode-cli-command: object-storage
+ /object-storage/cancel:
+ post:
+ description: >-
+ Cancel Object Storage on an Account.
+
+
+ > 🚧
+
+ >
+
+ > This removes all buckets and their contents from your Account. This
+ data is irretrievable once removed.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-cancel-object-storage
+ operationId: post-cancel-object-storage
responses:
'200':
- description: Access controls updated.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-cancel-object-storage-200.json
+ description: Object Storage cancellation successful.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "cors_enabled": true,
- "acl": "private"
- }' \
- https://api.linode.com/v4/object-storage/buckets/us-east-1/example-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
- '/object-storage/buckets/{clusterId}/{bucket}/object-acl':
- 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.
- tags:
- - Object Storage
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'object_storage:read_only'
- 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
+ - object_storage:read_write
+ summary: Cancel Object Storage
+ tags:
+ - Object Storage
+ x-akamai:
+ tabs:
+ - syntax: linode-cli object-storage cancel
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: object_storage:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: cancel
+ parameters: []
+ x-akamai:
+ file-path: paths/object-storage-cancel.yaml
+ path-info: /{apiVersion}/object-storage/cancel
+ x-linode-cli-command: object-storage
+ /object-storage/clusters:
+ get:
+ deprecated: true
+ description: >-
+ __Deprecated__ Returns a paginated list of available Object Storage
+ legacy clusters.
+
+
+ > 📘
+
+ >
+
+ > This displays deprecated `clusterId` values that represent regions
+ used with older versions of the API. It's maintained for backward
+ compatibility. Run [Get a
+ region](https://techdocs.akamai.com/linode-api/reference/get-region)
+ instead.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-clusters
+ operationId: get-object-storage-clusters
responses:
'200':
- description: The Object's canned ACL and policy.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
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:
+ items:
+ additionalProperties: false
+ description: An Object Storage Cluster.
+ properties:
+ domain:
+ description: >-
+ The base URL for this cluster, used for connecting
+ with third-party clients.
+ example: us-east-1.linodeobjects.com
+ type: string
+ id:
+ description: The unique ID for this cluster.
+ example: us-east-1
+ type: string
+ region:
+ description: The region where this cluster is located.
+ example: us-east
+ type: string
+ static_site_domain:
+ description: >-
+ The base URL for this cluster used when hosting
+ static sites.
+ example: website-us-east-1.linodeobjects.com
+ type: string
+ status:
+ description: This cluster's status.
+ enum:
+ - available
+ - unavailable
+ example: available
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-cluster.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-object-storage-clusters-200.yaml
+ x-example:
+ x-ref: ../examples/get-object-storage-clusters-200.json
+ description: A paginated list of available clusters.
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.
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: List clusters
+ tags:
+ - Clusters
+ x-akamai:
+ status: DEPRECATED
+ tabs:
+ - syntax: linode-cli object-storage clusters-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: clusters-list
+ parameters: []
+ x-akamai:
+ file-path: paths/object-storage-clusters.yaml
+ path-info: /{apiVersion}/object-storage/clusters
+ x-linode-cli-command: object-storage
+ /object-storage/clusters/{clusterId}:
+ get:
+ deprecated: true
+ description: >-
+ __Deprecated__ Returns a single Object Storage cluster.
- 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:
- - '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.
+ > 📘
+
+ >
+
+ > This displays deprecated `clusterId` values that represent regions
+ used with older versions of the API. It's maintained for backward
+ compatibility. Run [Get a
+ region](https://techdocs.akamai.com/linode-api/reference/get-region)
+ instead.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-cluster
+ operationId: get-object-storage-cluster
responses:
'200':
- description: The Object's canned ACL and policy.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
+ description: An Object Storage Cluster.
properties:
- acl:
+ domain:
+ description: >-
+ The base URL for this cluster, used for connecting with
+ third-party clients.
+ example: us-east-1.linodeobjects.com
+ type: string
+ id:
+ description: The unique ID for this cluster.
+ example: us-east-1
+ type: string
+ region:
+ description: The region where this cluster is located.
+ example: us-east
+ type: string
+ static_site_domain:
+ description: >-
+ The base URL for this cluster used when hosting static
+ sites.
+ example: website-us-east-1.linodeobjects.com
type: string
+ status:
+ description: This cluster's status.
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:
+ - available
+ - unavailable
+ example: available
type: string
- description: |
- The full XML of the object's ACL policy.
- example: ...
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-cluster.yaml
+ x-example:
+ x-ref: ../examples/get-object-storage-cluster-200.json
+ description: The requested Cluster.
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
- 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
- '/object-storage/buckets/{clusterId}/{bucket}/object-list':
- 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.
-
-
- 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.
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: Get a cluster
tags:
- - Object Storage
- security:
- - personalAccessToken: []
- - oauth:
- - 'object_storage:read_only'
- 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
+ - Clusters
+ x-akamai:
+ status: DEPRECATED
+ tabs:
+ - syntax: linode-cli object-storage clusters-view us-east-1
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: clusters-view
+ parameters:
+ - description: >-
+ Identifies a cluster where this bucket lives. For backward
+ compatibility with Object Storage in this API.
+
+
+ > 📘
+
+ >
+
+ > You can use the applicable `regionId`, for example `us-west`, in
+ place of the `clusterId`, for example, `us-west-1`. Run [List
+ regions](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ to see all regions.
+ example: '{{clusterId}}'
+ in: path
+ name: clusterId
+ required: true
+ schema:
+ example: us-east-1
+ type: string
+ x-akamai:
+ file-path: parameters/cluster-id-legacy.yaml
+ x-akamai:
+ file-path: paths/object-storage-cluster.yaml
+ path-info: /{apiVersion}/object-storage/clusters/{regionId}
+ x-linode-cli-command: object-storage
+ /object-storage/endpoints:
+ get:
+ description: >-
+ Returns a paginated list of all Object Storage endpoints available in
+ your account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-endpoints
+ operationId: get-object-storage-endpoints
responses:
'200':
- description: One page of the requested bucket's contents.
content:
application/json:
schema:
+ allOf:
+ - additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: Object Storage endpoints object.
+ properties:
+ endpoint_type:
+ description: >-
+ The type of `s3_endpoint` available to the
+ active `user` in this `region`. See [Endpoint
+ types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types)
+ for more information.
+ enum:
+ - E0
+ - E1
+ - E2
+ - E3
+ example: E1
+ type: string
+ x-linode-cli-display: 2
+ region:
+ description: >-
+ The Akamai cloud computing region, represented
+ by its slug value. Run the [List
+ regions](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ operation to view all regions and their slugs.
+ example: us-iad
+ type: string
+ s3_endpoint:
+ description: >-
+ Your S3-compatible endpoint URL, based on the
+ `endpoint_type` and `region`. Displayed as
+ `null` if you haven't assigned an endpoint for
+ your user.
+ example: us-iad-1.linodeobjects.com
+ nullable: true
+ type: string
+ x-linode-cli-display: 1
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-endpoint.yaml
+ type: array
+ type: object
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ x-akamai:
+ file-path: schemas/added-get-object-storage-endpoints-200.yaml
+ x-example:
+ x-ref: ../examples/added-get-object-storage-endpoints-200.json
+ description: A paginated list of endpoints you can access.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
properties:
- data:
- type: array
- description: This page of objects in the bucket.
+ errors:
items:
- $ref: '#/components/schemas/ObjectStorageObject'
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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/buckets/us-east-1/example-bucket/object-list
- '/object-storage/buckets/{clusterId}/{bucket}/object-url':
- 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
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'object_storage:read_write'
+ - object_storage:read_only
+ summary: List Object Storage endpoints
+ tags:
+ - Endpoints
+ x-akamai:
+ tabs:
+ - syntax: linode-cli object-storage endpoints
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: object_storage:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: endpoints
+ parameters: []
+ x-akamai:
+ file-path: paths/object-storage-endpoints.yaml
+ path-info: /{apiVersion}/object-storage/endpoints
+ x-linode-cli-command: object-storage
+ /object-storage/keys:
+ post:
+ description: >-
+ Provisions a new Object Storage key for authentication. A successful
+ request triggers an `obj_access_key_create`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events).
+
+
+ > 📘
+
+ >
+
+ > Accounts with negative balances can't access this operation.
+
+
+ **Create an unlimited access key**
+
+
+ This type of key grants full access to all of your buckets in each
+ region you name, using the `regions` array. Run the [List
+ regions](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ operation, verify that each desired region includes `"Object Storage"`
+ among its `capabilities`, and store the `id` value for each. Leave the
+ `bucket_access` array out to create an unlimited access key.
+
+
+ Check out this [example
+ workflow](https://techdocs.akamai.com/linode-api/reference/create-an-unlimited-access-key)
+ for an unlimited access key.
+
+
+ **Create a limited access key**
+
+
+ This type of key lets you name specific buckets where you need to manage
+ content. In the `bucket_access` array, include individual objects for
+ each bucket, comprised of the target `bucket_name`, the `permissions`
+ level for access to the bucket, and the `region` where the bucket lives.
+ Run the [List Object Storage
+ buckets](https://techdocs.akamai.com/linode-api/reference/get-object-storage-buckets)
+ operation and store the `label`, to use as the `bucket_name`, and the
+ `region` for each. With a limited access key, the parent-level `regions`
+ array isn't required.
+
+
+ Check out this [example
+ workflow](https://techdocs.akamai.com/linode-api/reference/create-a-limited-access-key)
+ for a limited access key.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys
+ operationId: post-object-storage-keys
requestBody:
- description: Information about the request to sign.
content:
application/json:
schema:
- required:
- - name
- - method
- 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:
- 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
+ additionalProperties: false
+ description: >-
+ The settings necessary to create a new Object Storage access
+ key.
+ oneOf:
+ - additionalProperties: false
+ properties:
+ bucket_access:
+ description: >-
+ Settings that limit access to specific buckets, each
+ with a specific permission level. See [Create a limited
+ access
+ key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ for more information.
+ items:
+ additionalProperties: false
+ oneOf:
+ - additionalProperties: false
+ properties:
+ bucket_name:
+ description: >-
+ The name of the bucket the key can access in
+ the `region`.
+ example: primary-bucket
+ type: string
+ permissions:
+ description: >-
+ The level of access the key grants to the
+ `bucket_name`. Keys with `read_write` access
+ can manage content in the `bucket_name`, while
+ `read_only` can be used to view content.
+ enum:
+ - read_write
+ - read_only
+ example: read_only
+ type: string
+ region:
+ description: >-
+ The region where the Object Storage
+ `bucket_name` resides.
+ example: us-iad
+ type: string
+ title: region
+ type: object
+ x-akamai:
+ file-path: >-
+ schemas/post-object-storage-key-bucket-access-region.yaml
+ - additionalProperties: false
+ properties:
+ bucket_name:
+ description: >-
+ The name of the bucket the key can access in
+ the `region`.
+ example: primary-bucket
+ type: string
+ cluster:
+ description: >-
+ __Deprecated__ For backwards compatibility,
+ this is included to identify the legacy
+ cluster equivalent of the `region` where this
+ key can be used. The key grants access to each
+ specified `bucket_name`, based on the
+ `permissions` set.
+
+
+ > 📘
+
+ >
+
+ > Use of clusters in a limited access key has
+ been deprecated. You should use the `region`
+ parameter instead.
+ example: us-west-1
+ type: string
+ x-akamai:
+ status: DEPRECATED
+ permissions:
+ description: >-
+ The level of access the key grants to the
+ `bucket_name`. Keys with `read_write` access
+ can manage content in the `bucket_name`, while
+ `read_only` can be used to view content.
+ enum:
+ - read_write
+ - read_only
+ example: read_only
+ type: string
+ title: cluster
+ type: object
+ x-akamai:
+ file-path: >-
+ schemas/post-object-storage-key-bucket-access-cluster.yaml
+ type: object
+ type: array
+ label:
+ description: The name for the key. For display purposes only.
+ example: my-key
+ type: string
+ title: Limited access key
+ type: object
+ x-akamai:
+ file-path: schemas/post-object-storage-key-bucket-access.yaml
+ - additionalProperties: false
+ properties:
+ label:
+ description: The name for the key. For display purposes only.
+ example: my-key
+ type: string
+ regions:
+ description: >-
+ The key can be used in these regions to manage all
+ buckets. See [Create an unlimited access
+ key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ for more information.
+ example:
+ - us-iad
+ - in-bom-2
+ items:
+ type: string
+ type: array
+ title: Unlimited access key
+ type: object
+ x-akamai:
+ file-path: schemas/post-object-storage-key-regions.yaml
+ type: object
+ x-akamai:
+ file-path: schemas/post-object-storage-key.yaml
+ x-example:
+ x-ref: ../examples/post-object-storage-keys.json
responses:
'200':
- description: The URL with which to access your object.
content:
application/json:
+ examples:
+ ex-bucket-access:
+ summary: Limited access key
+ value:
+ access_key: ABCDEFGHI1JKL2MNOP34
+ bucket_access:
+ - bucket_name: primary-bucket
+ cluster: us-iad-1
+ permissions: read_only
+ region: us-iad
+ - bucket_name: some-other-bucket
+ cluster: ''
+ permissions: read_write
+ region: in-bom-2
+ id: 123
+ label: my-key
+ limited: true
+ regions:
+ - endpoint_type: E1
+ id: us-iad
+ s3_endpoint: us-iad-10.linodeobjects.com
+ - endpoint_type: E3
+ id: in-bom-2
+ s3_endpoint: in-bom-10.linodeobjects.com
+ secret_key: 1aB2CD3e4fgHi5JK6lmnop7qR8STU9VxYzabcdefHh
+ ex-regions:
+ summary: Unlimited access key
+ value:
+ access_key: ABCDEFGHI1JKL2MNOP34
+ bucket_access: []
+ id: 123
+ label: my-key
+ limited: false
+ regions:
+ - endpoint_type: E1
+ id: us-iad
+ s3_endpoint: us-iad-10.linodeobjects.com
+ - endpoint_type: E3
+ id: in-bom-2
+ s3_endpoint: in-bom-1.linodeobjects.com
+ secret_key: 1aB2CD3e4fgHi5JK6lmnop7qR8STU9VxYzabcdefHh
schema:
+ additionalProperties: false
+ description: >-
+ The settings necessary to create a new Object Storage access
+ key.
properties:
- url:
+ access_key:
+ description: >-
+ __Read-only__ A unique string chosen by the API to
+ identify this key. Used as a username to identify this key
+ when making requests to an S3 API, such as the Amazon S3
+ API or Ceph Object Gateway S3 API.
+ example: ABCDEFGHI1JKL2MNOP34
+ readOnly: true
+ type: string
+ bucket_access:
+ description: >-
+ Settings that limit access to specific buckets, each with
+ a specific permission level. See [Create a limited access
+ key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ for more information.
+ items:
+ additionalProperties: false
+ properties:
+ bucket_name:
+ description: >-
+ The name of the bucket the key can access in the
+ `region`.
+ example: primary-bucket
+ type: string
+ cluster:
+ description: >-
+ __Deprecated__ For backwards compatibility, this is
+ included to identify the legacy cluster equivalent
+ of the `region` where this key can be used. The key
+ grants access to each specified `bucket_name`, based
+ on the `permissions` set. Returned as an empty
+ object for newer regions that don't support the
+ legacy `cluster` parameter.
+
+
+ > 📘
+
+ >
+
+ > Use of clusters in a limited access key has been
+ deprecated. You should use the `region` parameter
+ instead.
+ example: us-west-1
+ type: string
+ x-akamai:
+ status: DEPRECATED
+ permissions:
+ description: >-
+ The level of access the key grants to the
+ `bucket_name`. Keys with `read_write` access can
+ manage content in the `bucket_name`, while
+ `read_only` can be used to view content.
+ enum:
+ - read_write
+ - read_only
+ example: read_only
+ type: string
+ region:
+ description: >-
+ The region where the Object Storage `bucket_name`
+ resides.
+ example: us-west
+ type: string
+ type: object
+ type: array
+ id:
+ description: __Read-only__ This Object Storage key's unique ID.
+ example: 123
+ readOnly: true
+ type: integer
+ label:
+ description: The label given to this key. For display purposes only.
+ example: my-key
+ type: string
+ limited:
+ description: >-
+ __Read-only__ Whether this Object Storage key limits
+ access to specific buckets and permissions. Returns
+ `false` if this key grants full access. Specific
+ limitations are set in `bucket_access`.
+ example: true
+ readOnly: true
+ type: boolean
+ regions:
+ description: >-
+ Identifies each region where you can use the Object
+ Storage key.
+ items:
+ additionalProperties: false
+ properties:
+ endpoint_type:
+ description: >-
+ The type of `s3_endpoint` available to the active
+ `user` in this `region`. See [Endpoint
+ types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types)
+ for more information.
+ enum:
+ - E0
+ - E1
+ - E2
+ - E3
+ example: E1
+ type: string
+ id:
+ description: >-
+ The individual region where this key is valid.
+
+
+ - **For an unlimited key**. Each `id` represents an
+ individual region you set in the `regions` array,
+ when you set up the key. See [Create an unlimited
+ access
+ key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ for more information.
+
+
+ - **For a limited access key**. The API server
+ populates each object in this array with each of the
+ individual instances of the `region` parameter you
+ set in the `bucket_access` array. See [Create a
+ limited access
+ key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ for more information.
+ example: us-iad
+ type: string
+ s3_endpoint:
+ description: >-
+ The S3-compatible hostname you can use to access the
+ Object Storage buckets in this region.
+ example: us-west-00.linodeobjects.com
+ type: string
+ type: object
+ type: array
+ secret_key:
+ description: >-
+ __Read-only__ This Object Storage key's secret key. Used
+ as a password to validate this key when making requests to
+ an S3 API, such as the Amazon S3 API or Ceph Object
+ Gateway S3 API.
+
+
+ > 🚧
+
+ >
+
+ > The `secret_key` is only revealed in the response for
+ this operation. Make sure to store it for later use.
+ readOnly: true
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'
type: object
+ x-akamai:
+ file-path: schemas/post-object-storage-key-200.yaml
+ description: >-
+ The new Object Storage key. *This is the only time* the `secret_key`
+ is returned.
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"
- }' \
- https://api.linode.com/v4/object-storage/buckets/us-east-1/example-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
- /object-storage/clusters:
- 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.
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - object_storage:read_write
+ summary: Create an Object Storage key
tags:
- - Object Storage
+ - Keys
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli object-storage keys-create \
+ --label "my-object-storage-key" \
+ --bucket_access '[{"region": "ap-south", "bucket_name": "bucket-example-1", "permissions": "read_write" }]'
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: object_storage:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: keys-create
+ get:
+ description: >-
+ Returns a paginated list of Object Storage keys for authentication.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-keys
+ operationId: get-object-storage-keys
responses:
'200':
- description: A paginated list of available clusters.
content:
application/json:
+ example:
+ data:
+ - access_key: ABCDEFGHI1JKL2MNOP34
+ bucket_access:
+ - bucket_name: example-bucket
+ cluster: us-west-1
+ permissions: read_only
+ region: us-west
+ id: 123
+ label: my-key
+ limited: true
+ regions:
+ - endpoint_type: E1
+ id: us-west
+ s3_endpoint: us-west-00.linodeobjects.com
+ secret_key: '[REDACTED]'
+ page: 1
+ pages: 1
+ results: 1
schema:
- type: object
+ additionalProperties: false
properties:
data:
- type: array
items:
- $ref: '#/components/schemas/ObjectStorageCluster'
+ additionalProperties: false
+ description: A key used to validate requests to an S3 API.
+ properties:
+ access_key:
+ description: >-
+ A unique string chosen by the API to identify this
+ key. Used as a username to identify this key when
+ making requests to an S3 API, such as the Amazon S3
+ API or Ceph Object Gateway S3 API.
+ example: ABCDEFGHI1JKL2MNOP34
+ type: string
+ bucket_access:
+ description: >-
+ Settings that limit access to specific buckets, each
+ with a specific permission level. See [Create a
+ limited access
+ key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ for more information.
+ items:
+ additionalProperties: false
+ properties:
+ bucket_name:
+ description: >-
+ The name of the bucket the key can access in
+ the `region`.
+ example: primary-bucket
+ type: string
+ cluster:
+ description: >-
+ __Deprecated__ For backwards compatibility,
+ this is included to identify the legacy
+ cluster equivalent of the `region` where this
+ key can be used. The key grants access to each
+ specified `bucket_name`, based on the
+ `permissions` set.
+
+
+ > 📘
+
+ >
+
+ > Use of clusters in a limited access key has
+ been deprecated.
+ example: us-west-1
+ type: string
+ x-akamai:
+ status: DEPRECATED
+ permissions:
+ description: >-
+ The level of access the key grants to the
+ `bucket_name`. Keys with `read_write` access
+ can manage content in the `bucket_name`, while
+ `read_only` can be used to view content.
+ enum:
+ - read_write
+ - read_only
+ example: read_only
+ type: string
+ region:
+ description: The region where the `bucket_name` resides.
+ example: us-west
+ type: string
+ type: object
+ type: array
+ id:
+ description: This Object Storage key's unique ID.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ The label given to this key. For display purposes
+ only.
+ example: my-key
+ type: string
+ limited:
+ description: >-
+ Whether this Object Storage key limits access to
+ specific buckets and permissions. Returns `false` if
+ this key grants full access. Specific limitations
+ are set in `bucket_access`.
+ example: true
+ type: boolean
+ regions:
+ description: >-
+ The key can be used in these regions to manage
+ buckets.
+ items:
+ additionalProperties: false
+ properties:
+ endpoint_type:
+ description: >-
+ The type of `s3_endpoint` available to the
+ active `user` in this `region`. See [Endpoint
+ types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types)
+ for more information.
+ enum:
+ - E0
+ - E1
+ - E2
+ - E3
+ example: E1
+ type: string
+ id:
+ description: >-
+ Identifies each region where you can use the
+ Object Storage key.
+
+
+ - **For an unlimited key**. Each `id`
+ represents an individual region you set in the
+ `regions` array, when you set up the key. See
+ [Create an unlimited access
+ key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ for more information.
+
+
+ - **For a limited access key**. The API server
+ populates each object in this array with each
+ of the individual instances of the `region`
+ parameter you set in the `bucket_access`
+ array. See [Create a limited access
+ key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ for more information.
+ example: us-west
+ type: string
+ s3_endpoint:
+ description: >-
+ The S3-compatible hostname you can use to
+ access the Object Storage buckets in this
+ region.
+ example: us-west-00.linodeobjects.com
+ type: string
+ type: object
+ type: array
+ secret_key:
+ description: >-
+ This Object Storage key's secret key. Used as a
+ password to validate this key when making requests
+ to an S3 API, such as the Amazon S3 API or Ceph
+ Object Gateway S3 API.
+
+
+ > 📘
+
+ >
+
+ > This value is listed as `[REDACTED]` for this
+ operation, to protect it. It's only revealed in a
+ response after
+ [creating](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ a key.
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-key.yaml
+ type: array
page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-object-storage-keys-200.yaml
+ description: A paginated list of Object Storage Keys.
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 object-storage clusters-list
- '/object-storage/clusters/{clusterId}':
- 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.
- tags:
- - 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
- parameters:
- - name: clusterId
- in: path
- description: The ID of the Cluster.
- required: true
- schema:
- type: string
- /object-storage/keys:
- 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.
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'object_storage:read_only'
+ - object_storage:read_only
+ summary: List Object Storage keys
+ tags:
+ - Keys
+ x-akamai:
+ tabs:
+ - syntax: linode-cli object-storage keys-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: object_storage:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: keys-list
+ parameters: []
+ x-akamai:
+ file-path: paths/object-storage-keys.yaml
+ path-info: /{apiVersion}/object-storage/keys
+ x-linode-cli-command: object-storage
+ /object-storage/keys/{keyId}:
+ get:
+ description: >-
+ Returns a single Object Storage key provisioned for your account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-key
+ operationId: get-object-storage-key
responses:
'200':
- description: A paginated list of Object Storage Keys
content:
application/json:
+ example:
+ access_key: ABCDEFGHI1JKL2MNOP34
+ bucket_access:
+ - bucket_name: example-bucket
+ cluster: us-west-1
+ permissions: read_only
+ region: us-west
+ id: 123
+ label: my-key
+ limited: true
+ regions:
+ - endpoint_type: E1
+ id: us-west
+ s3_endpoint: us-west-00.linodeobjects.com
+ secret_key: '[REDACTED]'
schema:
- type: object
+ additionalProperties: false
+ description: A key used to validate requests to an S3 API.
properties:
- data:
+ access_key:
+ description: >-
+ A unique string chosen by the API to identify this key.
+ Used as a username to identify this key when making
+ requests to an S3 API, such as the Amazon S3 API or Ceph
+ Object Gateway S3 API.
+ example: ABCDEFGHI1JKL2MNOP34
+ type: string
+ bucket_access:
+ description: >-
+ Settings that limit access to specific buckets, each with
+ a specific permission level. See [Create a limited access
+ key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ for more information.
+ items:
+ additionalProperties: false
+ properties:
+ bucket_name:
+ description: >-
+ The name of the bucket the key can access in the
+ `region`.
+ example: primary-bucket
+ type: string
+ cluster:
+ description: >-
+ __Deprecated__ For backwards compatibility, this is
+ included to identify the legacy cluster equivalent
+ of the `region` where this key can be used. The key
+ grants access to each specified `bucket_name`, based
+ on the `permissions` set.
+
+
+ > 📘
+
+ >
+
+ > Use of clusters in a limited access key has been
+ deprecated.
+ example: us-west-1
+ type: string
+ x-akamai:
+ status: DEPRECATED
+ permissions:
+ description: >-
+ The level of access the key grants to the
+ `bucket_name`. Keys with `read_write` access can
+ manage content in the `bucket_name`, while
+ `read_only` can be used to view content.
+ enum:
+ - read_write
+ - read_only
+ example: read_only
+ type: string
+ region:
+ description: The region where the `bucket_name` resides.
+ example: us-west
+ type: string
+ type: object
type: array
+ id:
+ description: This Object Storage key's unique ID.
+ example: 123
+ type: integer
+ label:
+ description: The label given to this key. For display purposes only.
+ example: my-key
+ type: string
+ limited:
+ description: >-
+ Whether this Object Storage key limits access to specific
+ buckets and permissions. Returns `false` if this key
+ grants full access. Specific limitations are set in
+ `bucket_access`.
+ example: true
+ type: boolean
+ regions:
+ description: The key can be used in these regions to manage buckets.
items:
- $ref: '#/components/schemas/ObjectStorageKey'
- 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/keys
- - lang: CLI
- source: |
- linode-cli object-storage keys-list
- post:
- 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.
+ additionalProperties: false
+ properties:
+ endpoint_type:
+ description: >-
+ The type of `s3_endpoint` available to the active
+ `user` in this `region`. See [Endpoint
+ types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types)
+ for more information.
+ enum:
+ - E0
+ - E1
+ - E2
+ - E3
+ example: E1
+ type: string
+ id:
+ description: >-
+ Identifies each region where you can use the Object
+ Storage key.
- Accounts with negative balances cannot access this command.
- * To create a Limited Access Key with specific permissions, send a `bucket_access` array.
+ - **For an unlimited key**. Each `id` represents an
+ individual region you set in the `regions` array,
+ when you set up the key. See [Create an unlimited
+ access
+ key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ for more information.
- * To create a Limited Access Key without access to any buckets, send an empty `bucket_access` array.
- * To create an Access Key with unlimited access to all clusters and all buckets, omit the `bucket_access` array.
- tags:
- - Object Storage
+ - **For a limited access key**. The API server
+ populates each object in this array with each of the
+ individual instances of the `region` parameter you
+ set in the `bucket_access` array. See [Create a
+ limited access
+ key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ for more information.
+ example: us-west
+ type: string
+ s3_endpoint:
+ description: >-
+ The S3-compatible hostname you can use to access the
+ Object Storage buckets in this region.
+ example: us-west-00.linodeobjects.com
+ type: string
+ type: object
+ type: array
+ secret_key:
+ description: >-
+ This Object Storage key's secret key. Used as a password
+ to validate this key when making requests to an S3 API,
+ such as the Amazon S3 API or Ceph Object Gateway S3 API.
+
+
+ > 📘
+
+ >
+
+ > This value is listed as `[REDACTED]` for this operation,
+ to protect it. It's only revealed in a response after
+ [creating](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ a key.
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-key.yaml
+ description: The key pair.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'object_storage:read_write'
+ - object_storage:read_only
+ summary: Get an Object Storage key
+ tags:
+ - Keys
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli object-storage keys-view \
+ --keyId 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: object_storage:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: keys-view
+ put:
+ description: >-
+ Updates an Object Storage key on your account. A successful request
+ triggers an `obj_access_key_update`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events).
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/put-object-storage-key
+ operationId: put-object-storage-key
requestBody:
- description: |
- The label of the key to create. This is used to identify the created key.
content:
application/json:
+ example:
+ access_key: ABCDEFGHI1JKL2MNOP34
+ id: 123
+ label: my-key
+ limited: true
+ regions:
+ - endpoint_type: E1
+ id: us-west
+ s3_endpoint: us-west-00.linodeobjects.com
+ secret_key: '[REDACTED]'
schema:
- $ref: '#/components/schemas/ObjectStorageKey'
+ additionalProperties: false
+ properties:
+ label:
+ description: >-
+ The label for the Object Storage key. Used for display
+ purposes. Omit this to leave the `label` unchanged.
+ example: '{{label}}'
+ type: string
+ regions:
+ description: >-
+ Replace the current list of `regions` set in a specific key.
+ Include an existing region to keep it, or leave it out to
+ remove it. Omit the `regions` array to leave the existing
+ list unchanged. If you include new `regions` in the key, you
+ can't immediately use the key to manage content in buckets
+ in those regions. You need to grant these keys this access
+ using [bucket
+ policies](https://www.linode.com/docs/products/storage/object-storage/guides/bucket-policies/).
+
+
+ > 🚧 Limited keys have restrictions
+
+ >
+
+ > These points apply to keys you've
+ [created](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ using the `bucket_access` array:
+
+ >
+
+ > - You can't remove a `region` from a limited key's
+ original `bucket_access` list. If you include the `regions`
+ array in this operation and target a limited key, you need
+ to include all existing `region` entries from the
+ `bucket_access` array. Otherwise, the operation fails with
+ an error. Run [Get an Object Storage
+ key](https://techdocs.akamai.com/linode-api/reference/get-object-storage-key)
+ to review current `region` entries in a limited key.
+
+ >
+
+ > - If you need to remove a specific region from an active
+ limited key, you can [revoke the
+ key](https://techdocs.akamai.com/linode-api/reference/delete-object-storage-key)
+ and create a new Object Storage key, without the specific
+ region.
+ example:
+ - us-iad
+ - fr-par
+ items:
+ type: string
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/put-object-storage-key.yaml
+ description: The fields to update.
responses:
'200':
- description: The new keypair. **This is the only time** the secret key is returned.
content:
application/json:
+ example:
+ access_key: ABCDEFGHI1JKL2MNOP34
+ id: 123
+ label: my-key
+ limited: true
+ regions:
+ - endpoint_type: E1
+ id: us-west
+ s3_endpoint: us-west-00.linodeobjects.com
+ secret_key: '[REDACTED]'
schema:
- $ref: '#/components/schemas/ObjectStorageKey'
+ additionalProperties: false
+ description: An updated Object Storage key used for authentication.
+ properties:
+ access_key:
+ description: >-
+ A unique string chosen by the API to identify this key.
+ Used as a username to identify this key when making
+ requests to an S3 API, such as the Amazon S3 API or Ceph
+ Object Gateway S3 API.
+ example: ABCDEFGHI1JKL2MNOP34
+ type: string
+ id:
+ description: This Object Storage key's unique numeric identifier.
+ example: 123
+ type: integer
+ label:
+ description: The label given to this key. For display purposes only.
+ example: my-key
+ type: string
+ limited:
+ description: >-
+ Whether this Object Storage key limits access to specific
+ buckets and permissions. Returns `false` if this key
+ grants full access.
+
+
+ > 📘
+
+ >
+
+ > The `bucket_access` array that contains limited Object
+ Storage key settings doesn't appear in this response.
+ Store this key's `id` from the response and run [Get an
+ Object Storage
+ key](https://techdocs.akamai.com/linode-api/reference/get-object-storage-key)
+ to view these settings.
+ example: true
+ type: boolean
+ regions:
+ description: >-
+ The key can be used in these regions to list buckets and
+ create new ones, but it can't be used to manage content in
+ the newly created buckets. See [Create an unlimited access
+ key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ for more information.
+ items:
+ additionalProperties: false
+ properties:
+ endpoint_type:
+ description: >-
+ The type of `s3_endpoint` available to the active
+ `user` in this `region`. See [Endpoint
+ types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types)
+ for more information.
+ enum:
+ - E0
+ - E1
+ - E2
+ - E3
+ example: E1
+ type: string
+ id:
+ description: >-
+ Identifies each region where you can use the Object
+ Storage key.
+ example: us-west
+ type: string
+ s3_endpoint:
+ description: >-
+ The S3-compatible hostname you can use to access
+ your Object Storage buckets in this region.
+ example: us-west-00.linodeobjects.com
+ type: string
+ type: object
+ type: array
+ secret_key:
+ description: >-
+ This Object Storage key's secret key. Used as a password
+ to validate this key when making requests to an S3 API,
+ such as the Amazon S3 API or Ceph Object Gateway S3 API.
+
+
+ > 📘
+
+ >
+
+ > This value is listed as `[REDACTED]` for this operation,
+ to protect it. It's only revealed in a response after
+ [creating](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys)
+ a key.
+ example: OiA6F5r0niLs3QA2stbyq7mY5VCV7KqOzcmitmHw
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/put-object-storage-key-200.yaml
+ description: Update Successful.
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
- - 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}':
- get:
- 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.
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'object_storage:read_only'
+ - object_storage:read_write
+ summary: Update an Object Storage key
tags:
- - Object Storage
+ - Keys
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli object-storage keys-update \
+ --keyId 12345
+ --label "my-object-storage-key"
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: object_storage:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: keys-update
+ delete:
+ description: >-
+ Revokes an Object Storage Key. This key pair will no longer be usable by
+ third-party clients. A successful request triggers an
+ `obj_access_key_delete`
+ [event](https://techdocs.akamai.com/linode-api/reference/get-events).
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-object-storage-key
+ operationId: delete-object-storage-key
responses:
'200':
- description: The keypair
content:
application/json:
schema:
- $ref: '#/components/schemas/ObjectStorageKey'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-object-storage-key-200.json
+ description: Deletion successful.
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
- - lang: CLI
- source: |
- linode-cli object-storage keys-view \
- --keyId 12345
- parameters:
- - name: keyId
- in: path
- description: The key to look up.
- required: true
- schema:
- type: integer
- 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.
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'object_storage:read_write'
+ - object_storage:read_write
+ summary: Revoke an Object Storage key
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
+ - Keys
+ x-akamai:
+ tabs:
+ - syntax: linode-cli object-storage keys-delete 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: object_storage:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: keys-delete
+ parameters:
+ - description: The key to look up.
+ example: '{{keyId}}'
+ in: path
+ name: keyId
+ required: true
+ schema:
+ example: 715
+ type: integer
+ x-akamai:
+ file-path: parameters/key-id-path.yaml
+ x-akamai:
+ file-path: paths/object-storage-key.yaml
+ path-info: /{apiVersion}/object-storage/keys/{keyId}
+ x-linode-cli-command: object-storage
+ /object-storage/quotas:
+ get:
+ description: >-
+ Returns the active Object Storage-related quotas applied to your
+ account. For example, you may have a quota maximum for the number of
+ buckets you can have on a single endpoint. The operation includes any
+ quota overrides in the response.
+
+
+ > 📘
+
+ >
+
+ > You can't combine parameters when
+ [filtering](https://techdocs.akamai.com/linode-api/reference//filtering-and-sorting)
+ with this operation. Only a single filterable parameter can be used.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-quotas
+ operationId: get-object-storage-quotas
responses:
'200':
- description: Update Successful
content:
application/json:
+ example:
+ data:
+ - description: Current number of buckets per account, per endpoint
+ endpoint_type: E1
+ quota_id: obj-buckets-eu-central-1.linodeobjects.com
+ quota_limit: 50
+ quota_name: Number of Buckets
+ resource_metric: bucket
+ s3_endpoint: us-sea-9.linodeobjects.com
+ page: 1
+ pages: 1
+ results: 1
schema:
- $ref: '#/components/schemas/ObjectStorageKey'
+ allOf:
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ The current Object Storage-related quotas on your
+ account.
+ properties:
+ description:
+ description: >-
+ A description for the Object Storage-related
+ quota.
+ example: >-
+ Current number of buckets per account, per
+ endpoint
+ type: string
+ x-linode-cli-display: 3
+ endpoint_type:
+ description: >-
+ The type of `s3_endpoint`. See [Endpoint
+ types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types)
+ for more information.
+ enum:
+ - E0
+ - E1
+ - E2
+ - E3
+ example: E1
+ type: string
+ x-linode-cli-display: 6
+ quota_id:
+ description: >-
+ Identifies the Object Storage-related quota.
+ Formatted as `obj--`,
+ where `` is the `resource_metric` in
+ use: `buckets`, `objects` or `bytes`.
+ example: obj-buckets-eu-central-1.linodeobjects.com
+ type: string
+ x-linode-cli-display: 1
+ quota_limit:
+ description: >-
+ The maximum quantity of the `resource_metric`
+ allowed by the quota.
+ example: 50
+ type: integer
+ x-linode-cli-display: 5
+ quota_name:
+ description: >-
+ __Filterable__ The name of the Object
+ Storage-related quota. This is how the quota
+ displays in Akamai Cloud Manager. This can be
+ `Number of Buckets`, `Number of Objects`, or
+ `Total Capacity`.
+ enum:
+ - Number of Objects
+ - Number of Buckets
+ - Total Capacity
+ example: Number of Buckets
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ resource_metric:
+ description: >-
+ The specific Object Storage-based resource for
+ the quota. A quota maximum may apply as follows:
+
+
+ - The Object Storage `bucket` quota for a single
+ `s3_endpoint`
+
+
+ - The `object` quota for a single `s3_endpoint`
+
+
+ - The `byte` count quota for content in a single
+ `s3_endpoint`
+ enum:
+ - bucket
+ - object
+ - byte
+ example: bucket
+ type: string
+ x-linode-cli-display: 4
+ s3_endpoint:
+ description: >-
+ __Filterable__ The URL for the s3 endpoint where
+ the quota applies. Every `s3_endpoint` exists in
+ a specific Akamai Cloud Computing data center
+ (`region`). Run the [List Object Storage
+ endpoints](https://techdocs.akamai.com/linode-api/reference/get-object-storage-endpoints)
+ operation to see more specifics on this
+ `s3_endpoint`.
+ example: us-sea-9.linodeobjects.com
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-quota.yaml
+ type: array
+ type: object
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ x-akamai:
+ file-path: schemas/object-storage-quotas.yaml
+ description: >-
+ A paginated list of Object Storage-related quotas applied to your
+ account.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "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"
- parameters:
- - name: keyId
- in: path
- description: The key to look up.
- required: true
- schema:
- type: integer
- 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.
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'object_storage:read_write'
+ - object_storage:read_only
+ summary: List Object Storage quotas
tags:
- - Object Storage
+ - Object Storage quotas
+ x-akamai:
+ tabs:
+ - syntax: linode-cli object-storage quotas-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: object_storage:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - quotas-list
+ - get-object-storage-quotas
+ parameters: []
+ x-akamai:
+ file-path: paths/object-storage-quotas.yaml
+ path-info: /{apiVersion}/object-storage/quotas
+ x-linode-cli-command: object-storage
+ /object-storage/transfer:
+ get:
+ 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
+ Overview](https://www.linode.com/docs/products/storage/object-storage/#pricing)
+ guide for details on Object Storage transfer quotas. __OAuth scopes__.
+
+ ```
+ object_storage:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+
+
+ -
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-transfer
+ operationId: get-object-storage-transfer
responses:
'200':
- description: Deletion successful
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ used:
+ description: >-
+ __Read-only__ 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: integer
+ x-linode-cli-display: 1
type: object
+ x-akamai:
+ file-path: schemas/added-get-object-storage-transfer-200.yaml
+ x-example:
+ x-ref: ../examples/get-object-storage-transfer-200.json
+ description: >-
+ Returns the amount of outbound data transfer used by your account's
+ Object Storage buckets.
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/keys/12345
- - lang: CLI
- source: |
- linode-cli object-storage keys-delete 12345
- parameters:
- - name: keyId
- in: path
- description: The key to look up.
- required: true
- schema:
- type: integer
- /object-storage/cancel:
- 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.
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'object_storage:read_write'
+ - object_storage:read_only
+ summary: Get Object Storage transfer data
tags:
- Object Storage
+ x-akamai:
+ tabs:
+ - syntax: object_storage:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ - syntax: linode-cli object-storage transfer-view
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action:
+ - transfer-view
+ - get-object-storage-transfer
+ parameters: []
+ x-akamai:
+ file-path: paths/object-storage-transfer.yaml
+ path-info: /{apiVersion}/object-storage/transfer
+ x-linode-cli-command: object-storage
+ /object-storage/types:
+ get:
+ description: >-
+ Returns Object Storage types and prices, including any region-specific
+ rates.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-types
+ operationId: get-object-storage-types
responses:
'200':
- description: Object Storage cancellation successful.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ data:
+ description: The Object Storage types.
+ items:
+ additionalProperties: false
+ description: >-
+ Returns collection of Object Storage types and prices,
+ including any region-specific rates.
+ properties:
+ id:
+ description: >-
+ __Read-only__ The ID representing the Object Storage
+ type.
+ example: objectstorage
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__, __Read-only__ The Object Storage
+ type label is for display purposes only.
+ example: Object Storage
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ price:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The default cost of this Object
+ Storage type. Prices are in US dollars, broken down
+ into hourly and monthly charges.
+
+
+ Certain regions have different prices from the
+ default. For region-specific prices, see
+ `region_prices`.
+ properties:
+ hourly:
+ description: __Filterable__ Cost (in US dollars) per hour.
+ example: 0.0015
+ type: number
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ monthly:
+ description: __Filterable__ Cost per month, in US dollars.
+ example: 0.1
+ type: number
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ readOnly: true
+ type: object
+ region_prices:
+ items:
+ additionalProperties: false
+ properties:
+ hourly:
+ description: Cost per hour for this region, in US dollars.
+ example: 0.00018
+ type: number
+ x-linode-cli-display: 6
+ id:
+ description: The Region ID for these prices.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ monthly:
+ description: Cost per month for this region, in US dollars.
+ example: 0.12
+ type: number
+ x-linode-cli-display: 7
+ type: object
+ type: array
+ transfer:
+ description: >-
+ __Filterable__, __Read-only__ The monthly outbound
+ transfer amount, in MB.
+ example: 0
+ minimum: 0
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-type.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
type: object
+ x-akamai:
+ file-path: schemas/get-object-storage-types-200.yaml
+ x-example:
+ x-ref: ../examples/get-object-storage-types-200.json
+ description: A collection of Object Storage types.
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':
- get:
- 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:
- - Object Storage
- security:
- - personalAccessToken: []
- - oauth:
- - 'object_storage: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.
content:
application/json:
schema:
- $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/object-storage/buckets/us-east-1/example-bucket/ssl
- - lang: CLI
- source: |
- linode-cli object-storage ssl-view \
- us-east-1 example-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
- 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.
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: List Object Storage types
+ tags:
+ - Object Storage types
+ x-akamai:
+ tabs:
+ - syntax: linode-cli object-storage types
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: types
+ x-linode-redoc-load-ids: true
+ parameters: []
+ x-akamai:
+ file-path: paths/object-storage-types.yaml
+ path-info: /{apiVersion}/object-storage/types
+ x-linode-cli-command: object-storage
+ /object-storage/quotas/{object_storage-quotaId}:
+ get:
+ description: >-
+ Returns information about a specific Object Storage-related quota on
+ your account. The operation includes any quota overrides in the
+ response.
- 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
- security:
- - personalAccessToken: []
- - oauth:
- - 'object_storage:read_write'
- requestBody:
- description: Upload this TLS/SSL certificate with its corresponding secret key.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ObjectStorageSSL'
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-quota
+ operationId: get-object-storage-quota
responses:
'200':
- description: Returns whether this bucket has a corresponding TLS/SSL certificate that was uploaded by a user.
content:
application/json:
+ example:
+ description: Current number of buckets per account, per endpoint
+ endpoint_type: E1
+ quota_id: obj-buckets-eu-central-1.linodeobjects.com
+ quota_limit: 50
+ quota_name: Number of Buckets
+ resource_metric: bucket
+ s3_endpoint: us-sea-9.linodeobjects.com
schema:
- $ref: '#/components/schemas/ObjectStorageSSLResponse'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "certificate": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_INFORMATION\n-----END CERTIFICATE-----",
- "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY_INFORMATION\n-----END PRIVATE KEY-----"
- }' \
- https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/ssl
- - lang: CLI
- source: |
- linode-cli object-storage ssl-upload \
- us-east-1 example-bucket \
- --certificate "-----BEGIN CERTIFICATE-----
- CERTIFICATE_INFORMATION
- -----END CERTIFICATE-----" \
- --private_key "-----BEGIN PRIVATE KEY-----
- PRIVATE_KEY_INFORMATION
- -----END PRIVATE KEY-----"
- 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
- 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 this Object Storage bucket's user uploaded TLS/SSL certificate and private key.
- tags:
- - Object Storage
- security:
- - personalAccessToken: []
- - oauth:
- - 'object_storage:read_write'
- responses:
- '200':
- description: Deletes this Object Storage bucket's user uploaded TLS/SSL certificate and private key.
+ additionalProperties: false
+ description: The current Object Storage-related quotas on your account.
+ properties:
+ description:
+ description: A description for the Object Storage-related quota.
+ example: Current number of buckets per account, per endpoint
+ type: string
+ x-linode-cli-display: 3
+ endpoint_type:
+ description: >-
+ The type of `s3_endpoint`. See [Endpoint
+ types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types)
+ for more information.
+ enum:
+ - E0
+ - E1
+ - E2
+ - E3
+ example: E1
+ type: string
+ x-linode-cli-display: 6
+ quota_id:
+ description: >-
+ Identifies the Object Storage-related quota. Formatted as
+ `obj--`, where `` is
+ the `resource_metric` in use: `buckets`, `objects` or
+ `bytes`.
+ example: obj-buckets-eu-central-1.linodeobjects.com
+ type: string
+ x-linode-cli-display: 1
+ quota_limit:
+ description: >-
+ The maximum quantity of the `resource_metric` allowed by
+ the quota.
+ example: 50
+ type: integer
+ x-linode-cli-display: 5
+ quota_name:
+ description: >-
+ __Filterable__ The name of the Object Storage-related
+ quota. This is how the quota displays in Akamai Cloud
+ Manager. This can be `Number of Buckets`, `Number of
+ Objects`, or `Total Capacity`.
+ enum:
+ - Number of Objects
+ - Number of Buckets
+ - Total Capacity
+ example: Number of Buckets
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ resource_metric:
+ description: >-
+ The specific Object Storage-based resource for the quota.
+ A quota maximum may apply as follows:
+
+
+ - The Object Storage `bucket` quota for a single
+ `s3_endpoint`
+
+
+ - The `object` quota for a single `s3_endpoint`
+
+
+ - The `byte` count quota for content in a single
+ `s3_endpoint`
+ enum:
+ - bucket
+ - object
+ - byte
+ example: bucket
+ type: string
+ x-linode-cli-display: 4
+ s3_endpoint:
+ description: >-
+ __Filterable__ The URL for the s3 endpoint where the quota
+ applies. Every `s3_endpoint` exists in a specific Akamai
+ Cloud Computing data center (`region`). Run the [List
+ Object Storage
+ endpoints](https://techdocs.akamai.com/linode-api/reference/get-object-storage-endpoints)
+ operation to see more specifics on this `s3_endpoint`.
+ example: us-sea-9.linodeobjects.com
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/object-storage-quota.yaml
+ description: A single Object Storage-related quota for your account.
+ default:
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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/object-storage/buckets/us-east-1/example-bucket/ssl
- - lang: CLI
- source: |
- linode-cli object-storage ssl-delete \
- us-east-1 example-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
- /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 Overview](/docs/products/storage/object-storage/#pricing)
- guide for details on Object Storage transfer quotas.
- tags:
- - Object Storage
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'object_storage:read_only'
+ - object_storage:read_only
+ summary: Get an Object Storage quota
+ tags:
+ - Object Storage quotas
+ x-akamai:
+ tabs:
+ - syntax: linode-cli object-storage quota-view obj-objects-us-ord-1
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: object_storage:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - quota-view
+ - get-object-storage-quota
+ parameters:
+ - description: >-
+ The unique string that identifies the specific Object Storage-related
+ quota to look up. This follows the pattern,
+ `obj--`, for example,
+ `obj-buckets-eu-central-1.linodeobjects.com`.
+ example: '{{object-storage-quotaId}}'
+ in: path
+ name: object-storage-quotaId
+ required: true
+ schema:
+ example: obj-buckets-eu-central-1.linodeobjects.com
+ type: string
+ x-akamai:
+ file-path: parameters/object-storage-quota-id-path.yaml
+ x-akamai:
+ file-path: paths/object-storage-quota.yaml
+ path-info: /{apiVersion}/object-storage/quotas/{object-storage-quotaId}
+ x-linode-cli-command: object-storage
+ /object-storage/quotas/{object_storage-quotaId}/usage:
+ get:
+ description: >-
+ Returns usage data for a specific `object-storage-quotaId`. This
+ includes the maximum number of `object-storage-quotaId` resources you
+ can have for a single endpoint and the current usage for that resource.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-object-storage-quota-usage
+ operationId: get-object-storage-quota-usage
responses:
'200':
- description: |
- Returns the amount of outbound data transfer used by your account's Object Storage buckets.
content:
application/json:
+ example:
+ quota_limit: 100
+ usage: 10
schema:
+ additionalProperties: false
+ description: >-
+ Usage data for a specific Object Storage-related quota on your
+ account.
properties:
- used:
+ quota_limit:
+ description: >-
+ The availability limit for a specific Object Storage
+ resource (`object-storage-quotaId`) for a single endpoint.
+ example: 100
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
+ x-linode-cli-display: 1
+ usage:
+ description: >-
+ The quantity of the Object Storage resource currently in
+ use on an endpoint. Displayed as `null` if no resources
+ are in use.
+ example: 10
+ nullable: true
+ type: integer
+ x-linode-cli-display: 2
type: object
+ x-akamai:
+ file-path: schemas/object-storage-quota-usage.yaml
+ description: Usage data for the specified `object-storage-quotaId`.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/object-storage/transfer/
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - object_storage:read_only
+ summary: Get Object Storage quota usage data
+ tags:
+ - Object Storage quotas
+ x-akamai:
+ tabs:
+ - syntax: linode-cli object-storage quota-usage-view obj-objects-us-ord-1
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: object_storage:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - quota-usage-view
+ - get-object-storage-quota-usage
+ parameters:
+ - description: >-
+ The unique string that identifies the specific Object Storage-related
+ quota to look up. This follows the pattern,
+ `obj--`, for example,
+ `obj-buckets-eu-central-1.linodeobjects.com`.
+ example: '{{object-storage-quotaId}}'
+ in: path
+ name: object-storage-quotaId
+ required: true
+ schema:
+ example: obj-buckets-eu-central-1.linodeobjects.com
+ type: string
+ x-akamai:
+ file-path: parameters/object-storage-quota-id-path.yaml
+ x-akamai:
+ file-path: paths/object-storage-quota-usage.yaml
+ path-info: /{apiVersion}/object-storage/quotas/{object-storage-quotaId}/usage
+ x-linode-cli-command: object-storage
+components:
+ x-stackQL-resources:
+ buckets:
+ id: linode.object_storage.buckets
+ name: buckets
+ title: Buckets
+ methods:
+ post_object_storage_bucket:
+ operation:
+ $ref: '#/paths/~1object-storage~1buckets/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_object_storage_buckets:
+ operation:
+ $ref: '#/paths/~1object-storage~1buckets/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_object_storage_bucketin_cluster:
+ operation:
+ $ref: '#/paths/~1object-storage~1buckets~1{regionId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_object_storage_bucket:
+ operation:
+ $ref: '#/paths/~1object-storage~1buckets~1{regionId}~1{bucket}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_object_storage_bucket:
+ operation:
+ $ref: '#/paths/~1object-storage~1buckets~1{regionId}~1{bucket}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_object_storage_object_url:
+ operation:
+ $ref: >-
+ #/paths/~1object-storage~1buckets~1{regionId}~1{bucket}~1object-url/post
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/buckets/methods/get_object_storage_bucket
+ - $ref: >-
+ #/components/x-stackQL-resources/buckets/methods/get_object_storage_bucketin_cluster
+ - $ref: >-
+ #/components/x-stackQL-resources/buckets/methods/get_object_storage_buckets
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/buckets/methods/post_object_storage_bucket
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/buckets/methods/delete_object_storage_bucket
+ replace: []
+ bucket_access:
+ id: linode.object_storage.bucket_access
+ name: bucket_access
+ title: Bucket Access
+ methods:
+ post_object_storage_bucket_access:
+ operation:
+ $ref: >-
+ #/paths/~1object-storage~1buckets~1{regionId}~1{bucket}~1access/post
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_object_storage_bucket_access:
+ operation:
+ $ref: >-
+ #/paths/~1object-storage~1buckets~1{regionId}~1{bucket}~1access/get
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_storage_bucket_access:
+ operation:
+ $ref: >-
+ #/paths/~1object-storage~1buckets~1{regionId}~1{bucket}~1access/put
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/bucket_access/methods/get_object_storage_bucket_access
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/bucket_access/methods/post_object_storage_bucket_access
+ update: []
+ delete: []
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/bucket_access/methods/put_storage_bucket_access
+ acl_configurations:
+ id: linode.object_storage.acl_configurations
+ name: acl_configurations
+ title: Acl Configurations
+ methods:
+ get_object_storage_bucket_acl:
+ operation:
+ $ref: >-
+ #/paths/~1object-storage~1buckets~1{regionId}~1{bucket}~1object-acl/get
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_object_storage_bucket_acl:
+ operation:
+ $ref: >-
+ #/paths/~1object-storage~1buckets~1{regionId}~1{bucket}~1object-acl/put
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/acl_configurations/methods/get_object_storage_bucket_acl
+ insert: []
+ update: []
+ delete: []
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/acl_configurations/methods/put_object_storage_bucket_acl
+ bucket_contents:
+ id: linode.object_storage.bucket_contents
+ name: bucket_contents
+ title: Bucket Contents
+ methods:
+ get_object_storage_bucket_content:
+ operation:
+ $ref: >-
+ #/paths/~1object-storage~1buckets~1{regionId}~1{bucket}~1object-list/get
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/bucket_contents/methods/get_object_storage_bucket_content
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ ssl_certificates:
+ id: linode.object_storage.ssl_certificates
+ name: ssl_certificates
+ title: Ssl Certificates
+ methods:
+ post_object_storage_ssl:
+ operation:
+ $ref: '#/paths/~1object-storage~1buckets~1{regionId}~1{bucket}~1ssl/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_object_storage_ssl:
+ operation:
+ $ref: '#/paths/~1object-storage~1buckets~1{regionId}~1{bucket}~1ssl/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_object_storage_ssl:
+ operation:
+ $ref: >-
+ #/paths/~1object-storage~1buckets~1{regionId}~1{bucket}~1ssl/delete
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/ssl_certificates/methods/get_object_storage_ssl
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/ssl_certificates/methods/post_object_storage_ssl
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/ssl_certificates/methods/delete_object_storage_ssl
+ replace: []
+ object_storage:
+ id: linode.object_storage.object_storage
+ name: object_storage
+ title: Object Storage
+ methods:
+ post_cancel_object_storage:
+ operation:
+ $ref: '#/paths/~1object-storage~1cancel/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_object_storage_transfer:
+ operation:
+ $ref: '#/paths/~1object-storage~1transfer/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/object_storage/methods/get_object_storage_transfer
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ clusters:
+ id: linode.object_storage.clusters
+ name: clusters
+ title: Clusters
+ methods:
+ get_object_storage_clusters:
+ operation:
+ $ref: '#/paths/~1object-storage~1clusters/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_object_storage_cluster:
+ operation:
+ $ref: '#/paths/~1object-storage~1clusters~1{clusterId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/clusters/methods/get_object_storage_cluster
+ - $ref: >-
+ #/components/x-stackQL-resources/clusters/methods/get_object_storage_clusters
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ endpoints:
+ id: linode.object_storage.endpoints
+ name: endpoints
+ title: Endpoints
+ methods:
+ get_object_storage_endpoints:
+ operation:
+ $ref: '#/paths/~1object-storage~1endpoints/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/endpoints/methods/get_object_storage_endpoints
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ keys:
+ id: linode.object_storage.keys
+ name: keys
+ title: Keys
+ methods:
+ post_object_storage_keys:
+ operation:
+ $ref: '#/paths/~1object-storage~1keys/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_object_storage_keys:
+ operation:
+ $ref: '#/paths/~1object-storage~1keys/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_object_storage_key:
+ operation:
+ $ref: '#/paths/~1object-storage~1keys~1{keyId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_object_storage_key:
+ operation:
+ $ref: '#/paths/~1object-storage~1keys~1{keyId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_object_storage_key:
+ operation:
+ $ref: '#/paths/~1object-storage~1keys~1{keyId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/keys/methods/get_object_storage_key
+ - $ref: >-
+ #/components/x-stackQL-resources/keys/methods/get_object_storage_keys
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/keys/methods/post_object_storage_keys
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/keys/methods/delete_object_storage_key
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/keys/methods/put_object_storage_key
+ quotas:
+ id: linode.object_storage.quotas
+ name: quotas
+ title: Quotas
+ methods:
+ get_object_storage_quotas:
+ operation:
+ $ref: '#/paths/~1object-storage~1quotas/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ get_object_storage_quota:
+ operation:
+ $ref: '#/paths/~1object-storage~1quotas~1{object_storage-quotaId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/quotas/methods/get_object_storage_quota
+ - $ref: >-
+ #/components/x-stackQL-resources/quotas/methods/get_object_storage_quotas
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ types:
+ id: linode.object_storage.types
+ name: types
+ title: Types
+ methods:
+ get_object_storage_types:
+ operation:
+ $ref: '#/paths/~1object-storage~1types/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/types/methods/get_object_storage_types
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ quota_usage:
+ id: linode.object_storage.quota_usage
+ name: quota_usage
+ title: Quota Usage
+ methods:
+ get_object_storage_quota_usage:
+ operation:
+ $ref: >-
+ #/paths/~1object-storage~1quotas~1{object_storage-quotaId}~1usage/get
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/quota_usage/methods/get_object_storage_quota_usage
+ insert: []
+ update: []
+ delete: []
+ replace: []
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/placement.yaml b/providers/src/linode/v00.00.00000/services/placement.yaml
new file mode 100644
index 00000000..759934a3
--- /dev/null
+++ b/providers/src/linode/v00.00.00000/services/placement.yaml
@@ -0,0 +1,2125 @@
+openapi: 3.0.1
+info:
+ title: placement API
+ description: linode placement API
+ version: 4.208.1
+paths:
+ /placement/groups:
+ post:
+ description: >-
+ Creates a placement group on your account. Placement groups disperse
+ your Linodes across physical machines (hosts) in one of our compute
+ regions. Depending on your workload requirements, you may need your
+ Linodes to follow specific strategies:
+
+
+ - __Grouped together__. You may want them placed close together to
+ reduce latency between Linodes that are used for an application or
+ workload.
+
+
+ - __Spread apart__. You may want to disperse them across several hosts
+ to support high availability, for example when required for failover.
+
+
+ We offer an [example API
+ workflow](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups#use-the-api)
+ you can follow to create a placement group.
+
+
+ > 📘
+
+ >
+
+ > To run this operation, your user needs the `add_linodes`
+ [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).
+ Talk to your local account administrator about grant management for your
+ user.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-placement-group
+ operationId: post-placement-group
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ Common properties for creating and rebuilding placement
+ groups.
+ properties:
+ label:
+ description: >-
+ A unique name for the placement group. A placement group
+ `label` has the following constraints:
+
+
+ - It needs to begin and end with an alphanumeric
+ character.
+
+ - It can only consist of alphanumeric characters,
+ hyphens (`-`), underscores (`_`), or periods (`.`).
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ placement_group_policy:
+ description: >-
+ How requests to add future compute instances to your
+ placement group are handled:
+
+
+ - `strict`. Don't add a compute instance if it breaks
+ the grouped-together or spread-apart model set by your
+ `placement_group_type`. For example, with
+ `anti-affinity:local` as your `placement_group_type`,
+ assume it already has three qualifying compute instances
+ on separate hosts, to support the spread-apart model. If
+ a fourth compute instance is assigned that's on the same
+ host as one of the existing three, an error is thrown
+ and the system won't add it. Ensures the placement group
+ stays compliant with your selected model.
+
+ - `flexible`. Add a new compute instance, even if it
+ breaks the grouped-together or spread-apart model set by
+ your `placement_group_type`. Breaking the model makes
+ the placement group non-compliant. You need to wait for
+ Akamai to move the offending compute instances to make
+ the group compliant again, once the necessary capacity
+ is available in the region. Offers flexibility to add
+ future compute instances if compliance isn't an
+ immediate concern.
+
+
+ > 📘
+
+ >
+
+ > Once you create a placement group, you can't change
+ its `placement_group_policy` setting.
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ placement_group_type:
+ description: >-
+ How compute instances are distributed in your placement
+ group. A `placement_group_type` using anti-affinity
+ (`anti-affinity:local`) places compute instances in
+ separate hosts, but still in the same region. This best
+ supports the spread-apart model for high availability. A
+ `placement_group_type` using affinity places compute
+ instances physically close together, possibly on the
+ same host. This supports the grouped-together model for
+ low-latency.
+
+
+ > 📘
+
+ >
+
+ > Currently, only `anti_affinity:local` is available for
+ `placement_group_type`.
+ enum:
+ - anti_affinity:local
+ example:
+ - anti_affinity:local
+ type: string
+ x-linode-cli-display: 1
+ region:
+ description: >-
+ The data center that houses the compute instances you
+ want to add to your placement group. Run the [List
+ Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances)
+ operation to view your compute instances and store the
+ `region` identifier.
+ example: us-iad
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/placement-group-request.yaml
+ required:
+ - placement_group_type
+ - placement_group_policy
+ - label
+ - region
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-placement-group.yaml
+ x-example:
+ x-ref: ../examples/post-placement-group.json
+ required: true
+ x-linode-cli-allowed-defaults:
+ - placement_group_type
+ - placement_group_policy
+ - label
+ - region
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ id:
+ description: >-
+ The placement group's ID. You need to provide it for all
+ operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: 1
+ is_compliant:
+ description: >-
+ Whether all of the compute instances in your placement
+ group are compliant. If `true`, all compute instances meet
+ either the grouped-together or spread-apart model, which
+ you determine through your selected
+ `placement_group_type`. If `false`, a compute instance is
+ out of this compliance. For example, assume you've set
+ `anti-affinity:local` as your `placement_group_type` and
+ your group already has three qualifying compute instances
+ on separate hosts, to support the spread-apart model. If a
+ fourth compute instance is assigned that's on the same
+ host as one of the existing three, the placement group is
+ non-compliant. Enforce compliance in your group by setting
+ a `placement_group_policy`.
+
+
+ > 📘
+
+ >
+
+ > Fixing compliance is not self-service. You need to wait
+ for our assistance to physically move compute instances to
+ make the group compliant again.
+ example: true
+ nullable: false
+ type: boolean
+ label:
+ description: >-
+ __Filterable__ The unique name set for the placement
+ group. A label has these constraints:
+
+
+ - It needs to begin and end with an alphanumeric
+ character.
+
+ - It can only consist of alphanumeric characters, hyphens
+ (`-`), underscores (`_`) or periods (`.`).
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ members:
+ description: >-
+ An array of compute instances included in the placement
+ group.
+ items:
+ additionalProperties: false
+ properties:
+ is_compliant:
+ description: >-
+ The compliance status of each individual compute
+ instance in the placement group.
+ example: true
+ type: boolean
+ linode_id:
+ description: >-
+ __Read-only__ The unique identifier for a compute
+ instance included in the placement group.
+ example: 123
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ placement_group_policy:
+ description: >-
+ How requests to add future compute instances to your
+ placement group are handled, and whether it remains
+ compliant:
+
+
+ - `strict`. Don't assign a new compute instance if it
+ breaks the grouped-together or spread-apart model set by
+ the `placement_group_type`. Use this to ensure the
+ placement group stays compliant (`is_compliant: true`).
+
+ - `flexible`. Assign a new compute instance, even if it
+ breaks the grouped-together or spread-apart model set by
+ the `placement_group_type`. This makes the group
+ non-compliant (`is_compliant: false`). You need to wait
+ for Akamai to move the offending compute instance to make
+ it compliant again, once the necessary capacity is
+ available in the region. Offers flexibility to add future
+ compute instances if compliance isn't an immediate
+ concern.
+
+
+ <>
+
+
+ > 📘
+
+ >
+
+ > In rare cases, non-compliance can occur with a `strict`
+ placement group if Akamai needs to failover or migrate
+ your compute instances for maintenance. Fixing
+ non-compliance for a `strict` placement group is
+ prioritized over a `flexible` group.
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ placement_group_type:
+ description: >-
+ __Filterable__, __Read-only__ How compute instances are
+ distributed in your placement group. A
+ `placement_group_type` using anti-affinity
+ (`anti-affinity:local`) places compute instances in
+ separate hosts, but still in the same region. This best
+ supports the spread-apart model for high availability. A
+ `placement_group_type` using affinity places compute
+ instances physically close together, possibly on the same
+ host. This supports the grouped-together model for
+ low-latency.
+
+
+ > 📘
+
+ >
+
+ > Currently, only `anti_affinity:local` is available for
+ `placement_group_type`.
+ enum:
+ - anti_affinity:local
+ example: anti-affinity:local
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The
+ [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the placement group was deployed.
+ example: us-mia
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/placement-group.yaml
+ x-example:
+ x-ref: ../examples/post-placement-group-200.json
+ description: A new placement group is being created.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Create placement group
+ tags:
+ - Placement groups
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli placement group-create \
+ --label PG_Miami_failover \
+ --region us-mia \
+ --placement_group_type "anti-affinity:local" \
+ --placement_group_policy strict
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode charge: true
+ x-linode grant: add_placement
+ x-linode-cli-action: group-create
+ get:
+ description: >-
+ Returns a paginated list of placement groups you have permission to
+ view.
+
+
+ > 📘
+
+ >
+
+ > Your user needs at least `read-only`
+ [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ to all Linodes included in a placement group to view it. Placement
+ groups that contain Linodes that you don't have this permission for are
+ left out of the response. If all placement groups contain Linodes that
+ lack this permission, the API returns a 403 error. Talk to your local
+ account administrator about managing permissions.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-placement-groups
+ operationId: get-placement-groups
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: >-
+ The placement group's ID. You need to provide it for
+ all operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: 1
+ is_compliant:
+ description: >-
+ Whether all of the compute instances in your
+ placement group are compliant. If `true`, all
+ compute instances meet either the grouped-together
+ or spread-apart model, which you determine through
+ your selected `placement_group_type`. If `false`, a
+ compute instance is out of this compliance. For
+ example, assume you've set `anti-affinity:local` as
+ your `placement_group_type` and your group already
+ has three qualifying compute instances on separate
+ hosts, to support the spread-apart model. If a
+ fourth compute instance is assigned that's on the
+ same host as one of the existing three, the
+ placement group is non-compliant. Enforce compliance
+ in your group by setting a `placement_group_policy`.
+
+
+ > 📘
+
+ >
+
+ > Fixing compliance is not self-service. You need to
+ wait for our assistance to physically move compute
+ instances to make the group compliant again.
+ example: true
+ nullable: false
+ type: boolean
+ label:
+ description: >-
+ __Filterable__ The unique name set for the placement
+ group. A label has these constraints:
+
+
+ - It needs to begin and end with an alphanumeric
+ character.
+
+ - It can only consist of alphanumeric characters,
+ hyphens (`-`), underscores (`_`) or periods (`.`).
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ members:
+ description: >-
+ An array of compute instances included in the
+ placement group.
+ items:
+ additionalProperties: false
+ properties:
+ is_compliant:
+ description: >-
+ The compliance status of each individual
+ compute instance in the placement group.
+ example: true
+ type: boolean
+ linode_id:
+ description: >-
+ __Read-only__ The unique identifier for a
+ compute instance included in the placement
+ group.
+ example: 123
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ migrations:
+ additionalProperties: false
+ description: >-
+ Any compute instances that are being migrated to or
+ from the placement group. Returned as `null` if no
+ migrations are taking place.
+ nullable: true
+ properties:
+ inbound:
+ description: >-
+ The individual compute instances the system is
+ migrating into the placement group.
+ items:
+ additionalProperties: false
+ properties:
+ linode_id:
+ description: >-
+ __Read-only__ The unique identifier for a
+ compute instance being migrated into the
+ placement group.
+ example: 123
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ outbound:
+ description: >-
+ The individual compute instances the system is
+ migrating out of the placement group.
+ items:
+ additionalProperties: false
+ properties:
+ linode_id:
+ description: >-
+ __Read-only__ The unique identifier for a
+ compute instance being migrated out of the
+ placement group.
+ example: 456
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ type: object
+ placement_group_policy:
+ description: >-
+ How requests to add future compute instances to your
+ placement group are handled, and whether it remains
+ compliant:
+
+
+ - `strict`. Don't assign a new compute instance if
+ it breaks the grouped-together or spread-apart model
+ set by the `placement_group_type`. Use this to
+ ensure the placement group stays compliant
+ (`is_compliant: true`).
+
+ - `flexible`. Assign a new compute instance, even if
+ it breaks the grouped-together or spread-apart model
+ set by the `placement_group_type`. This makes the
+ group non-compliant (`is_compliant: false`). You
+ need to wait for Akamai to move the offending
+ compute instance to make it compliant again, once
+ the necessary capacity is available in the region.
+ Offers flexibility to add future compute instances
+ if compliance isn't an immediate concern.
+
+
+ <>
+
+
+ > 📘
+
+ >
+
+ > In rare cases, non-compliance can occur with a
+ `strict` placement group if Akamai needs to failover
+ or migrate your compute instances for maintenance.
+ Fixing non-compliance for a `strict` placement group
+ is prioritized over a `flexible` group.
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ placement_group_type:
+ description: >-
+ __Filterable__, __Read-only__ How compute instances
+ are distributed in your placement group. A
+ `placement_group_type` using anti-affinity
+ (`anti-affinity:local`) places compute instances in
+ separate hosts, but still in the same region. This
+ best supports the spread-apart model for high
+ availability. A `placement_group_type` using
+ affinity places compute instances physically close
+ together, possibly on the same host. This supports
+ the grouped-together model for low-latency.
+
+
+ > 📘
+
+ >
+
+ > Currently, only `anti_affinity:local` is available
+ for `placement_group_type`.
+ enum:
+ - anti_affinity:local
+ example: anti-affinity:local
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The
+ [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the placement group was deployed.
+ example: us-mia
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/placement-group-migrate.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-placement-groups-200.yaml
+ x-example:
+ x-ref: ../examples/get-placement-groups-200.json
+ description: Returns an array of all placement groups on your Account.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - placement:read_only
+ summary: List placement groups
+ tags:
+ - Placement groups
+ x-akamai:
+ tabs:
+ - syntax: linode-cli placement groups-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: placement:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - groups-list
+ - groups-ls
+ parameters: []
+ x-akamai:
+ file-path: paths/groups.yaml
+ path-info: /{apiVersion}/placement/groups
+ x-linode-cli-command: placement
+ /placement/groups/{groupId}:
+ get:
+ description: >-
+ View a specific placement group by ID.
+
+
+ > 📘
+
+ >
+
+ > Your user needs at least `read-only`
+ [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ to all Linodes included in a placement group to view it. If you don't
+ have this access and call this operation, the API returns a 403 error.
+ Talk to your local account administrator about managing permissions.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-placement-group
+ operationId: get-placement-group
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ id:
+ description: >-
+ The placement group's ID. You need to provide it for all
+ operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: 1
+ is_compliant:
+ description: >-
+ Whether all of the compute instances in your placement
+ group are compliant. If `true`, all compute instances meet
+ either the grouped-together or spread-apart model, which
+ you determine through your selected
+ `placement_group_type`. If `false`, a compute instance is
+ out of this compliance. For example, assume you've set
+ `anti-affinity:local` as your `placement_group_type` and
+ your group already has three qualifying compute instances
+ on separate hosts, to support the spread-apart model. If a
+ fourth compute instance is assigned that's on the same
+ host as one of the existing three, the placement group is
+ non-compliant. Enforce compliance in your group by setting
+ a `placement_group_policy`.
+
+
+ > 📘
+
+ >
+
+ > Fixing compliance is not self-service. You need to wait
+ for our assistance to physically move compute instances to
+ make the group compliant again.
+ example: true
+ nullable: false
+ type: boolean
+ label:
+ description: >-
+ __Filterable__ The unique name set for the placement
+ group. A label has these constraints:
+
+
+ - It needs to begin and end with an alphanumeric
+ character.
+
+ - It can only consist of alphanumeric characters, hyphens
+ (`-`), underscores (`_`) or periods (`.`).
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ members:
+ description: >-
+ An array of compute instances included in the placement
+ group.
+ items:
+ additionalProperties: false
+ properties:
+ is_compliant:
+ description: >-
+ The compliance status of each individual compute
+ instance in the placement group.
+ example: true
+ type: boolean
+ linode_id:
+ description: >-
+ __Read-only__ The unique identifier for a compute
+ instance included in the placement group.
+ example: 123
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ migrations:
+ additionalProperties: false
+ description: >-
+ Any compute instances that are being migrated to or from
+ the placement group. Returned as `null` if no migrations
+ are taking place.
+ nullable: true
+ properties:
+ inbound:
+ description: >-
+ The individual compute instances the system is
+ migrating into the placement group.
+ items:
+ additionalProperties: false
+ properties:
+ linode_id:
+ description: >-
+ __Read-only__ The unique identifier for a
+ compute instance being migrated into the
+ placement group.
+ example: 123
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ outbound:
+ description: >-
+ The individual compute instances the system is
+ migrating out of the placement group.
+ items:
+ additionalProperties: false
+ properties:
+ linode_id:
+ description: >-
+ __Read-only__ The unique identifier for a
+ compute instance being migrated out of the
+ placement group.
+ example: 456
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ type: object
+ placement_group_policy:
+ description: >-
+ How requests to add future compute instances to your
+ placement group are handled, and whether it remains
+ compliant:
+
+
+ - `strict`. Don't assign a new compute instance if it
+ breaks the grouped-together or spread-apart model set by
+ the `placement_group_type`. Use this to ensure the
+ placement group stays compliant (`is_compliant: true`).
+
+ - `flexible`. Assign a new compute instance, even if it
+ breaks the grouped-together or spread-apart model set by
+ the `placement_group_type`. This makes the group
+ non-compliant (`is_compliant: false`). You need to wait
+ for Akamai to move the offending compute instance to make
+ it compliant again, once the necessary capacity is
+ available in the region. Offers flexibility to add future
+ compute instances if compliance isn't an immediate
+ concern.
+
+
+ <>
+
+
+ > 📘
+
+ >
+
+ > In rare cases, non-compliance can occur with a `strict`
+ placement group if Akamai needs to failover or migrate
+ your compute instances for maintenance. Fixing
+ non-compliance for a `strict` placement group is
+ prioritized over a `flexible` group.
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ placement_group_type:
+ description: >-
+ __Filterable__, __Read-only__ How compute instances are
+ distributed in your placement group. A
+ `placement_group_type` using anti-affinity
+ (`anti-affinity:local`) places compute instances in
+ separate hosts, but still in the same region. This best
+ supports the spread-apart model for high availability. A
+ `placement_group_type` using affinity places compute
+ instances physically close together, possibly on the same
+ host. This supports the grouped-together model for
+ low-latency.
+
+
+ > 📘
+
+ >
+
+ > Currently, only `anti_affinity:local` is available for
+ `placement_group_type`.
+ enum:
+ - anti_affinity:local
+ example: anti-affinity:local
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The
+ [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the placement group was deployed.
+ example: us-mia
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/placement-group-migrate.yaml
+ x-example:
+ x-ref: ../examples/get-placement-group-200.json
+ description: Returns a single placement group object.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
+ summary: Get a placement group
+ tags:
+ - Placement groups
+ x-akamai:
+ tabs:
+ - syntax: linode-cli placement group-view 528
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: group-view
+ x-linode-grant: read-only
+ put:
+ description: >-
+ Change the `label` for a specific placement group. This is the only
+ value you can update. However, you can
+ [add](https://techdocs.akamai.com/linode-api/reference/post-group-add-linode)
+ more Linodes or
+ [remove](https://techdocs.akamai.com/linode-api/reference/post-group-unassign)
+ existing ones.
+
+
+ > 📘
+
+ >
+
+ > To update a placement group, your [user
+ grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ need to include `read_write` permission to all of the Linodes in the
+ group. Talk to your local account administrator about grant management
+ for your user.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-placement-group
+ operationId: put-placement-group
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ label:
+ description: >-
+ A unique name for the placement group. A placement group
+ `label` has the following constraints:
+
+
+ - It needs to begin and end with an alphanumeric character.
+
+ - It can only consist of alphanumeric characters, hyphens
+ (`-`), underscores (`_`), or periods (`.`).
+ example: '{{label}}'
+ minLength: 1
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-placement-group.yaml
+ x-example:
+ x-ref: ../examples/put-placement-group.json
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ id:
+ description: >-
+ The placement group's ID. You need to provide it for all
+ operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: 1
+ is_compliant:
+ description: >-
+ Whether all of the compute instances in your placement
+ group are compliant. If `true`, all compute instances meet
+ either the grouped-together or spread-apart model, which
+ you determine through your selected
+ `placement_group_type`. If `false`, a compute instance is
+ out of this compliance. For example, assume you've set
+ `anti-affinity:local` as your `placement_group_type` and
+ your group already has three qualifying compute instances
+ on separate hosts, to support the spread-apart model. If a
+ fourth compute instance is assigned that's on the same
+ host as one of the existing three, the placement group is
+ non-compliant. Enforce compliance in your group by setting
+ a `placement_group_policy`.
+
+
+ > 📘
+
+ >
+
+ > Fixing compliance is not self-service. You need to wait
+ for our assistance to physically move compute instances to
+ make the group compliant again.
+ example: true
+ nullable: false
+ type: boolean
+ label:
+ description: >-
+ __Filterable__ The unique name set for the placement
+ group. A label has these constraints:
+
+
+ - It needs to begin and end with an alphanumeric
+ character.
+
+ - It can only consist of alphanumeric characters, hyphens
+ (`-`), underscores (`_`) or periods (`.`).
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ members:
+ description: >-
+ An array of compute instances included in the placement
+ group.
+ items:
+ additionalProperties: false
+ properties:
+ is_compliant:
+ description: >-
+ The compliance status of each individual compute
+ instance in the placement group.
+ example: true
+ type: boolean
+ linode_id:
+ description: >-
+ __Read-only__ The unique identifier for a compute
+ instance included in the placement group.
+ example: 123
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ placement_group_policy:
+ description: >-
+ How requests to add future compute instances to your
+ placement group are handled, and whether it remains
+ compliant:
+
+
+ - `strict`. Don't assign a new compute instance if it
+ breaks the grouped-together or spread-apart model set by
+ the `placement_group_type`. Use this to ensure the
+ placement group stays compliant (`is_compliant: true`).
+
+ - `flexible`. Assign a new compute instance, even if it
+ breaks the grouped-together or spread-apart model set by
+ the `placement_group_type`. This makes the group
+ non-compliant (`is_compliant: false`). You need to wait
+ for Akamai to move the offending compute instance to make
+ it compliant again, once the necessary capacity is
+ available in the region. Offers flexibility to add future
+ compute instances if compliance isn't an immediate
+ concern.
+
+
+ <>
+
+
+ > 📘
+
+ >
+
+ > In rare cases, non-compliance can occur with a `strict`
+ placement group if Akamai needs to failover or migrate
+ your compute instances for maintenance. Fixing
+ non-compliance for a `strict` placement group is
+ prioritized over a `flexible` group.
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ placement_group_type:
+ description: >-
+ __Filterable__, __Read-only__ How compute instances are
+ distributed in your placement group. A
+ `placement_group_type` using anti-affinity
+ (`anti-affinity:local`) places compute instances in
+ separate hosts, but still in the same region. This best
+ supports the spread-apart model for high availability. A
+ `placement_group_type` using affinity places compute
+ instances physically close together, possibly on the same
+ host. This supports the grouped-together model for
+ low-latency.
+
+
+ > 📘
+
+ >
+
+ > Currently, only `anti_affinity:local` is available for
+ `placement_group_type`.
+ enum:
+ - anti_affinity:local
+ example: anti-affinity:local
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The
+ [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the placement group was deployed.
+ example: us-mia
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/placement-group.yaml
+ x-example:
+ x-ref: ../examples/get-placement-group-200.json
+ description: The updated placement group.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Update a placement group
+ tags:
+ - Placement groups
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli placement group-update 528 \
+ --label PG_Miami_failover_update
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: group-update
+ x-linode-grant: read-write
+ delete:
+ description: >-
+ Deletes a placement group you have permission to `read_write`.
+
+
+ - Deleting a placement group can't be undone.
+
+
+ - All Linodes need to be
+ [removed](https://techdocs.akamai.com/linode-api/reference/post-group-unassign)
+ before you can delete a placement group.
+
+
+ - If your placement group is non-compliant, you can't delete it. You
+ need to wait for our help to bring it
+ [compliant](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/#non-compliance-precedence).
+
+
+ <>
+
+
+ > 📘
+
+ >
+
+ > To run this operation, your user needs the `add_linodes`
+ [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).
+ Talk to your local account administrator about grant management for your
+ user.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-placement-group
+ operationId: delete-placement-group
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-placement-group-200.json
+ description: Delete successful.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Delete a placement group
+ tags:
+ - Placement groups
+ x-akamai:
+ tabs:
+ - syntax: linode-cli placement group-delete 528
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - group-delete
+ - group-rm
+ x-linode-grant: read_write
+ parameters:
+ - description: >-
+ ID of the placement group to look up. Run the [List placement
+ groups](https://techdocs.akamai.com/linode-api/reference/get-placement-groups)
+ operation and store the `id` for the applicable placement group.
+ example: '{{groupId}}'
+ in: path
+ name: groupId
+ required: true
+ schema:
+ example: 32145
+ type: integer
+ x-akamai:
+ file-path: parameters/group-id-path-043ea725.yaml
+ x-akamai:
+ file-path: paths/group.yaml
+ path-info: /{apiVersion}/placement/groups/{groupId}
+ x-linode-cli-command: placement
+ /placement/groups/{groupId}/assign:
+ post:
+ description: >-
+ Add a Linode to your placement group. Check out our [example API
+ workflow](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups#use-the-api)
+ to create a placement group and add Linodes.
+
+
+ > 📘
+
+ >
+
+ > To run this operation, your user needs the `add_linodes`
+ [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ and `read-write`
+ [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ to the Linodes you want to add to the group. Talk to your local account
+ administrator about grant and permissions management.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-group-add-linode
+ operationId: post-group-add-linode
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: The compute instances included in a placement group.
+ properties:
+ linodes:
+ description: >-
+ The `linodeId` values for individual compute instances
+ included in the placement group.
+ example: 528
+ items:
+ type: integer
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/placement-group-compute-instances.yaml
+ x-example:
+ x-ref: ../examples/post-group-add-linode.json
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ id:
+ description: >-
+ The placement group's ID. You need to provide it for all
+ operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: 1
+ is_compliant:
+ description: >-
+ Whether all of the compute instances in your placement
+ group are compliant. If `true`, all compute instances meet
+ either the grouped-together or spread-apart model, which
+ you determine through your selected
+ `placement_group_type`. If `false`, a compute instance is
+ out of this compliance. For example, assume you've set
+ `anti-affinity:local` as your `placement_group_type` and
+ your group already has three qualifying compute instances
+ on separate hosts, to support the spread-apart model. If a
+ fourth compute instance is assigned that's on the same
+ host as one of the existing three, the placement group is
+ non-compliant. Enforce compliance in your group by setting
+ a `placement_group_policy`.
+
+
+ > 📘
+
+ >
+
+ > Fixing compliance is not self-service. You need to wait
+ for our assistance to physically move compute instances to
+ make the group compliant again.
+ example: true
+ nullable: false
+ type: boolean
+ label:
+ description: >-
+ __Filterable__ The unique name set for the placement
+ group. A label has these constraints:
+
+
+ - It needs to begin and end with an alphanumeric
+ character.
+
+ - It can only consist of alphanumeric characters, hyphens
+ (`-`), underscores (`_`) or periods (`.`).
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ members:
+ description: >-
+ An array of compute instances included in the placement
+ group.
+ items:
+ additionalProperties: false
+ properties:
+ is_compliant:
+ description: >-
+ The compliance status of each individual compute
+ instance in the placement group.
+ example: true
+ type: boolean
+ linode_id:
+ description: >-
+ __Read-only__ The unique identifier for a compute
+ instance included in the placement group.
+ example: 123
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ placement_group_policy:
+ description: >-
+ How requests to add future compute instances to your
+ placement group are handled, and whether it remains
+ compliant:
+
+
+ - `strict`. Don't assign a new compute instance if it
+ breaks the grouped-together or spread-apart model set by
+ the `placement_group_type`. Use this to ensure the
+ placement group stays compliant (`is_compliant: true`).
+
+ - `flexible`. Assign a new compute instance, even if it
+ breaks the grouped-together or spread-apart model set by
+ the `placement_group_type`. This makes the group
+ non-compliant (`is_compliant: false`). You need to wait
+ for Akamai to move the offending compute instance to make
+ it compliant again, once the necessary capacity is
+ available in the region. Offers flexibility to add future
+ compute instances if compliance isn't an immediate
+ concern.
+
+
+ <>
+
+
+ > 📘
+
+ >
+
+ > In rare cases, non-compliance can occur with a `strict`
+ placement group if Akamai needs to failover or migrate
+ your compute instances for maintenance. Fixing
+ non-compliance for a `strict` placement group is
+ prioritized over a `flexible` group.
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ placement_group_type:
+ description: >-
+ __Filterable__, __Read-only__ How compute instances are
+ distributed in your placement group. A
+ `placement_group_type` using anti-affinity
+ (`anti-affinity:local`) places compute instances in
+ separate hosts, but still in the same region. This best
+ supports the spread-apart model for high availability. A
+ `placement_group_type` using affinity places compute
+ instances physically close together, possibly on the same
+ host. This supports the grouped-together model for
+ low-latency.
+
+
+ > 📘
+
+ >
+
+ > Currently, only `anti_affinity:local` is available for
+ `placement_group_type`.
+ enum:
+ - anti_affinity:local
+ example: anti-affinity:local
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The
+ [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the placement group was deployed.
+ example: us-mia
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/placement-group.yaml
+ x-example:
+ x-ref: ../examples/post-group-add-linode-200.json
+ description: The Linode was added successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Assign a placement group
+ tags:
+ - Placement groups
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli placement assign-linode 528 \
+ --linodes 123 456 \
+ --non-compliant true
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: assign-linode
+ x-linode-grant: read-write
+ parameters:
+ - description: >-
+ ID of the placement group to look up. Run the [List placement
+ groups](https://techdocs.akamai.com/linode-api/reference/get-placement-groups)
+ operation and store the `id` for the applicable placement group.
+ example: '{{groupId}}'
+ in: path
+ name: groupId
+ required: true
+ schema:
+ example: 32145
+ type: integer
+ x-akamai:
+ file-path: parameters/group-id-path.yaml
+ x-akamai:
+ file-path: paths/group-assign.yaml
+ path-info: /{apiVersion}/placement/groups/{groupId}/assign
+ x-linode-cli-command: placement
+ /placement/groups/{groupId}/unassign:
+ post:
+ description: >-
+ Remove a Linode from your placement group.
+
+
+ > 📘
+
+ >
+
+ > To run this operation, your user needs the `add_linodes`
+ [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ and `read-write`
+ [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants)
+ to the Linodes you want to remove from the group. Talk to your local
+ account administrator about grant and permissions management.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-group-unassign
+ operationId: post-group-unassign
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: The compute instances included in a placement group.
+ properties:
+ linodes:
+ description: >-
+ The `linodeId` values for individual compute instances
+ included in the placement group.
+ example: 528
+ items:
+ type: integer
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/placement-group-compute-instances.yaml
+ x-example:
+ x-ref: ../examples/post-group-unassign.json
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ id:
+ description: >-
+ The placement group's ID. You need to provide it for all
+ operations that affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: 1
+ is_compliant:
+ description: >-
+ Whether all of the compute instances in your placement
+ group are compliant. If `true`, all compute instances meet
+ either the grouped-together or spread-apart model, which
+ you determine through your selected
+ `placement_group_type`. If `false`, a compute instance is
+ out of this compliance. For example, assume you've set
+ `anti-affinity:local` as your `placement_group_type` and
+ your group already has three qualifying compute instances
+ on separate hosts, to support the spread-apart model. If a
+ fourth compute instance is assigned that's on the same
+ host as one of the existing three, the placement group is
+ non-compliant. Enforce compliance in your group by setting
+ a `placement_group_policy`.
+
+
+ > 📘
+
+ >
+
+ > Fixing compliance is not self-service. You need to wait
+ for our assistance to physically move compute instances to
+ make the group compliant again.
+ example: true
+ nullable: false
+ type: boolean
+ label:
+ description: >-
+ __Filterable__ The unique name set for the placement
+ group. A label has these constraints:
+
+
+ - It needs to begin and end with an alphanumeric
+ character.
+
+ - It can only consist of alphanumeric characters, hyphens
+ (`-`), underscores (`_`) or periods (`.`).
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ members:
+ description: >-
+ An array of compute instances included in the placement
+ group.
+ items:
+ additionalProperties: false
+ properties:
+ is_compliant:
+ description: >-
+ The compliance status of each individual compute
+ instance in the placement group.
+ example: true
+ type: boolean
+ linode_id:
+ description: >-
+ __Read-only__ The unique identifier for a compute
+ instance included in the placement group.
+ example: 123
+ readOnly: true
+ type: integer
+ type: object
+ type: array
+ placement_group_policy:
+ description: >-
+ How requests to add future compute instances to your
+ placement group are handled, and whether it remains
+ compliant:
+
+
+ - `strict`. Don't assign a new compute instance if it
+ breaks the grouped-together or spread-apart model set by
+ the `placement_group_type`. Use this to ensure the
+ placement group stays compliant (`is_compliant: true`).
+
+ - `flexible`. Assign a new compute instance, even if it
+ breaks the grouped-together or spread-apart model set by
+ the `placement_group_type`. This makes the group
+ non-compliant (`is_compliant: false`). You need to wait
+ for Akamai to move the offending compute instance to make
+ it compliant again, once the necessary capacity is
+ available in the region. Offers flexibility to add future
+ compute instances if compliance isn't an immediate
+ concern.
+
+
+ <>
+
+
+ > 📘
+
+ >
+
+ > In rare cases, non-compliance can occur with a `strict`
+ placement group if Akamai needs to failover or migrate
+ your compute instances for maintenance. Fixing
+ non-compliance for a `strict` placement group is
+ prioritized over a `flexible` group.
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ placement_group_type:
+ description: >-
+ __Filterable__, __Read-only__ How compute instances are
+ distributed in your placement group. A
+ `placement_group_type` using anti-affinity
+ (`anti-affinity:local`) places compute instances in
+ separate hosts, but still in the same region. This best
+ supports the spread-apart model for high availability. A
+ `placement_group_type` using affinity places compute
+ instances physically close together, possibly on the same
+ host. This supports the grouped-together model for
+ low-latency.
+
+
+ > 📘
+
+ >
+
+ > Currently, only `anti_affinity:local` is available for
+ `placement_group_type`.
+ enum:
+ - anti_affinity:local
+ example: anti-affinity:local
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The
+ [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the placement group was deployed.
+ example: us-mia
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/placement-group.yaml
+ x-example:
+ x-ref: ../examples/post-group-unassign-200.json
+ description: The Linode was removed successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
+ summary: Unassign a placement group
+ tags:
+ - Placement groups
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli placement unassign-linode 528 \
+ --linode 123 456
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: unassign-linode
+ x-linode-grant: read-write
+ parameters:
+ - description: >-
+ ID of the placement group to look up. Run the [List placement
+ groups](https://techdocs.akamai.com/linode-api/reference/get-placement-groups)
+ operation and store the `id` for the applicable placement group.
+ example: '{{groupId}}'
+ in: path
+ name: groupId
+ required: true
+ schema:
+ example: 32145
+ type: integer
+ x-akamai:
+ file-path: parameters/group-id-path-0d373f63.yaml
+ x-akamai:
+ file-path: paths/group-unassign.yaml
+ path-info: /{apiVersion}/placement/groups/{groupId}/unassign
+ x-linode-cli-command: placement
+components:
+ x-stackQL-resources:
+ placement_groups:
+ id: linode.placement.placement_groups
+ name: placement_groups
+ title: Placement Groups
+ methods:
+ post_placement_group:
+ operation:
+ $ref: '#/paths/~1placement~1groups/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_placement_groups:
+ operation:
+ $ref: '#/paths/~1placement~1groups/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_placement_group:
+ operation:
+ $ref: '#/paths/~1placement~1groups~1{groupId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_placement_group:
+ operation:
+ $ref: '#/paths/~1placement~1groups~1{groupId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_placement_group:
+ operation:
+ $ref: '#/paths/~1placement~1groups~1{groupId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_group_add_linode:
+ operation:
+ $ref: '#/paths/~1placement~1groups~1{groupId}~1assign/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_group_unassign:
+ operation:
+ $ref: '#/paths/~1placement~1groups~1{groupId}~1unassign/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/placement_groups/methods/get_placement_group
+ - $ref: >-
+ #/components/x-stackQL-resources/placement_groups/methods/get_placement_groups
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/placement_groups/methods/post_placement_group
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/placement_groups/methods/delete_placement_group
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/placement_groups/methods/put_placement_group
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/profile.yaml b/providers/src/linode/v00.00.00000/services/profile.yaml
index d96aa0ec..2b2c743b 100644
--- a/providers/src/linode/v00.00.00000/services/profile.yaml
+++ b/providers/src/linode/v00.00.00000/services/profile.yaml
@@ -1,2585 +1,5957 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
info:
- version: 4.147.0
- title: Linode API - profile
- description: profile
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- Profile:
- type: object
- description: |
- A Profile represents your User in our system. This is where you can change information about your User. This information is available to any OAuth Client regardless of requested scopes, and can be used to populate User information in third-party applications.
- properties:
- uid:
- type: integer
- description: |
- Your unique ID in our system. This value will never change, and can safely be used to identify your User.
- example: 1234
- readOnly: true
- username:
- type: string
- description: |
- Your username, used for logging in to our system.
- example: exampleUser
- readOnly: true
- x-linode-cli-display: 1
- email:
- type: string
- format: email
- description: |
- Your email address. This address will be used for communication with Linode as necessary.
- example: example-user@gmail.com
- x-linode-cli-display: 2
- 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: |
- The timezone you prefer to see times in. This is not used by the API directly. It is provided for the benefit of clients such as the Linode Cloud Manager and other clients built on the API. All times returned by the API are in UTC.
- example: US/Eastern
- email_notifications:
- type: boolean
- description: |
- If true, you will receive email notifications about account activity. If false, you may still receive business-critical communications through email.
- example: true
- referrals:
- type: object
- description: |
- Information about your status in our referral program.
-
- This information becomes accessible after this Profile's Account has established at least $25.00 USD of total payments.
- readOnly: true
- properties:
- code:
- type: string
- description: |
- Your referral code. If others use this when signing up for Linode, you will receive account credit.
- example: 871be32f49c1411b14f29f618aaf0c14637fb8d3
- readOnly: true
- url:
- type: string
- format: url
- description: |
- Your referral url, used to direct others to sign up for Linode with your referral code.
- example: 'https://www.linode.com/?r=871be32f49c1411b14f29f618aaf0c14637fb8d3'
- readOnly: true
- total:
- type: integer
- description: |
- The number of users who have signed up with your referral code.
- example: 0
- readOnly: true
- completed:
- type: integer
- description: |
- The number of completed signups with your referral code.
- example: 0
- readOnly: true
- pending:
- type: integer
- description: |
- The number of pending signups with your referral code. You will not receive credit for these signups until they are completed.
- example: 0
- readOnly: true
- credit:
- type: integer
- description: |
- The amount of account credit in US Dollars issued to you through the referral program.
- example: 0
- readOnly: true
- ip_whitelist_enabled:
- deprecated: true
- type: boolean
- description: |
- If true, logins for your User will only be allowed from whitelisted IPs. This setting is currently deprecated, and cannot be enabled.
-
- If you disable this setting, you will not be able to re-enable it.
- example: false
- lish_auth_method:
- type: string
- enum:
- - password_keys
- - keys_only
- - disabled
- description: |
- The authentication methods that are allowed when connecting to [the Linode Shell (Lish)](/docs/guides/lish/).
- * `keys_only` is the most secure if you intend to use Lish.
- * `disabled` is recommended if you do not intend to use Lish at all.
- * If this account's Cloud Manager authentication type is set to a Third-Party Authentication method, `password_keys` cannot be used as your Lish authentication method. To view this account's Cloud Manager `authentication_type` field, send a request to the [View Profile](/docs/api/profile/#profile-view) endpoint.
- example: keys_only
- authorized_keys:
- type: array
- nullable: true
- items:
- type: string
- format: ssh-key
- description: |
- The list of SSH Keys authorized to use Lish for your User. This value is ignored if `lish_auth_method` is "disabled."
- example: null
- two_factor_auth:
- type: boolean
- description: |
- If true, logins from untrusted computers will require Two Factor Authentication. See [/profile/tfa-enable](/docs/api/profile/#two-factor-secret-create) to enable Two Factor Authentication.
- example: true
- x-linode-cli-display: 4
- restricted:
- type: boolean
- description: |
- If true, your User has restrictions on what can be accessed on your Account. To get details on what entities/actions you can access/perform, see [/profile/grants](/docs/api/profile/#grants-list).
- example: false
- x-linode-cli-display: 3
- authentication_type:
- type: string
- enum:
- - password
- - github
- description: |
- This account's Cloud Manager authentication type. Authentication types are chosen through
- Cloud Manager and authorized when logging into your account. These authentication types are either
- the user's password (in conjunction with their username), or the name of their
- indentity provider such as GitHub. For example, if a user:
-
- - Has never used Third-Party Authentication, their authentication type will be `password`.
- - Is using Third-Party Authentication, their authentication type will be the name of their Identity Provider (eg. `github`).
- - Has used Third-Party Authentication and has since revoked it, their authentication type will be `password`.
-
-
- **Note:** This functionality may not yet be available in Cloud Manager.
- See the [Cloud Manager Changelog](/changelog/cloud-manager/) for the latest updates.
- example: password
- readOnly: true
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- AuthorizedApp:
- type: object
- description: |
- An application you have authorized access to your Account through OAuth.
- properties:
- id:
- type: integer
- description: |
- This authorization's ID, used for revoking access.
- example: 123
- readOnly: true
- x-linode-cli-display: 1
- label:
- type: string
- description: |
- The name of the application you've authorized.
- example: example-app
- readOnly: true
- x-linode-cli-display: 2
- thumbnail_url:
- type: string
- format: url
- description: |
- The URL at which this app's thumbnail may be accessed.
- example: null
- readOnly: true
- scopes:
- type: string
- format: oauth-scopes
- description: |
- The OAuth scopes this app was authorized with. This defines what parts of your Account the app is allowed to access.
- example: 'linodes:read_only'
- readOnly: true
- x-linode-cli-display: 3
- created:
- type: string
- format: date-time
- description: When this app was authorized.
- example: '2018-01-01T00:01:01'
- readOnly: true
- x-linode-filterable: true
- x-linode-cli-display: 5
- expiry:
- type: string
- format: date-time
- description: |
- When 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
- format: url
- description: |
- The website where you can get more information about this app.
- example: example.org
- readOnly: true
- x-linode-cli-display: 4
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- GrantsResponse:
- type: object
- description: |
- A structure representing all grants a restricted User has on the Account. Not available for unrestricted users, as they have access to everything without grants. If retrieved from the `/profile/grants` endpoint, entities to which a User has no access will be omitted.
- properties:
- global:
- type: object
- description: |
- A structure containing the Account-level grants a User has.
- properties:
- add_linodes:
- type: boolean
- description: 'If true, this User may create Linodes.'
- example: true
- add_longview:
- type: boolean
- description: 'If true, this User may create Longview clients and view the current plan.'
- example: true
- longview_subscription:
- type: boolean
- description: 'If true, this User may manage the Account''s Longview subscription.'
- example: true
- account_access:
- type: string
- nullable: true
- enum:
- - read_only
- - read_write
- description: |
- The level of access this User has to Account-level actions, like billing information. A restricted User will never be able to manage users.
- example: read_only
- cancel_account:
- type: boolean
- description: 'If true, this User may cancel the entire Account.'
- example: false
- add_domains:
- type: boolean
- description: 'If true, this User may add Domains.'
- example: true
- add_stackscripts:
- type: boolean
- description: 'If true, this User may add StackScripts.'
- example: true
- add_nodebalancers:
- type: boolean
- description: 'If true, this User may add NodeBalancers.'
- example: true
- add_images:
- type: boolean
- description: 'If true, this User may add Images.'
- example: true
- add_volumes:
- type: boolean
- description: 'If true, this User may add Volumes.'
- example: true
- add_firewalls:
- 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:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each Linode that is owned by this Account.
- database:
- type: array
- items:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each Database that is owned by this Account.
- domain:
- type: array
- items:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each Domain that is owned by this Account.
- nodebalancer:
- type: array
- items:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each NodeBalancer that is owned by this Account.
- image:
- type: array
- items:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each Image that is owned by this Account.
- longview:
- type: array
- items:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each Longview Client that is owned by this Account.
- stackscript:
- type: array
- items:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each StackScript that is owned by this Account.
- volume:
- type: array
- items:
- $ref: '#/components/schemas/Grant'
- description: |
- The grants this User has for each Block Storage Volume that is owned by this Account.
- Grant:
- type: object
- description: |
- Represents the level of access a restricted User has to a specific resource on the Account.
- properties:
- id:
- type: integer
- description: |
- The ID of the entity this grant applies to.
- example: 123
- permissions:
- type: string
- nullable: true
- enum:
- - read_only
- - read_write
- description: |
- The level of access this User has to this entity. If null, this User has no access.
- example: read_only
- label:
- type: string
- description: |
- The current label of the entity this grant applies to, for display purposes.
- example: example-entity
- readOnly: true
- PersonalAccessToken:
- type: object
- description: |
- A Personal Access Token is a token generated manually to access the API without going through an OAuth login. Personal Access Tokens can have scopes just like OAuth tokens do, and are commonly used to give access to command-line tools like the Linode CLI, or when writing your own integrations.
- properties:
- id:
- type: integer
- description: |
- This token's unique ID, which can be used to revoke it.
- example: 123
- readOnly: true
- x-linode-cli-display: 1
- scopes:
- type: string
- format: oauth-scopes
- description: |
- The scopes this token was created with. These define what parts of the Account the token can be used to access. Many command-line tools, such as the Linode CLI , require tokens with access to `*`. Tokens with more restrictive scopes are generally more secure.
- example: '*'
- readOnly: true
- x-linode-cli-display: 3
- created:
- type: string
- format: date-time
- description: |
- The date and time this token was created.
- x-linode-filterable: true
- example: 2018-01-01T00:01:01.000Z
- readOnly: true
- x-linode-cli-display: 4
- label:
- type: string
- minLength: 1
- maxLength: 100
- description: |
- This token's label. This is for display purposes only, but can be used to more easily track what you're using each token for.
- x-linode-filterable: true
- example: linode-cli
- x-linode-cli-display: 2
- token:
- type: string
- description: |
- The token used to access the API. When the token is created, the full token is returned here. Otherwise, only the first 16 characters are returned.
- example: abcdefghijklmnop
- readOnly: true
- x-linode-cli-display: 5
- expiry:
- type: string
- format: date-time
- description: |
- When this token will expire. Personal Access Tokens cannot be renewed, so after this time the token will be completely unusable and a new token will need to be generated. Tokens may be created with "null" as their expiry and will never expire unless revoked.
- x-linode-cli-display: 6
- example: '2018-01-01T13:46:32'
- readOnly: true
- Login:
- type: object
- description: |
- An object representing a previous successful login for a User.
- properties:
- id:
- type: integer
- description: |
- The unique ID of this login object.
- example: 1234
- readOnly: true
- x-linode-cli-display: 1
- datetime:
- type: string
- format: date-time
- description: |
- When the login was initiated.
- example: '2018-01-01T00:01:01'
- readOnly: true
- x-linode-cli-display: 2
- ip:
- type: string
- format: ip
- description: |
- The remote IP address that requested the login.
- example: 192.0.2.0
- readOnly: true
- x-linode-cli-display: 3
- username:
- type: string
- description: |
- The username of the User that attempted the login.
- example: example_user
- readOnly: true
- x-linode-cli-display: 4
- status:
- type: string
- enum:
- - successful
- - failed
- description: |
- Whether the login attempt succeeded or failed.
- example: successful
- readOnly: true
- x-linode-cli-display: 5
- restricted:
- type: boolean
- description: |
- True if the User that attempted the login was a restricted User, false otherwise.
- example: true
- readOnly: true
- x-linode-cli-display: 6
- TrustedDevice:
- type: object
- description: |
- A trusted device object represents an active Remember Me session with login.linode.com .
- properties:
- id:
- type: integer
- description: The unique ID for this TrustedDevice
- example: 123
- readOnly: true
- created:
- type: string
- format: date-time
- description: |
- When this Remember Me session was started. This corresponds to the time of login with the "Remember Me" box checked.
- example: '2018-01-01T01:01:01'
- readOnly: true
- expiry:
- type: string
- format: date-time
- description: |
- When this TrustedDevice session expires. Sessions typically last 30 days.
- example: '2018-01-31T01:01:01'
- readOnly: true
- user_agent:
- type: string
- description: |
- The User Agent of the browser that created this TrustedDevice session.
- example: |
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36 Vivaldi/2.1.1337.36
- readOnly: true
- last_authenticated:
- type: string
- format: date-time
- description: |
- The last time this TrustedDevice was successfully used to authenticate to login.linode.com .
- example: '2018-01-05T12:57:12'
- readOnly: true
- last_remote_addr:
- type: string
- description: |
- The last IP Address to successfully authenticate with this TrustedDevice.
- example: 203.0.113.1
- readOnly: true
- 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'
- 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
- 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'
- SSHKey:
- type: object
- description: |
- A credential object for authenticating a User's secure shell connection to a Linode.
- properties:
- id:
- type: integer
- description: |
- The unique identifier of an SSH Key object.
- example: 42
- readOnly: true
- label:
- type: string
- description: |
- A label for the SSH Key.
- example: My SSH Key
- minLength: 0
- maxLength: 64
- ssh_key:
- type: string
- format: ssh-key
- description: |
- The public SSH Key, which is used to authenticate to the root user of the Linodes you deploy.
-
- Accepted formats:
- * ssh-dss
- * ssh-rsa
- * ecdsa-sha2-nistp
- * ssh-ed25519
- * sk-ecdsa-sha2-nistp256 (Akamai-specific)
- example: ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer
- created:
- type: string
- format: date-time
- description: |
- The date this key was added.
- example: '2018-01-01T00:01:01'
- readOnly: true
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
+ title: profile API
+ description: linode profile API
+ version: 4.208.1
+paths:
+ /profile:
+ get:
+ description: >-
+ Returns information about the current user. Use this to see who is
+ acting in applications where more than one token is managed, such as a
+ third-party OAuth application.
+
+
+ > 📘
+
+ >
+
+ > A third-party OAuth application accessing a profile with this
+ operation has full access to all aspects of that profile.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-profile
+ operationId: get-profile
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A profile represents your user in our system. This is where
+ you can change information about your user. This information
+ is available to any OAuth client regardless of requested
+ scopes, and you can use it to populate user information in
+ third-party applications.
+ properties:
+ authentication_type:
+ description: >-
+ __Read-only__ This account's Cloud Manager authentication
+ type. You choose an authentication type in Cloud Manager
+ and Akamai authorizes it when you log into your account.
+ Authentication types include your user's password (in
+ conjunction with your username), or the name of your
+ identity provider, such as GitHub. Here are some examples:
+
+
+ - If a user has never used third-party authentication, the
+ authentication type will be `password`.
+
+
+ - If a user is using third-party authentication, the name
+ of their identity provider is used for the authentication
+ type, for example, `github`.
+
+
+ - If a user has used third-party authentication and has
+ since revoked it, the authentication type is `password`.
+ enum:
+ - password
+ - github
+ example: password
+ readOnly: true
+ type: string
+ authorized_keys:
+ description: >-
+ Your user can use these SSH Keys to access Lish. This
+ value is ignored if `lish_auth_method` is `disabled`.
+ example: null
+ items:
+ format: ssh-key
+ type: string
+ nullable: true
+ type: array
+ email:
+ description: >-
+ Your email address. We use this address for Akamai Cloud
+ Computing-related communication.
+ example: example-user@gmail.com
+ format: email
+ type: string
+ x-linode-cli-display: 2
+ email_notifications:
+ description: >-
+ When set to `true`, you will receive email notifications
+ about account activity. When `false`, you may still
+ receive business-critical communications through email.
+ example: true
+ type: boolean
+ ip_whitelist_enabled:
+ deprecated: true
+ description: >-
+ When set to `true`, your user logins are only allowed from
+ whitelisted IPs. This setting is deprecated, and can't be
+ enabled. If you disable this setting, you won't be able to
+ re-enable it.
+ example: false
+ type: boolean
+ lish_auth_method:
+ description: >-
+ The authentication methods that you can use when
+ connecting to the [Linode Shell
+ (Lish)](https://www.linode.com/docs/guides/lish/).
+
+
+ - `keys_only` is the most secure if you intend to use
+ Lish.
+
+
+ - `disabled` is recommended if you don't want to use Lish.
+
+
+ - If this account's Cloud Manager authentication type is
+ set to a third-party authentication method, you can't use
+ `password_keys` as your Lish authentication method. Run
+ the [Get a
+ profile](https://techdocs.akamai.com/linode-api/reference/get-profile)
+ operation to view your account's Cloud Manager
+ `authentication_type` field.
+ enum:
+ - password_keys
+ - keys_only
+ - disabled
+ example: keys_only
+ type: string
+ referrals:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about your status in our
+ referral program. The API makes this information available
+ after this profile's account has established at least
+ $25.00 USD of total payments.
+ properties:
+ code:
+ description: >-
+ __Read-only__ Your referral code. If others use this
+ when signing up for Linode, you receive an account
+ credit.
+ example: 871be32f49c1411b14f29f618aaf0c14637fb8d3
+ readOnly: true
+ type: string
+ completed:
+ description: >-
+ __Read-only__ The number of completed sign-ups that
+ used your referral code.
+ example: 0
+ readOnly: true
+ type: integer
+ credit:
+ description: >-
+ __Read-only__ Your referral program account credit in
+ US dollars.
+ example: 0
+ readOnly: true
+ type: integer
+ pending:
+ description: >-
+ __Read-only__ The number of pending sign-ups that used
+ your referral code. Akamai gives you credit for these
+ sign-ups once they've completed.
+ example: 0
+ readOnly: true
+ type: integer
+ total:
+ description: >-
+ __Read-only__ The number of users who have signed up
+ with your referral code.
+ example: 0
+ readOnly: true
+ type: integer
+ url:
+ description: >-
+ __Read-only__ The referral URL that Akamai uses to
+ direct others to sign up for Akamai Cloud Computing
+ with your referral code.
+ example: >-
+ https://www.linode.com/?r=871be32f49c1411b14f29f618aaf0c14637fb8d3
+ format: url
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ restricted:
+ description: >-
+ When set to `true`, there are restrictions on what your
+ user can access on your account. Run [List
+ grants](https://techdocs.akamai.com/linode-api/reference/get-profile-grants)
+ to get details on what entities and actions you can access
+ and perform.
+ example: false
+ type: boolean
+ x-linode-cli-display: 3
+ timezone:
+ description: >-
+ The time zone you want to display for your Linode assets.
+ This API doesn't directly use this time zone. It's
+ provided for the benefit of clients such as the Akamai
+ Cloud Manager and other clients built on the API. All
+ times returned by the API are in UTC.
+ example: US/Eastern
+ type: string
+ two_factor_auth:
+ description: >-
+ When set to `true`, a login from an untrusted computer
+ requires two-factor authentication. You also need to run
+ [Create a two factor
+ secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable)
+ to enable two-factor authentication.
+ example: true
+ type: boolean
+ x-linode-cli-display: 4
+ uid:
+ description: >-
+ __Read-only__ Your unique ID in our system. This value
+ will never change, and can safely be used to identify your
+ user.
+ example: 1234
+ readOnly: true
+ type: integer
+ username:
+ description: >-
+ __Read-only__ Your username, used for logging in to our
+ system.
+ example: exampleUser
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ verified_phone_number:
+ description: >-
+ __Read-only__ The phone number verified for this profile
+ with the [Verify a phone
+ number](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify)
+ operation. Displayed as `null` if the profile doesn't have
+ a verified phone number.
+ example: '+5555555555'
+ format: phone
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/profile.yaml
+ x-example:
+ x-ref: ../examples/get-profile-200.json
+ description: Profile response.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth: []
+ summary: Get a profile
+ tags:
+ - Profile
+ x-akamai:
+ tabs:
+ - syntax: linode-cli profile view
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: view
+ put:
+ description: >-
+ Update information in your profile. You need the `account:read_write`
+ [OAuth
+ scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference)
+ to use this operation.
+
+
+ **Parent and child accounts**
+
+
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, you can't edit the `email` for a child account parent user
+ (proxy user). This value is fixed and set when you provision this
+ environment.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-profile
+ operationId: put-profile
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A profile represents your user in our system. This is where you
+ can change information about your user. This information is
+ available to any OAuth client regardless of requested scopes,
+ and you can use it to populate user information in third-party
+ applications.
+ properties:
+ authentication_type:
+ description: >-
+ __Read-only__ This account's Cloud Manager authentication
+ type. You choose an authentication type in Cloud Manager and
+ Akamai authorizes it when you log into your account.
+ Authentication types include your user's password (in
+ conjunction with your username), or the name of your
+ identity provider, such as GitHub. Here are some examples:
+
+
+ - If a user has never used third-party authentication, the
+ authentication type will be `password`.
+
+
+ - If a user is using third-party authentication, the name of
+ their identity provider is used for the authentication type,
+ for example, `github`.
+
+
+ - If a user has used third-party authentication and has
+ since revoked it, the authentication type is `password`.
+ enum:
+ - password
+ - github
+ example: '{{authentication_type}}'
+ readOnly: true
+ type: string
+ authorized_keys:
+ description: >-
+ Your user can use these SSH Keys to access Lish. This value
+ is ignored if `lish_auth_method` is `disabled`.
+ example: null
+ items:
+ format: ssh-key
+ type: string
+ nullable: true
+ type: array
+ email:
+ description: >-
+ Your email address. We use this address for Akamai Cloud
+ Computing-related communication.
+ example: '{{email}}'
+ format: email
+ type: string
+ x-linode-cli-display: 2
+ email_notifications:
+ description: >-
+ When set to `true`, you will receive email notifications
+ about account activity. When `false`, you may still receive
+ business-critical communications through email.
+ example: '{{email_notifications}}'
+ type: boolean
+ ip_whitelist_enabled:
+ deprecated: true
+ description: >-
+ When set to `true`, your user logins are only allowed from
+ whitelisted IPs. This setting is deprecated, and can't be
+ enabled. If you disable this setting, you won't be able to
+ re-enable it.
+ example: '{{ip_whitelist_enabled}}'
+ type: boolean
+ lish_auth_method:
+ description: >-
+ The authentication methods that you can use when connecting
+ to the [Linode Shell
+ (Lish)](https://www.linode.com/docs/guides/lish/).
+
+
+ - `keys_only` is the most secure if you intend to use Lish.
+
+
+ - `disabled` is recommended if you don't want to use Lish.
+
+
+ - If this account's Cloud Manager authentication type is set
+ to a third-party authentication method, you can't use
+ `password_keys` as your Lish authentication method. Run the
+ [Get a
+ profile](https://techdocs.akamai.com/linode-api/reference/get-profile)
+ operation to view your account's Cloud Manager
+ `authentication_type` field.
+ enum:
+ - password_keys
+ - keys_only
+ - disabled
+ example: '{{lish_auth_method}}'
+ type: string
+ referrals:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about your status in our referral
+ program. The API makes this information available after this
+ profile's account has established at least $25.00 USD of
+ total payments.
+ properties:
+ code:
+ description: >-
+ __Read-only__ Your referral code. If others use this
+ when signing up for Linode, you receive an account
+ credit.
+ example: 871be32f49c1411b14f29f618aaf0c14637fb8d3
+ readOnly: true
+ type: string
+ completed:
+ description: >-
+ __Read-only__ The number of completed sign-ups that used
+ your referral code.
+ example: 0
+ readOnly: true
+ type: integer
+ credit:
+ description: >-
+ __Read-only__ Your referral program account credit in US
+ dollars.
+ example: 0
+ readOnly: true
+ type: integer
+ pending:
+ description: >-
+ __Read-only__ The number of pending sign-ups that used
+ your referral code. Akamai gives you credit for these
+ sign-ups once they've completed.
+ example: 0
+ readOnly: true
+ type: integer
+ total:
+ description: >-
+ __Read-only__ The number of users who have signed up
+ with your referral code.
+ example: 0
+ readOnly: true
+ type: integer
+ url:
+ description: >-
+ __Read-only__ The referral URL that Akamai uses to
+ direct others to sign up for Akamai Cloud Computing with
+ your referral code.
+ example: >-
+ https://www.linode.com/?r=871be32f49c1411b14f29f618aaf0c14637fb8d3
+ format: url
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ restricted:
+ description: >-
+ When set to `true`, there are restrictions on what your user
+ can access on your account. Run [List
+ grants](https://techdocs.akamai.com/linode-api/reference/get-profile-grants)
+ to get details on what entities and actions you can access
+ and perform.
+ example: '{{restricted}}'
+ type: boolean
+ x-linode-cli-display: 3
+ timezone:
+ description: >-
+ The time zone you want to display for your Linode assets.
+ This API doesn't directly use this time zone. It's provided
+ for the benefit of clients such as the Akamai Cloud Manager
+ and other clients built on the API. All times returned by
+ the API are in UTC.
+ example: '{{timezone}}'
+ type: string
+ two_factor_auth:
+ description: >-
+ When set to `true`, a login from an untrusted computer
+ requires two-factor authentication. You also need to run
+ [Create a two factor
+ secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable)
+ to enable two-factor authentication.
+ example: '{{two_factor_auth}}'
+ type: boolean
+ x-linode-cli-display: 4
+ uid:
+ description: >-
+ __Read-only__ Your unique ID in our system. This value will
+ never change, and can safely be used to identify your user.
+ example: '{{uid}}'
+ readOnly: true
+ type: integer
+ username:
+ description: >-
+ __Read-only__ Your username, used for logging in to our
+ system.
+ example: '{{username}}'
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ verified_phone_number:
+ description: >-
+ __Read-only__ The phone number verified for this profile
+ with the [Verify a phone
+ number](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify)
+ operation. Displayed as `null` if the profile doesn't have a
+ verified phone number.
+ example: '{{verified_phone_number}}'
+ format: phone
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/profile.yaml
+ x-example:
+ x-ref: ../examples/put-profile.json
+ description: The fields to update.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A profile represents your user in our system. This is where
+ you can change information about your user. This information
+ is available to any OAuth client regardless of requested
+ scopes, and you can use it to populate user information in
+ third-party applications.
+ properties:
+ authentication_type:
+ description: >-
+ __Read-only__ This account's Cloud Manager authentication
+ type. You choose an authentication type in Cloud Manager
+ and Akamai authorizes it when you log into your account.
+ Authentication types include your user's password (in
+ conjunction with your username), or the name of your
+ identity provider, such as GitHub. Here are some examples:
+
+
+ - If a user has never used third-party authentication, the
+ authentication type will be `password`.
+
+
+ - If a user is using third-party authentication, the name
+ of their identity provider is used for the authentication
+ type, for example, `github`.
+
+
+ - If a user has used third-party authentication and has
+ since revoked it, the authentication type is `password`.
+ enum:
+ - password
+ - github
+ example: password
+ readOnly: true
+ type: string
+ authorized_keys:
+ description: >-
+ Your user can use these SSH Keys to access Lish. This
+ value is ignored if `lish_auth_method` is `disabled`.
+ example: null
+ items:
+ format: ssh-key
+ type: string
+ nullable: true
+ type: array
+ email:
+ description: >-
+ Your email address. We use this address for Akamai Cloud
+ Computing-related communication.
+ example: example-user@gmail.com
+ format: email
+ type: string
+ x-linode-cli-display: 2
+ email_notifications:
+ description: >-
+ When set to `true`, you will receive email notifications
+ about account activity. When `false`, you may still
+ receive business-critical communications through email.
+ example: true
+ type: boolean
+ ip_whitelist_enabled:
+ deprecated: true
+ description: >-
+ When set to `true`, your user logins are only allowed from
+ whitelisted IPs. This setting is deprecated, and can't be
+ enabled. If you disable this setting, you won't be able to
+ re-enable it.
+ example: false
+ type: boolean
+ lish_auth_method:
+ description: >-
+ The authentication methods that you can use when
+ connecting to the [Linode Shell
+ (Lish)](https://www.linode.com/docs/guides/lish/).
+
+
+ - `keys_only` is the most secure if you intend to use
+ Lish.
+
+
+ - `disabled` is recommended if you don't want to use Lish.
+
+
+ - If this account's Cloud Manager authentication type is
+ set to a third-party authentication method, you can't use
+ `password_keys` as your Lish authentication method. Run
+ the [Get a
+ profile](https://techdocs.akamai.com/linode-api/reference/get-profile)
+ operation to view your account's Cloud Manager
+ `authentication_type` field.
+ enum:
+ - password_keys
+ - keys_only
+ - disabled
+ example: keys_only
+ type: string
+ referrals:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about your status in our
+ referral program. The API makes this information available
+ after this profile's account has established at least
+ $25.00 USD of total payments.
+ properties:
+ code:
+ description: >-
+ __Read-only__ Your referral code. If others use this
+ when signing up for Linode, you receive an account
+ credit.
+ example: 871be32f49c1411b14f29f618aaf0c14637fb8d3
+ readOnly: true
+ type: string
+ completed:
+ description: >-
+ __Read-only__ The number of completed sign-ups that
+ used your referral code.
+ example: 0
+ readOnly: true
+ type: integer
+ credit:
+ description: >-
+ __Read-only__ Your referral program account credit in
+ US dollars.
+ example: 0
+ readOnly: true
+ type: integer
+ pending:
+ description: >-
+ __Read-only__ The number of pending sign-ups that used
+ your referral code. Akamai gives you credit for these
+ sign-ups once they've completed.
+ example: 0
+ readOnly: true
+ type: integer
+ total:
+ description: >-
+ __Read-only__ The number of users who have signed up
+ with your referral code.
+ example: 0
+ readOnly: true
+ type: integer
+ url:
+ description: >-
+ __Read-only__ The referral URL that Akamai uses to
+ direct others to sign up for Akamai Cloud Computing
+ with your referral code.
+ example: >-
+ https://www.linode.com/?r=871be32f49c1411b14f29f618aaf0c14637fb8d3
+ format: url
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ restricted:
+ description: >-
+ When set to `true`, there are restrictions on what your
+ user can access on your account. Run [List
+ grants](https://techdocs.akamai.com/linode-api/reference/get-profile-grants)
+ to get details on what entities and actions you can access
+ and perform.
+ example: false
+ type: boolean
+ x-linode-cli-display: 3
+ timezone:
+ description: >-
+ The time zone you want to display for your Linode assets.
+ This API doesn't directly use this time zone. It's
+ provided for the benefit of clients such as the Akamai
+ Cloud Manager and other clients built on the API. All
+ times returned by the API are in UTC.
+ example: US/Eastern
+ type: string
+ two_factor_auth:
+ description: >-
+ When set to `true`, a login from an untrusted computer
+ requires two-factor authentication. You also need to run
+ [Create a two factor
+ secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable)
+ to enable two-factor authentication.
+ example: true
+ type: boolean
+ x-linode-cli-display: 4
+ uid:
+ description: >-
+ __Read-only__ Your unique ID in our system. This value
+ will never change, and can safely be used to identify your
+ user.
+ example: 1234
+ readOnly: true
+ type: integer
+ username:
+ description: >-
+ __Read-only__ Your username, used for logging in to our
+ system.
+ example: exampleUser
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ verified_phone_number:
+ description: >-
+ __Read-only__ The phone number verified for this profile
+ with the [Verify a phone
+ number](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify)
+ operation. Displayed as `null` if the profile doesn't have
+ a verified phone number.
+ example: '+5555555555'
+ format: phone
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/profile.yaml
+ x-example:
+ x-ref: ../examples/get-profile-200.json
+ description: Profile updated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Update a profile
+ tags:
+ - Profile
+ x-akamai:
+ tabs:
+ - syntax: |-
+ 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
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update
+ parameters: []
+ x-akamai:
+ file-path: paths/profile.yaml
+ path-info: /{apiVersion}/profile
+ x-linode-cli-command: profile
+ /profile/apps:
+ get:
+ description: >-
+ This is a collection of OAuth apps that you've given access to your
+ Account, and includes the level of access granted.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-profile-apps
+ operationId: get-profile-apps
parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- profile:
- id: linode.profile.profile
- name: profile
- title: Profile
- methods:
- getProfile:
- operation:
- $ref: '#/paths/~1profile/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getProfile:
- operation:
- $ref: '#/paths/~1profile/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateProfile:
- operation:
- $ref: '#/paths/~1profile/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/profile/methods/getProfile'
- insert: []
- update: []
- delete: []
- apps:
- id: linode.profile.apps
- name: apps
- title: Apps
- methods:
- getProfileApps:
- operation:
- $ref: '#/paths/~1profile~1apps/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getProfileApps:
- operation:
- $ref: '#/paths/~1profile~1apps/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getProfileApp:
- operation:
- $ref: '#/paths/~1profile~1apps~1{appId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getProfileApp:
- operation:
- $ref: '#/paths/~1profile~1apps~1{appId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteProfileApp:
- operation:
- $ref: '#/paths/~1profile~1apps~1{appId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/apps/methods/getProfileApps'
- - $ref: '#/components/x-stackQL-resources/apps/methods/getProfileApp'
- insert: []
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/apps/methods/deleteProfileApp'
- grants:
- id: linode.profile.grants
- name: grants
- title: Grants
- methods:
- getProfileGrants:
- operation:
- $ref: '#/paths/~1profile~1grants/get'
- response:
- mediaType: application/json
- openAPIDocKey: '204'
- objectKey: $.data
- _getProfileGrants:
- operation:
- $ref: '#/paths/~1profile~1grants/get'
- response:
- mediaType: application/json
- openAPIDocKey: '204'
- sqlVerbs:
- select: []
- insert: []
- update: []
- delete: []
- tfa_disable:
- id: linode.profile.tfa_disable
- name: tfa_disable
- title: Tfa Disable
- methods:
- tfaDisable:
- operation:
- $ref: '#/paths/~1profile~1tfa-disable/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select: []
- insert: []
- update: []
- delete: []
- tfa_enable:
- id: linode.profile.tfa_enable
- name: tfa_enable
- title: Tfa Enable
- methods:
- tfaEnable:
- operation:
- $ref: '#/paths/~1profile~1tfa-enable/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select: []
- insert: []
- update: []
- delete: []
- tfa_enable_confirm:
- id: linode.profile.tfa_enable_confirm
- name: tfa_enable_confirm
- title: Tfa Enable Confirm
- methods:
- tfaConfirm:
- operation:
- $ref: '#/paths/~1profile~1tfa-enable-confirm/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select: []
- insert: []
- update: []
- delete: []
- tokens:
- id: linode.profile.tokens
- name: tokens
- title: Tokens
- methods:
- getPersonalAccessTokens:
- operation:
- $ref: '#/paths/~1profile~1tokens/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getPersonalAccessTokens:
- operation:
- $ref: '#/paths/~1profile~1tokens/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createPersonalAccessToken:
- operation:
- $ref: '#/paths/~1profile~1tokens/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getPersonalAccessToken:
- operation:
- $ref: '#/paths/~1profile~1tokens~1{tokenId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getPersonalAccessToken:
- operation:
- $ref: '#/paths/~1profile~1tokens~1{tokenId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updatePersonalAccessToken:
- operation:
- $ref: '#/paths/~1profile~1tokens~1{tokenId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deletePersonalAccessToken:
- operation:
- $ref: '#/paths/~1profile~1tokens~1{tokenId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/tokens/methods/getPersonalAccessTokens'
- - $ref: '#/components/x-stackQL-resources/tokens/methods/getPersonalAccessToken'
- insert:
- - $ref: '#/components/x-stackQL-resources/tokens/methods/createPersonalAccessToken'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/tokens/methods/deletePersonalAccessToken'
- logins:
- id: linode.profile.logins
- name: logins
- title: Logins
- methods:
- getProfileLogins:
- operation:
- $ref: '#/paths/~1profile~1logins/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getProfileLogins:
- operation:
- $ref: '#/paths/~1profile~1logins/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getProfileLogin:
- operation:
- $ref: '#/paths/~1profile~1logins~1{loginId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getProfileLogin:
- operation:
- $ref: '#/paths/~1profile~1logins~1{loginId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/logins/methods/getProfileLogins'
- - $ref: '#/components/x-stackQL-resources/logins/methods/getProfileLogin'
- insert: []
- update: []
- delete: []
- devices:
- id: linode.profile.devices
- name: devices
- title: Devices
- methods:
- getDevices:
- operation:
- $ref: '#/paths/~1profile~1devices/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getDevices:
- operation:
- $ref: '#/paths/~1profile~1devices/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getTrustedDevice:
- operation:
- $ref: '#/paths/~1profile~1devices~1{deviceId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getTrustedDevice:
- operation:
- $ref: '#/paths/~1profile~1devices~1{deviceId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- revokeTrustedDevice:
- operation:
- $ref: '#/paths/~1profile~1devices~1{deviceId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/devices/methods/getDevices'
- - $ref: '#/components/x-stackQL-resources/devices/methods/getTrustedDevice'
- insert: []
- update: []
- delete: []
- security_questions:
- id: linode.profile.security_questions
- name: security_questions
- title: Security Questions
- methods:
- getSecurityQuestions:
- operation:
- $ref: '#/paths/~1profile~1security-questions/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $
- _getSecurityQuestions:
- operation:
- $ref: '#/paths/~1profile~1security-questions/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postSecurityQuestions:
- operation:
- $ref: '#/paths/~1profile~1security-questions/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/security_questions/methods/getSecurityQuestions'
- insert: []
- update: []
- delete: []
- sshkeys:
- id: linode.profile.sshkeys
- name: sshkeys
- title: Sshkeys
- methods:
- getSSHKeys:
- operation:
- $ref: '#/paths/~1profile~1sshkeys/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getSSHKeys:
- operation:
- $ref: '#/paths/~1profile~1sshkeys/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- addSSHKey:
- operation:
- $ref: '#/paths/~1profile~1sshkeys/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getSSHKey:
- operation:
- $ref: '#/paths/~1profile~1sshkeys~1{sshKeyId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getSSHKey:
- operation:
- $ref: '#/paths/~1profile~1sshkeys~1{sshKeyId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateSSHKey:
- operation:
- $ref: '#/paths/~1profile~1sshkeys~1{sshKeyId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteSSHKey:
- operation:
- $ref: '#/paths/~1profile~1sshkeys~1{sshKeyId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/sshkeys/methods/getSSHKeys'
- - $ref: '#/components/x-stackQL-resources/sshkeys/methods/getSSHKey'
- insert:
- - $ref: '#/components/x-stackQL-resources/sshkeys/methods/addSSHKey'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/sshkeys/methods/deleteSSHKey'
- phone_number:
- id: linode.profile.phone_number
- name: phone_number
- title: Phone Number
- methods:
- deleteProfilePhoneNumber:
- operation:
- $ref: '#/paths/~1profile~1phone-number/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postProfilePhoneNumber:
- operation:
- $ref: '#/paths/~1profile~1phone-number/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- postProfilePhoneNumberVerify:
- operation:
- $ref: '#/paths/~1profile~1phone-number~1verify/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select: []
- insert: []
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/phone_number/methods/deleteProfilePhoneNumber'
- preferences:
- id: linode.profile.preferences
- name: preferences
- title: Preferences
- methods:
- getUserPreferences:
- operation:
- $ref: '#/paths/~1profile~1preferences/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getUserPreferences:
- operation:
- $ref: '#/paths/~1profile~1preferences/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateUserPreferences:
- operation:
- $ref: '#/paths/~1profile~1preferences/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select: []
- insert: []
- update: []
- delete: []
-paths:
- /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: []
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Profile response.
content:
application/json:
schema:
- $ref: '#/components/schemas/Profile'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/profile
- - lang: CLI
- source: |
- linode-cli profile view
- put:
- tags:
- - Profile
- summary: 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:
- - 'account:read_write'
- requestBody:
- description: The fields to update.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Profile'
- responses:
- '200':
- description: Profile updated successfully.
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ An application you have authorized access to your
+ Account through OAuth.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ When this app was
+ authorized.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ expiry:
+ description: >-
+ __Filterable__, __Read-only__ 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'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ id:
+ description: >-
+ __Read-only__ This authorization's ID, used for
+ revoking access.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__, __Read-only__ The name of the
+ application you've authorized.
+ example: example-app
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ scopes:
+ description: >-
+ __Read-only__ 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
+ format: oauth-scopes
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ thumbnail_url:
+ description: >-
+ __Read-only__ The URL at which this app's thumbnail
+ may be accessed.
+ example: null
+ format: url
+ nullable: true
+ readOnly: true
+ type: string
+ website:
+ description: >-
+ __Read-only__ The website where you can get more
+ information about this app.
+ example: example.org
+ format: url
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ type: object
+ x-akamai:
+ file-path: schemas/authorized-app.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-profile-apps-200.yaml
+ x-example:
+ x-ref: ../examples/get-profile-apps-200.json
+ description: A paginated list of apps you've authorized.
+ default:
content:
application/json:
schema:
- $ref: '#/components/schemas/Profile'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "email": "example-user@gmail.com",
- "timezone": "US/Eastern",
- "email_notifications": true,
- "lish_auth_method": "keys_only",
- "authorized_keys": null,
- "two_factor_auth": true,
- "restricted": false
- }' \
- https://api.linode.com/v4/profile
- - lang: CLI
- source: |
- linode-cli profile update \
- --email example-user@gmail.com \
- --timezone US/Eastern \
- --email_notifications true \
- --list_auth_method keys_only \
- --two_factor_auth true \
- --restricted false
- /profile/apps:
- get:
- parameters:
- - $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
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_only
+ summary: List authorized apps
+ tags:
+ - Apps
+ x-akamai:
+ tabs:
+ - syntax: linode-cli profile apps-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: apps-list
+ parameters: []
+ x-akamai:
+ file-path: paths/apps.yaml
+ path-info: /{apiVersion}/profile/apps
+ x-linode-cli-command: profile
+ /profile/apps/{appId}:
+ get:
+ description: >-
+ Returns information about a single app you've authorized to access your
+ Account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-profile-app
+ operationId: get-profile-app
responses:
'200':
- description: |
- A paginated list of apps you've authorized.
content:
application/json:
schema:
+ additionalProperties: false
+ description: >-
+ An application you have authorized access to your Account
+ through OAuth.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ When this app was
+ authorized.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ expiry:
+ description: >-
+ __Filterable__, __Read-only__ 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'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ id:
+ description: >-
+ __Read-only__ This authorization's ID, used for revoking
+ access.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__, __Read-only__ The name of the application
+ you've authorized.
+ example: example-app
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ scopes:
+ description: >-
+ __Read-only__ 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
+ format: oauth-scopes
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ thumbnail_url:
+ description: >-
+ __Read-only__ The URL at which this app's thumbnail may be
+ accessed.
+ example: null
+ format: url
+ nullable: true
+ readOnly: true
+ type: string
+ website:
+ description: >-
+ __Read-only__ The website where you can get more
+ information about this app.
+ example: example.org
+ format: url
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
type: object
+ x-akamai:
+ file-path: schemas/authorized-app.yaml
+ x-example:
+ x-ref: ../examples/get-profile-app-200.json
+ description: The app requested.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
items:
- $ref: '#/components/schemas/AuthorizedApp'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/profile/apps
- - lang: CLI
- source: |
- linode-cli profile apps-list
- '/profile/apps/{appId}':
- get:
- tags:
- - Profile
- summary: Authorized App View
- description: |
- Returns information about a single app you've authorized to access your Account.
- operationId: getProfileApp
- x-linode-cli-action: app-view
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_only
+ summary: Get an authorized app
+ tags:
+ - Apps
+ x-akamai:
+ tabs:
+ - syntax: linode-cli profile app-view 1234
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: app-view
+ delete:
+ description: >-
+ Expires this app token. This token may no longer be used to access your
+ Account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-profile-app
+ operationId: delete-profile-app
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
- parameters:
- - name: appId
- in: path
- required: true
- description: The authorized app ID to manage.
- schema:
- type: integer
- 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: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-profile-app-200.json
description: App's authorization has been revoked.
+ default:
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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
- parameters:
- - name: appId
- in: path
- required: true
- description: The authorized app ID to manage.
- schema:
- type: integer
- /profile/grants:
- get:
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Revoke app access
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.
+ - Apps
+ x-akamai:
+ tabs:
+ - syntax: linode-cli profile app-delete 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: app-delete
+ parameters:
+ - description: The authorized app ID to manage.
+ example: '{{appId}}'
+ in: path
+ name: appId
+ required: true
+ schema:
+ example: 724
+ type: integer
+ x-akamai:
+ file-path: parameters/app-id-path.yaml
+ x-akamai:
+ file-path: paths/app.yaml
+ path-info: /{apiVersion}/profile/apps/{appId}
+ x-linode-cli-command: profile
+ /profile/devices:
+ get:
+ 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.
- 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: []
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-devices
+ operationId: get-devices
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.
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ A trusted device object represents an active Remember Me
+ session with
+ [login.linode.com](https://login.linode.com).
+ properties:
+ created:
+ description: >-
+ __Read-only__ When this Remember Me session was
+ started. This corresponds to the time of login with
+ the "Remember Me" box checked.
+ example: '2018-01-01T01:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ expiry:
+ description: >-
+ __Read-only__ When this TrustedDevice session
+ expires. Sessions typically last 30 days.
+ example: '2018-01-31T01:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique ID for this TrustedDevice.
+ example: 123
+ readOnly: true
+ type: integer
+ last_authenticated:
+ description: >-
+ __Read-only__ The last time this TrustedDevice was
+ successfully used to authenticate to
+ [login.linode.com](https://login.linode.com).
+ example: '2018-01-05T12:57:12'
+ format: date-time
+ readOnly: true
+ type: string
+ last_remote_addr:
+ description: >-
+ __Read-only__ The last IP Address to successfully
+ authenticate with this TrustedDevice.
+ example: 203.0.113.1
+ readOnly: true
+ type: string
+ user_agent:
+ description: >-
+ __Read-only__ The User Agent of the browser that
+ created this TrustedDevice session.
+ example: >-
+ Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3)
+ AppleWebKit/537.36 (KHTML, like Gecko)
+ Chrome/70.0.3538.77 Safari/537.36
+ Vivaldi/2.1.1337.36
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/trusted-device.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-devices-200.yaml
+ x-example:
+ x-ref: ../examples/get-devices-200.json
+ description: Returns a paginated list of TrustedDevice objects.
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:
- post:
- tags:
- - 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:
- - 'account:read_write'
- responses:
- '200':
- description: TFA disabled.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/profile/tfa-disable
- - lang: CLI
- source: |
- linode-cli profile tfa-disable
- /profile/tfa-enable:
- post:
- tags:
- - Profile
- summary: Two Factor Secret Create
- description: |
- 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.
-
- **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
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
+ - account:read_only
+ summary: List trusted devices
+ tags:
+ - Devices
+ x-akamai:
+ tabs:
+ - syntax: linode-cli profile devices-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: devices-list
+ parameters: []
+ x-akamai:
+ file-path: paths/profile-devices.yaml
+ path-info: /{apiVersion}/profile/devices
+ x-linode-cli-command: profile
+ /profile/devices/{deviceId}:
+ get:
+ description: >-
+ Returns a single active TrustedDevice for your User.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-trusted-device
+ operationId: get-trusted-device
responses:
'200':
- description: Two Factor secret generated
content:
application/json:
schema:
+ additionalProperties: false
+ description: >-
+ A trusted device object represents an active Remember Me
+ session with [login.linode.com](https://login.linode.com).
properties:
- secret:
+ created:
+ description: >-
+ __Read-only__ When this Remember Me session was started.
+ This corresponds to the time of login with the "Remember
+ Me" box checked.
+ example: '2018-01-01T01:01:01'
+ format: date-time
+ readOnly: true
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:
+ description: >-
+ __Read-only__ When this TrustedDevice session expires.
+ Sessions typically last 30 days.
+ example: '2018-01-31T01:01:01'
+ format: date-time
+ readOnly: true
type: string
+ id:
+ description: __Read-only__ The unique ID for this TrustedDevice.
+ example: 123
+ readOnly: true
+ type: integer
+ last_authenticated:
+ description: >-
+ __Read-only__ The last time this TrustedDevice was
+ successfully used to authenticate to
+ [login.linode.com](https://login.linode.com).
+ example: '2018-01-05T12:57:12'
format: date-time
- description: |
- When this Two Factor secret expires.
- example: '2018-03-01T00:01:01.000Z'
+ readOnly: true
+ type: string
+ last_remote_addr:
+ description: >-
+ __Read-only__ The last IP Address to successfully
+ authenticate with this TrustedDevice.
+ example: 203.0.113.1
+ readOnly: true
+ type: string
+ user_agent:
+ description: >-
+ __Read-only__ The User Agent of the browser that created
+ this TrustedDevice session.
+ example: >-
+ Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3)
+ AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77
+ Safari/537.36 Vivaldi/2.1.1337.36
+ readOnly: true
+ type: string
type: object
+ x-akamai:
+ file-path: schemas/trusted-device.yaml
+ x-example:
+ x-ref: ../examples/get-trusted-device-200.json
+ description: The requested TrustedDevice 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
- - lang: CLI
- source: |
- linode-cli profile tfa-enable
- /profile/tfa-enable-confirm:
- 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:
+ additionalProperties: false
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
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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 '{
- "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:
- 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
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_only
+ summary: Get a trusted device
+ tags:
+ - Devices
+ x-akamai:
+ tabs:
+ - syntax: linode-cli profile device-view 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: device-view
+ delete:
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-trusted-device
+ operationId: delete-trusted-device
responses:
'200':
- description: A paginated list of active tokens.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-trusted-device-200.json
+ description: Session revoked successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
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
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: Information about the requested token.
+ - account:read_write
+ summary: Revoke a trusted device
+ tags:
+ - Devices
+ x-akamai:
+ tabs:
+ - syntax: linode-cli profile device-revoke 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: device-revoke
+ parameters:
+ - description: The ID of the TrustedDevice.
+ example: '{{deviceId}}'
+ in: path
+ name: deviceId
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'
+ schema:
+ example: 768
+ type: integer
+ x-akamai:
+ file-path: parameters/device-id-path-b3b3e692.yaml
+ x-akamai:
+ file-path: paths/profile-device.yaml
+ path-info: /{apiVersion}/profile/devices/{deviceId}
+ x-linode-cli-command: profile
+ /profile/grants:
+ get:
+ 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 operation 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 run this operation; no OAuth scopes are required.
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-profile-grants
+ operationId: get-profile-grants
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}':
- 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.
+ additionalProperties: false
+ properties:
+ database:
+ description: >-
+ The grants this user has for individual Managed Databases
+ on this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ domain:
+ description: >-
+ The grants this user has for individual domains on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ firewall:
+ description: >-
+ The grants this user has for individual firewalls on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ global:
+ additionalProperties: false
+ description: The grants the user has to all resources on your account.
+ properties:
+ account_access:
+ description: >-
+ The level of access this user has to account-level
+ actions, like billing information and user management.
+
+
+ > 📘
+
+ >
+
+ > A `restricted` user can't be used to manage users,
+ even if this is set to `read-write`. Only unrestricted
+ users can manage other users on an account.
+
+
+ __Parent and child accounts__
+
+
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, this grant can be added to a child
+ account user, to give the user `read-write` access.
+ This gives the child user unrestricted access to
+ expected management operations, such as creating other
+ child users. However, child users don't have write
+ access to billing operations. The API issues a
+ specific error message if a write operation is
+ attempted by a child user.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ add_databases:
+ description: >-
+ Whether this user can add Managed Databases on the
+ account.
+ example: true
+ type: boolean
+ add_domains:
+ description: Whether this user can add domains on the account.
+ example: true
+ type: boolean
+ add_firewalls:
+ description: Whether this user can add Firewalls on the account.
+ example: true
+ type: boolean
+ add_images:
+ description: >-
+ Whether this user can create images from disks on your
+ Linodes, on the account.
+ example: true
+ type: boolean
+ add_linodes:
+ description: Whether this user can create Linodes.
+ example: true
+ type: boolean
+ add_longview:
+ description: >-
+ Whether this user can create Longview clients and view
+ the current plan.
+ example: true
+ type: boolean
+ add_nodebalancers:
+ description: >-
+ Whether this user can add NodeBalancers on the
+ account.
+ example: true
+ type: boolean
+ add_stackscripts:
+ description: Whether this user can add StackScripts on the account.
+ example: true
+ type: boolean
+ add_volumes:
+ description: Whether this user can add volumes on the account.
+ example: true
+ type: boolean
+ add_vpcs:
+ description: >-
+ Whether this user can add Virtual Private Clouds
+ (VPCs) on the account.
+ example: true
+ type: boolean
+ cancel_account:
+ description: Whether this user can cancel the entire account.
+ example: false
+ type: boolean
+ child_account_access:
+ description: >-
+ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, this gives a parent account access to
+ operations that can be used to manage child accounts.
+ Unrestricted parent account users have access to this
+ grant, while restricted parent users don't. An
+ unrestricted parent user can set this to `true` to add
+ this grant to a restricted parent user. Displayed as
+ `null` for all non-parent accounts.
+ example: true
+ nullable: true
+ type: boolean
+ longview_subscription:
+ description: >-
+ Whether this user can manage your account's Longview
+ subscription.
+ example: true
+ type: boolean
+ type: object
+ image:
+ description: >-
+ The grants this user has for individual images on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ linode:
+ description: >-
+ The grants this user has for individual Linodes on this
+ account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ longview:
+ description: >-
+ The grants this user has for individual Longview Clients
+ on this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ nodebalancer:
+ description: >-
+ The grants this user has for individual NodeBalancers on
+ this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ stackscript:
+ description: >-
+ The grants this User has for individual StackScripts on
+ this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ volume:
+ description: >-
+ The grants this user has individual Block Storage Volumes
+ on this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ vpc:
+ description: >-
+ The grants this user has individual Virtual Private Clouds
+ (VPCs) on this account.
+ items:
+ additionalProperties: false
+ description: >-
+ Represents the level of access a restricted user has to
+ a specific resource on the account.
+ properties:
+ id:
+ description: >-
+ The unique identifier of the resource this grant
+ applies to.
+ example: 123
+ type: integer
+ label:
+ description: >-
+ __Read-only__ The name of the entity this grant
+ applies to. This is only for display purposes.
+ example: example-entity
+ readOnly: true
+ type: string
+ permissions:
+ description: >-
+ The level of access this user has to this entity. If
+ `null`, this user has no access.
+ enum:
+ - read_only
+ - read_write
+ example: read_only
+ nullable: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/grant.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/grants-response.yaml
+ x-example:
+ x-ref: ../examples/get-profile-grants-200.json
+ description: GrantsResponse.
+ '204':
+ content: {}
+ description: >-
+ This is an unrestricted User, who has no grants. This User can
+ access everything on the Account.
+ default:
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
- parameters:
- - name: tokenId
- in: path
- description: The ID of the token to access.
- required: true
- schema:
- type: integer
- put:
- tags:
- - Profile
- summary: Personal Access Token Update
- description: |
- Updates a Personal Access Token.
- operationId: updatePersonalAccessToken
- x-linode-cli-action: token-update
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- - oauth:
- - 'account:read_write'
- requestBody:
- description: The fields to update.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/PersonalAccessToken'
+ - oauth: []
+ summary: List grants
+ tags:
+ - Grants
+ x-linode-cli-action: grants
+ x-linode-cli-skip: true
+ parameters: []
+ x-akamai:
+ file-path: paths/profile-grants.yaml
+ path-info: /{apiVersion}/profile/grants
+ x-linode-cli-command: profile
+ /profile/logins:
+ get:
+ description: >-
+ Returns a collection of successful account logins from this user during
+ the last 90 days.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-profile-logins
+ operationId: get-profile-logins
responses:
'200':
- description: Token updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/PersonalAccessToken'
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ An object representing a previous successful login for a
+ User.
+ properties:
+ datetime:
+ description: __Read-only__ When the login was initiated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ id:
+ description: __Read-only__ The unique ID of this login object.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip:
+ description: >-
+ __Read-only__ The remote IP address that requested
+ the login.
+ example: 192.0.2.0
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ restricted:
+ description: >-
+ __Read-only__ True if the User that attempted the
+ login was a restricted User, false otherwise.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 6
+ status:
+ description: >-
+ __Read-only__ Whether the login attempt succeeded or
+ failed.
+ enum:
+ - successful
+ - failed
+ example: successful
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ username:
+ description: >-
+ __Read-only__ The username of the User that
+ attempted the login.
+ example: example_user
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ type: object
+ x-akamai:
+ file-path: schemas/login.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-profile-logins-200.yaml
+ x-example:
+ x-ref: ../examples/get-profile-logins-200.json
+ description: >-
+ An array of successful account logins from this user during the last
+ 90 days.
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
- parameters:
- - name: tokenId
- in: path
- description: The ID of the token to access.
- required: true
- schema:
- type: integer
- 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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
+ - account:read_only
+ summary: List logins
+ tags:
+ - Logins
+ x-akamai:
+ tabs:
+ - syntax: linode-cli profile logins-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: logins-list
+ parameters: []
+ x-akamai:
+ file-path: paths/profile-logins.yaml
+ path-info: /{apiVersion}/profile/logins
+ x-linode-cli-command: profile
+ /profile/logins/{loginId}:
+ get:
+ description: >-
+ Returns a login object displaying information about a successful account
+ login from this user.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-profile-login
+ operationId: get-profile-login
responses:
'200':
- description: Token revoked successfully.
content:
application/json:
schema:
+ additionalProperties: false
+ description: An object representing a previous successful login for a User.
+ properties:
+ datetime:
+ description: __Read-only__ When the login was initiated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ id:
+ description: __Read-only__ The unique ID of this login object.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ip:
+ description: >-
+ __Read-only__ The remote IP address that requested the
+ login.
+ example: 192.0.2.0
+ format: ip
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ restricted:
+ description: >-
+ __Read-only__ True if the User that attempted the login
+ was a restricted User, false otherwise.
+ example: true
+ readOnly: true
+ type: boolean
+ x-linode-cli-display: 6
+ status:
+ description: >-
+ __Read-only__ Whether the login attempt succeeded or
+ failed.
+ enum:
+ - successful
+ - failed
+ example: successful
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ username:
+ description: >-
+ __Read-only__ The username of the User that attempted the
+ login.
+ example: example_user
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
type: object
+ x-akamai:
+ file-path: schemas/login.yaml
+ x-example:
+ x-ref: ../examples/get-profile-login-200.json
+ description: The requested login 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
- parameters:
- - name: tokenId
- in: path
- description: The ID of the token to access.
- required: true
- schema:
- type: integer
- /profile/logins:
- 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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_only
+ summary: Get a profile's login
+ tags:
+ - Logins
+ x-akamai:
+ tabs:
+ - syntax: linode-cli profile login-view 1234
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: login-view
+ parameters:
+ - description: The ID of the login object to access.
+ example: '{{loginId}}'
+ in: path
+ name: loginId
+ required: true
+ schema:
+ example: 863
+ type: integer
+ x-akamai:
+ file-path: parameters/login-id-path.yaml
+ x-akamai:
+ file-path: paths/profile-login.yaml
+ path-info: /{apiVersion}/profile/logins/{loginId}
+ x-linode-cli-command: profile
+ /profile/phone-number:
+ post:
+ 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 operation you are opting in to receive SMS messages.
+ You can opt out of SMS messages by running the [Delete a phone
+ number](https://techdocs.akamai.com/linode-api/reference/delete-profile-phone-number)
+ operation 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
+ [Verify a phone
+ number](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify)
+ operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number
+ operationId: post-profile-phone-number
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ iso_code:
+ description: >-
+ The two-letter ISO 3166 country code associated with the
+ phone number.
+ example: '{{iso_code}}'
+ type: string
+ phone_number:
+ description: A valid phone number.
+ example: '{{phone_number}}'
+ format: phone
+ type: string
+ required:
+ - iso_code
+ - phone_number
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-profile-phone-number.yaml
+ x-example:
+ x-ref: ../examples/post-profile-phone-number.json
+ description: Enter a phone number and country code for verification.
responses:
'200':
- description: |
- An array of successful account logins from this user during the last 90 days.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-profile-phone-number-200.json
+ description: Phone number verification code request successful.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
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}':
- 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
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_write
+ summary: Send a phone number verification code
+ tags:
+ - Phone number
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli phone sms-code-send \
+ --iso-code US \
+ --phone-number 555-555-5555
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: sms-code-send
+ x-linode-grant: read_write
+ delete:
+ description: >-
+ Delete the verified phone number for the User making this request.
+
+
+ Use this operation to opt out of SMS messages for the requesting User
+ after a phone number has been verified with the [Verify a phone
+ number](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify)
+ operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-profile-phone-number
+ operationId: delete-profile-phone-number
responses:
'200':
- description: The requested login object.
content:
application/json:
schema:
- $ref: '#/components/schemas/Login'
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-profile-phone-number-200.json
+ description: Phone number deletion request successful.
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
- parameters:
- - name: loginId
- in: path
- description: The ID of the login object to access.
- required: true
- schema:
- type: integer
- /profile/devices:
- 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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_write
+ summary: Delete a phone number
+ tags:
+ - Phone number
+ x-akamai:
+ tabs:
+ - syntax: linode-cli phone delete
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: delete
+ x-linode-grant: read_write
+ parameters: []
+ x-akamai:
+ file-path: paths/phone-number.yaml
+ path-info: /{apiVersion}/profile/phone-number
+ x-linode-cli-command: phone
+ /profile/phone-number/verify:
+ post:
+ description: >-
+ Verify a phone number by confirming the one-time code received via SMS
+ message after running the [Send a phone number verification
+ code](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number)
+ operation.
+
+
+ - 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 operation.
+
+
+ Once completed, the verified phone number is assigned to the User making
+ the request. To change the verified phone number for a User, first run
+ the [Delete a phone
+ number](https://techdocs.akamai.com/linode-api/reference/delete-profile-phone-number)
+ operation, then begin the verification process again with the [Send a
+ phone number verification
+ code](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number)
+ operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify
+ operationId: post-profile-phone-number-verify
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ otp_code:
+ description: >-
+ The one-time code received via SMS message after running the
+ [Send a phone number verification
+ code](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number)
+ operation.
+ example: '{{otp_code}}'
+ type: string
+ required:
+ - otp_code
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-profile-phone-number-verify.yaml
+ x-example:
+ x-ref: ../examples/post-profile-phone-number-verify.json
+ description: Enter a phone verification code for confirmation.
responses:
'200':
- description: Returns a paginated list of TrustedDevice objects.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-profile-phone-number-verify-200.json
+ description: Phone number verification successful.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
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}':
- get:
- tags:
- - Profile
- summary: Trusted Device View
- description: |
- Returns a single active TrustedDevice for your User.
- operationId: getTrustedDevice
- x-linode-cli-action: device-view
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_write
+ summary: Verify a phone number
+ tags:
+ - Phone number
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli phone verify \
+ --otp_code 123456
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: verify
+ x-linode-grant: read_write
+ parameters: []
+ x-akamai:
+ file-path: paths/verify.yaml
+ path-info: /{apiVersion}/profile/phone-number/verify
+ x-linode-cli-command: phone
+ /profile/preferences:
+ get:
+ 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. __OAuth scopes__.
+
+ ```
+ account:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-user-preferences
+ operationId: get-user-preferences
responses:
'200':
- description: The requested TrustedDevice object
content:
application/json:
schema:
- $ref: '#/components/schemas/TrustedDevice'
+ description: A dictionary of user preferences.
+ example:
+ key1: value1
+ key2: value2
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-user-preferences-200.yaml
+ x-example:
+ x-ref: ../examples/get-user-preferences-200.json
+ description: Returns an object of user preferences.
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
- parameters:
- - name: deviceId
- in: path
- description: The ID of the TrustedDevice
- required: true
- schema:
- type: integer
- 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:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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
- parameters:
- - name: deviceId
- in: path
- description: The ID of the TrustedDevice
- required: true
- schema:
- type: integer
- /profile/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
- - ls
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
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:
+ - account:read_only
+ summary: Get user preferences
tags:
- - Profile
- summary: Security Questions Answer
- description: |
- Adds security question responses for your User.
-
- Requires exactly three unique questions.
+ - Preferences
+ x-akamai:
+ tabs:
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: preferences-view
+ x-linode-cli-skip: true
+ x-linode-grant: read_only
+ put:
+ 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. __OAuth scopes__.
- Previous responses are overwritten if answered or reset to `null` if unanswered.
+ ```
+ account:read_write
+ ```
- **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'
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-user-preferences
+ operationId: put-user-preferences
requestBody:
- description: Answer Security Questions
content:
application/json:
schema:
- $ref: '#/components/schemas/SecurityQuestionsPost'
+ description: >-
+ Arbitrary JSON of your choosing. Overwrites any existing
+ preferences for this user.
+
+
+ Total length cannot exceed 65,535 characters.
+ maxLength: 65535
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-user-preferences.yaml
+ x-example:
+ x-ref: ../examples/put-user-preferences.json
+ description: The user preferences to update or store.
+ required: true
responses:
'200':
- description: Security Questions answered successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/SecurityQuestionsPost'
+ description: An object of user preferences.
+ example:
+ key1: value1
+ key2: value2
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-user-preferences-200.yaml
+ x-example:
+ x-ref: ../examples/get-user-preferences-200.json
+ description: Returns an object of user preferences.
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:
- 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
- - ls
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_only'
- responses:
- '200':
- description: Returns a paginated list of SSH Key objects.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
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
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
+ - account:read_write
+ summary: Update a user's preferences
+ tags:
+ - Preferences
+ x-akamai:
+ tabs:
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: preferences-update
+ x-linode-cli-skip: true
+ parameters: []
+ x-akamai:
+ file-path: paths/preferences.yaml
+ path-info: /{apiVersion}/profile/preferences
+ x-linode-cli-command: profile
+ /profile/security-questions:
+ post:
+ description: >-
+ Adds security question responses for your user. You need to use exactly
+ three unique questions. Previous responses are overwritten if answered,
+ or they're reset to `null` if unanswered.
+
+
+ > 📘
+
+ >
+
+ > You need to answer these security questions before you can access the
+ [Create a two factor
+ secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable)
+ operation. __OAuth scopes__.
+
+ ```
+ account:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-security-questions
+ operationId: post-security-questions
requestBody:
- description: Add SSH Key
content:
application/json:
schema:
- $ref: '#/components/schemas/SSHKey'
+ additionalProperties: false
+ description: Security questions and responses object for POST operation.
+ properties:
+ security_questions:
+ description: Security questions and response objects.
+ items:
+ additionalProperties: false
+ description: >-
+ Single security question and response object for POST
+ operation.
+ properties:
+ question_id:
+ description: The ID representing the security question.
+ example: 1
+ type: integer
+ response:
+ description: The security question response.
+ example: Gotham City
+ maxLength: 17
+ minLength: 3
+ type: string
+ security_question:
+ description: __Read-only__ The security question.
+ example: In what city were you born?
+ readOnly: true
+ type: string
+ type: object
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/security-questions-post.yaml
+ x-example:
+ x-ref: ../examples/post-security-questions.json
+ description: Answer Security Questions.
responses:
'200':
- description: SSH Key associated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/SSHKey'
+ additionalProperties: false
+ description: Security questions and responses object for POST operation.
+ properties:
+ security_questions:
+ description: Security questions and response objects.
+ items:
+ additionalProperties: false
+ description: >-
+ Single security question and response object for POST
+ operation.
+ properties:
+ question_id:
+ description: The ID representing the security question.
+ example: 1
+ type: integer
+ response:
+ description: The security question response.
+ example: Gotham City
+ maxLength: 17
+ minLength: 3
+ type: string
+ security_question:
+ description: __Read-only__ The security question.
+ example: In what city were you born?
+ readOnly: true
+ type: string
+ type: object
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/security-questions-post.yaml
+ x-example:
+ x-ref: ../examples/post-security-questions-200.json
+ description: Security Questions answered successfully.
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}':
- 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
- parameters:
- - name: sshKeyId
- in: path
- description: The ID of the SSHKey
- required: true
- schema:
- type: integer
- put:
- tags:
- - Profile
- summary: SSH Key Update
- description: |
- Updates an SSH Key that you have permission to `read_write`.
-
- Only SSH key labels can be updated.
- operationId: updateSSHKey
- x-linode-cli-action: update
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: |
- The fields to update.
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- label:
- $ref: '#/components/schemas/SSHKey/properties/label'
- 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/sshkeys/42
- - lang: CLI
- source: |
- linode-cli sshkeys update 42 \
- --label "my laptop"
- parameters:
- - name: sshKeyId
- in: path
- description: The ID of the SSHKey
- required: true
- schema:
- type: integer
- delete:
+ - account:read_write
+ summary: Answer security questions
tags:
- - Profile
- summary: SSH Key Delete
- description: |
- Deletes an SSH Key you have access to.
+ - Security questions
+ x-akamai:
+ tabs:
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: answer
+ x-linode-cli-skip: true
+ get:
+ description: >-
+ Returns a collection of security questions and their responses, if any,
+ for your User Profile.
- **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
- - rm
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-security-questions
+ operationId: get-security-questions
responses:
'200':
- description: SSH Key deleted successfully.
content:
application/json:
schema:
+ additionalProperties: false
+ description: Security questions and responses object for GET operation.
+ properties:
+ security_questions:
+ description: Security questions and response objects.
+ items:
+ additionalProperties: false
+ description: >-
+ Single security question and response object for GET
+ operation.
+ properties:
+ id:
+ description: The ID representing the security question.
+ example: 1
+ type: integer
+ question:
+ description: __Read-only__ The security question.
+ example: In what city were you born?
+ readOnly: true
+ type: string
+ response:
+ description: The security question response.
+ example: Gotham City
+ maxLength: 17
+ minLength: 3
+ type: string
+ type: object
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/security-questions-get.yaml
+ x-example:
+ x-ref: ../examples/get-security-questions-200.json
+ x-linode-cli-nested-list: security_questions
+ x-linode-cli-use-schema:
+ additionalProperties: false
+ 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
type: object
+ x-akamai:
+ file-path: schemas/security-questions-get-cli.yaml
+ description: Returns a list of security questions.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authoriztion: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/profile/sshkeys/42
- - lang: CLI
- source: |
- linode-cli sshkeys delete 42
- parameters:
- - name: sshKeyId
- in: path
- description: The ID of the SSHKey
- required: true
- schema:
- type: integer
- /profile/phone-number:
- 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-action: delete
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
- responses:
- '200':
- description: |
- Phone number deletion request successful.
content:
application/json:
schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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/phone-number
- - lang: CLI
- source: |
- linode-cli phone delete
- post:
- x-linode-grant: read_write
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List security questions
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.
+ - Security questions
+ x-akamai:
+ tabs:
+ - syntax: linode-cli security-questions list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/security-questions.yaml
+ path-info: /{apiVersion}/profile/security-questions
+ x-linode-cli-command: security-questions
+ /profile/sshkeys:
+ post:
+ description: >-
+ Adds an SSH Key to your Account profile.
- * 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.
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- * 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-action: sms-code-send
- security:
- - personalAccessToken: []
- - oauth:
- - 'account:read_write'
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key
+ operationId: post-add-ssh-key
requestBody:
- description: Enter a phone number and country code for verification.
content:
application/json:
schema:
- required:
- - iso_code
- - phone_number
- type: object
+ additionalProperties: false
+ description: >-
+ A credential object for authenticating a User's secure shell
+ connection to a Linode.
properties:
- iso_code:
+ created:
+ description: __Read-only__ The date this key was added.
+ example: '{{created}}'
+ format: date-time
+ readOnly: true
type: string
- description: The two-letter ISO 3166 country code associated with the phone number.
- example: US
- phone_number:
+ id:
+ description: __Read-only__ The unique identifier of an SSH Key object.
+ example: '{{id}}'
+ readOnly: true
+ type: integer
+ label:
+ description: A label for the SSH Key.
+ example: '{{label}}'
+ maxLength: 64
+ minLength: 0
type: string
- description: A valid phone number.
- format: phone
- example: 555-555-5555
+ ssh_key:
+ description: >-
+ The public SSH Key, which is used to authenticate to the
+ root user of the Linodes you deploy.
+
+
+ Accepted formats:
+
+
+ - ssh-dss
+
+ - ssh-rsa
+
+ - ecdsa-sha2-nistp
+
+ - ssh-ed25519
+
+ - sk-ecdsa-sha2-nistp256 (Akamai-specific)
+ example: '{{ssh_key}}'
+ format: ssh-key
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/ssh-key.yaml
+ x-example:
+ x-ref: ../examples/post-add-ssh-key.json
+ description: Add SSH Key.
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:
- 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.
+ additionalProperties: false
+ description: >-
+ A credential object for authenticating a User's secure shell
+ connection to a Linode.
+ properties:
+ created:
+ description: __Read-only__ The date this key was added.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier of an SSH Key object.
+ example: 42
+ readOnly: true
+ type: integer
+ label:
+ description: A label for the SSH Key.
+ example: My SSH Key
+ maxLength: 64
+ minLength: 0
+ type: string
+ ssh_key:
+ description: >-
+ The public SSH Key, which is used to authenticate to the
+ root user of the Linodes you deploy.
- * 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-action: verify
+ Accepted formats:
+
+
+ - ssh-dss
+
+ - ssh-rsa
+
+ - ecdsa-sha2-nistp
+
+ - ssh-ed25519
+
+ - sk-ecdsa-sha2-nistp256 (Akamai-specific)
+ example: >-
+ ssh-rsa AAAA_valid_public_ssh_key_123456785==
+ user@their-computer
+ format: ssh-key
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/ssh-key.yaml
+ x-example:
+ x-ref: ../examples/post-add-ssh-key-200.json
+ description: SSH Key associated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Add an SSH key
+ tags:
+ - SSH keys
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli sshkeys create \
+ --label "My SSH Key" \
+ --ssh_key "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: create
+ get:
+ description: >-
+ Returns a collection of SSH Keys you've added to your Profile.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-ssh-keys
+ operationId: get-ssh-keys
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ A credential object for authenticating a User's secure
+ shell connection to a Linode.
+ properties:
+ created:
+ description: __Read-only__ The date this key was added.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: >-
+ __Read-only__ The unique identifier of an SSH Key
+ object.
+ example: 42
+ readOnly: true
+ type: integer
+ label:
+ description: A label for the SSH Key.
+ example: My SSH Key
+ maxLength: 64
+ minLength: 0
+ type: string
+ ssh_key:
+ description: >-
+ The public SSH Key, which is used to authenticate to
+ the root user of the Linodes you deploy.
+
+
+ Accepted formats:
+
+
+ - ssh-dss
+
+ - ssh-rsa
+
+ - ecdsa-sha2-nistp
+
+ - ssh-ed25519
+
+ - sk-ecdsa-sha2-nistp256 (Akamai-specific)
+ example: >-
+ ssh-rsa AAAA_valid_public_ssh_key_123456785==
+ user@their-computer
+ format: ssh-key
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/ssh-key.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-ssh-keys-200.yaml
+ x-example:
+ x-ref: ../examples/get-ssh-keys-200.json
+ description: Returns a paginated list of SSH Key objects.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List SSH keys
+ tags:
+ - SSH keys
+ x-akamai:
+ tabs:
+ - syntax: linode-cli sshkeys list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/profile-ssh-keys.yaml
+ path-info: /{apiVersion}/profile/sshkeys
+ x-linode-cli-command: sshkeys
+ /profile/sshkeys/{sshKeyId}:
+ get:
+ description: >-
+ Returns a single SSH Key object identified by `id` that you have access
+ to view.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-ssh-key
+ operationId: get-ssh-key
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A credential object for authenticating a User's secure shell
+ connection to a Linode.
+ properties:
+ created:
+ description: __Read-only__ The date this key was added.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier of an SSH Key object.
+ example: 42
+ readOnly: true
+ type: integer
+ label:
+ description: A label for the SSH Key.
+ example: My SSH Key
+ maxLength: 64
+ minLength: 0
+ type: string
+ ssh_key:
+ description: >-
+ The public SSH Key, which is used to authenticate to the
+ root user of the Linodes you deploy.
+
+
+ Accepted formats:
+
+
+ - ssh-dss
+
+ - ssh-rsa
+
+ - ecdsa-sha2-nistp
+
+ - ssh-ed25519
+
+ - sk-ecdsa-sha2-nistp256 (Akamai-specific)
+ example: >-
+ ssh-rsa AAAA_valid_public_ssh_key_123456785==
+ user@their-computer
+ format: ssh-key
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/ssh-key.yaml
+ x-example:
+ x-ref: ../examples/get-ssh-key-200.json
+ description: An SSH Key object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
+ - account:read_only
+ summary: Get an SSH key
+ tags:
+ - SSH keys
+ x-akamai:
+ tabs:
+ - syntax: linode-cli sshkeys view 42
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ put:
+ description: >-
+ Updates an SSH Key that you have permission to `read_write`.
+
+
+ Only SSH key labels can be updated.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-ssh-key
+ operationId: put-ssh-key
requestBody:
- description: Enter a phone verification code for confirmation.
content:
application/json:
schema:
- required:
- - otp_code
- type: object
+ additionalProperties: false
properties:
- otp_code:
+ label:
+ description: A label for the SSH Key.
+ example: '{{label}}'
+ maxLength: 64
+ minLength: 0
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
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-ssh-key.yaml
+ x-example:
+ x-ref: ../examples/put-ssh-key.json
+ description: The fields to update.
+ required: true
responses:
'200':
- description: |
- Phone number verification successful.
content:
application/json:
schema:
+ additionalProperties: false
+ description: >-
+ A credential object for authenticating a User's secure shell
+ connection to a Linode.
+ properties:
+ created:
+ description: __Read-only__ The date this key was added.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier of an SSH Key object.
+ example: 42
+ readOnly: true
+ type: integer
+ label:
+ description: A label for the SSH Key.
+ example: My SSH Key
+ maxLength: 64
+ minLength: 0
+ type: string
+ ssh_key:
+ description: >-
+ The public SSH Key, which is used to authenticate to the
+ root user of the Linodes you deploy.
+
+
+ Accepted formats:
+
+
+ - ssh-dss
+
+ - ssh-rsa
+
+ - ecdsa-sha2-nistp
+
+ - ssh-ed25519
+
+ - sk-ecdsa-sha2-nistp256 (Akamai-specific)
+ example: >-
+ ssh-rsa AAAA_valid_public_ssh_key_123456785==
+ user@their-computer
+ format: ssh-key
+ type: string
type: object
+ x-akamai:
+ file-path: schemas/ssh-key.yaml
+ x-example:
+ x-ref: ../examples/get-ssh-key-200.json
+ description: SSH Key updated successfully.
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:
- 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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_write
+ summary: Update an SSH key
+ tags:
+ - SSH keys
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli sshkeys update 42 \
+ --label "my laptop"
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update
+ delete:
+ description: >-
+ Deletes an SSH Key you have access to.
+
+
+ > 📘
+
+ >
+
+ > This operation only deletes a key's association from your profile. It
+ doesn't remove it from any Linode or disk that was deployed with
+ `authorized_keys`. You need to manually delete the key on the Linode or
+ disk.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-ssh-key
+ operationId: delete-ssh-key
responses:
'200':
- description: Returns an object of user preferences.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
- description: A dictionary of user preferences.
- example:
- key1: value1
- key2: value2
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-ssh-key-200.json
+ description: SSH Key deleted successfully.
default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- 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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: |
- The user preferences to update or store.
+ - account:read_write
+ summary: Delete an SSH key
+ tags:
+ - SSH keys
+ x-akamai:
+ tabs:
+ - syntax: linode-cli sshkeys delete 42
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - delete
+ - rm
+ parameters:
+ - description: The ID of the SSHKey.
+ example: '{{sshKeyId}}'
+ in: path
+ name: sshKeyId
required: true
- content:
- application/json:
- schema:
- type: object
- description: |
- Arbitrary JSON of your choosing. Overwrites any existing preferences for this user.
+ schema:
+ example: 725
+ type: integer
+ x-akamai:
+ file-path: parameters/ssh-key-id-path.yaml
+ x-akamai:
+ file-path: paths/profile-ssh-key.yaml
+ path-info: /{apiVersion}/profile/sshkeys/{sshKeyId}
+ x-linode-cli-command: sshkeys
+ /profile/tfa-disable:
+ post:
+ 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.
- Total length cannot exceed 65,535 characters.
- maxLength: 65535
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-tfa-disable
+ operationId: post-tfa-disable
responses:
'200':
- description: Returns an object of user preferences.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
- description: An object of user preferences.
- example:
- key1: value1
- key2: value2
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-tfa-disable-200.json
+ description: TFA disabled.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Disable two factor authentication
+ tags:
+ - Two factor authentication
+ x-akamai:
+ tabs:
+ - syntax: linode-cli profile tfa-disable
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: tfa-disable
+ parameters: []
+ x-akamai:
+ file-path: paths/tfa-disable.yaml
+ path-info: /{apiVersion}/profile/tfa-disable
+ x-linode-cli-command: profile
+ /profile/tfa-enable:
+ post:
+ description: >-
+ Generates a Two Factor secret for your User. To enable TFA for your
+ User, enter the secret obtained from this operation with the [Enable two
+ factor
+ authentication](https://techdocs.akamai.com/linode-api/reference/post-tfa-confirm)
+ operation. Once enabled, logins from untrusted computers are required to
+ provide a TFA code before they are successful.
+
+
+ Run the [Answer security
+ questions](https://techdocs.akamai.com/linode-api/reference/post-security-questions)
+ operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-tfa-enable
+ operationId: post-tfa-enable
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ expiry:
+ description: When this Two Factor secret expires.
+ example: '2018-03-01T00:01:01'
+ format: date-time
+ type: string
+ secret:
+ 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
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-tfa-enable-200.yaml
+ x-example:
+ x-ref: ../examples/post-tfa-enable-200.json
+ description: Two Factor secret generated.
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",
- "key2": "value2"
- }' \
- https://api.linode.com/v4/profile/preferences
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Create a two factor secret
+ tags:
+ - Two factor authentication
+ x-akamai:
+ tabs:
+ - syntax: linode-cli profile tfa-enable
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: tfa-enable
+ parameters: []
+ x-akamai:
+ file-path: paths/tfa-enable.yaml
+ path-info: /{apiVersion}/profile/tfa-enable
+ x-linode-cli-command: profile
+ /profile/tfa-enable-confirm:
+ post:
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-tfa-confirm
+ operationId: post-tfa-confirm
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ tfa_code:
+ description: >-
+ The Two Factor code you generated with your Two Factor
+ secret. These codes are time-based, so be sure it is
+ current.
+ example: '{{tfa_code}}'
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-tfa-confirm.yaml
+ x-example:
+ x-ref: ../examples/post-tfa-confirm.json
+ description: The Two Factor code you generated with your Two Factor secret.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ scratch:
+ 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
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-tfa-confirm-200.yaml
+ x-example:
+ x-ref: ../examples/post-tfa-confirm-200.json
+ description: TFA enabled successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Enable two factor authentication
+ tags:
+ - Two factor authentication
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli profile tfa-confirm \
+ --tfa_code 213456
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: tfa-confirm
+ parameters: []
+ x-akamai:
+ file-path: paths/tfa-enable-confirm.yaml
+ path-info: /{apiVersion}/profile/tfa-enable-confirm
+ x-linode-cli-command: profile
+ /profile/tokens:
+ post:
+ 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. __Parent
+ and child accounts__ In a [parent and child
+ account](https://www.linode.com/docs/guides/parent-child-accounts/)
+ environment, the following apply:
+
+
+ - If you're using a child account parent user (proxy user), you can't
+ create this form of token. The only token available to a proxy user is
+ one that lets you run operations in a child account. These are created
+ with the [Create a proxy user
+ token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token)
+ operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-personal-access-token
+ operationId: post-personal-access-token
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ expiry:
+ description: >-
+ When this token should be valid until. If omitted, the new
+ token will be valid until it is manually revoked.
+ example: '{{expiry}}'
+ format: date-time
+ nullable: true
+ type: string
+ label:
+ description: >-
+ __Filterable__ This token's label. This is for display
+ purposes only, but can be used to more easily track what
+ you're using each token for.
+ example: '{{label}}'
+ maxLength: 100
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ scopes:
+ description: >-
+ The access
+ [scopes](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference)
+ to grant to the created token. These cannot be changed after
+ creation, and may not exceed the scopes of the acting token.
+
+
+ If omitted or entered with a wildcard character (`*`), the
+ new token will have the same scopes as the acting token.
+
+
+ Multiple scopes are separated by a space character (` `).
+
+
+ For example, `linodes:read_write account:read_only`.
+ example: '{{scopes}}'
+ format: oauth-scope
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-personal-access-token.yaml
+ x-example:
+ x-ref: ../examples/post-personal-access-token.json
+ description: Information about the requested token.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A Personal Access Token is a token generated manually to
+ access the API without going through an OAuth login. Personal
+ Access Tokens can have scopes just like OAuth tokens do, and
+ are commonly used to give access to command-line tools like
+ the Linode CLI, or when writing your own integrations.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date and time this token
+ was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ expiry:
+ description: >-
+ __Read-only__ When this token will expire. Personal
+ Access Tokens cannot be renewed, so after this time the
+ token will be completely unusable and a new token will
+ need to be generated. Tokens may be created with `null`
+ as their expiry and will never expire unless revoked.
+ example: '2018-01-01T13:46:32'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ id:
+ description: >-
+ __Read-only__ This token's unique ID, which can be used to
+ revoke it.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ This token's label. This is for display
+ purposes only, but can be used to more easily track what
+ you're using each token for.
+ example: linode-cli
+ maxLength: 100
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ scopes:
+ description: >-
+ __Read-only__ The scopes this token was created with.
+ These define what parts of the Account the token can be
+ used to access. Many command-line tools, such as the
+ [Linode CLI](https://github.com/linode/linode-cli),
+ require tokens with access to `*`. Tokens with more
+ restrictive scopes are generally more secure.
+ example: '*'
+ format: oauth-scopes
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ token:
+ description: >-
+ __Read-only__ The token used to access the API. When the
+ token is created, the full token is returned here.
+ Otherwise, only the first 16 characters are returned.
+ example: abcdefghijklmnop
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/personal-access-token.yaml
+ x-example:
+ x-ref: ../examples/post-personal-access-token-200.json
+ description: Token created successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Create a personal access token
+ tags:
+ - Personal access tokens
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli profile token-create \
+ --scopes '*' \
+ --expiry '2018-01-01T13:46:32' \
+ --label linode-cli
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: token-create
+ get:
+ description: >-
+ Returns a paginated list of Personal Access Tokens currently active for
+ your User.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-personal-access-tokens
+ operationId: get-personal-access-tokens
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ A Personal Access Token is a token generated manually to
+ access the API without going through an OAuth login.
+ Personal Access Tokens can have scopes just like OAuth
+ tokens do, and are commonly used to give access to
+ command-line tools like the Linode CLI, or when writing
+ your own integrations.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date and time this
+ token was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ expiry:
+ description: >-
+ __Read-only__ When this token will expire. Personal
+ Access Tokens cannot be renewed, so after this time
+ the token will be completely unusable and a new
+ token will need to be generated. Tokens may be
+ created with `null` as their expiry and will never
+ expire unless revoked.
+ example: '2018-01-01T13:46:32'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ id:
+ description: >-
+ __Read-only__ This token's unique ID, which can be
+ used to revoke it.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ This token's label. This is for
+ display purposes only, but can be used to more
+ easily track what you're using each token for.
+ example: linode-cli
+ maxLength: 100
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ scopes:
+ description: >-
+ __Read-only__ The scopes this token was created
+ with. These define what parts of the Account the
+ token can be used to access. Many command-line
+ tools, such as the [Linode
+ CLI](https://github.com/linode/linode-cli), require
+ tokens with access to `*`. Tokens with more
+ restrictive scopes are generally more secure.
+ example: '*'
+ format: oauth-scopes
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ token:
+ description: >-
+ __Read-only__ The token used to access the API.
+ When the token is created, the full token is
+ returned here. Otherwise, only the first 16
+ characters are returned.
+ example: abcdefghijklmnop
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/personal-access-token.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-personal-access-tokens-200.yaml
+ x-example:
+ x-ref: ../examples/get-personal-access-tokens-200.json
+ description: A paginated list of active tokens.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List personal access tokens
+ tags:
+ - Personal access tokens
+ x-akamai:
+ tabs:
+ - syntax: linode-cli profile tokens-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: tokens-list
+ parameters: []
+ x-akamai:
+ file-path: paths/profile-tokens.yaml
+ path-info: /{apiVersion}/profile/tokens
+ x-linode-cli-command: profile
+ /profile/tokens/{tokenId}:
+ get:
+ description: >-
+ Returns a single Personal Access Token.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-personal-access-token
+ operationId: get-personal-access-token
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A Personal Access Token is a token generated manually to
+ access the API without going through an OAuth login. Personal
+ Access Tokens can have scopes just like OAuth tokens do, and
+ are commonly used to give access to command-line tools like
+ the Linode CLI, or when writing your own integrations.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date and time this token
+ was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ expiry:
+ description: >-
+ __Read-only__ When this token will expire. Personal
+ Access Tokens cannot be renewed, so after this time the
+ token will be completely unusable and a new token will
+ need to be generated. Tokens may be created with `null`
+ as their expiry and will never expire unless revoked.
+ example: '2018-01-01T13:46:32'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ id:
+ description: >-
+ __Read-only__ This token's unique ID, which can be used to
+ revoke it.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ This token's label. This is for display
+ purposes only, but can be used to more easily track what
+ you're using each token for.
+ example: linode-cli
+ maxLength: 100
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ scopes:
+ description: >-
+ __Read-only__ The scopes this token was created with.
+ These define what parts of the Account the token can be
+ used to access. Many command-line tools, such as the
+ [Linode CLI](https://github.com/linode/linode-cli),
+ require tokens with access to `*`. Tokens with more
+ restrictive scopes are generally more secure.
+ example: '*'
+ format: oauth-scopes
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ token:
+ description: >-
+ __Read-only__ The token used to access the API. When the
+ token is created, the full token is returned here.
+ Otherwise, only the first 16 characters are returned.
+ example: abcdefghijklmnop
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/personal-access-token.yaml
+ x-example:
+ x-ref: ../examples/get-personal-access-token-200.json
+ description: The requested token.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: Get a personal access token
+ tags:
+ - Personal access tokens
+ x-akamai:
+ tabs:
+ - syntax: linode-cli profile token-view 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: token-view
+ put:
+ description: >-
+ Updates a Personal Access Token.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/put-personal-access-token
+ operationId: put-personal-access-token
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A Personal Access Token is a token generated manually to access
+ the API without going through an OAuth login. Personal Access
+ Tokens can have scopes just like OAuth tokens do, and are
+ commonly used to give access to command-line tools like the
+ Linode CLI, or when writing your own integrations.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date and time this token
+ was created.
+ example: '{{created}}'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ expiry:
+ description: >-
+ __Read-only__ When this token will expire. Personal Access
+ Tokens cannot be renewed, so after this time the token will
+ be completely unusable and a new token will need to be
+ generated. Tokens may be created with `null` as their
+ expiry and will never expire unless revoked.
+ example: '{{expiry}}'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ id:
+ description: >-
+ __Read-only__ This token's unique ID, which can be used to
+ revoke it.
+ example: '{{id}}'
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ This token's label. This is for display
+ purposes only, but can be used to more easily track what
+ you're using each token for.
+ example: '{{label}}'
+ maxLength: 100
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ scopes:
+ description: >-
+ __Read-only__ The scopes this token was created with. These
+ define what parts of the Account the token can be used to
+ access. Many command-line tools, such as the [Linode
+ CLI](https://github.com/linode/linode-cli), require tokens
+ with access to `*`. Tokens with more restrictive scopes are
+ generally more secure.
+ example: '{{scopes}}'
+ format: oauth-scopes
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ token:
+ description: >-
+ __Read-only__ The token used to access the API. When the
+ token is created, the full token is returned here.
+ Otherwise, only the first 16 characters are returned.
+ example: '{{token}}'
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/personal-access-token.yaml
+ x-example:
+ x-ref: ../examples/put-personal-access-token.json
+ description: The fields to update.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ A Personal Access Token is a token generated manually to
+ access the API without going through an OAuth login. Personal
+ Access Tokens can have scopes just like OAuth tokens do, and
+ are commonly used to give access to command-line tools like
+ the Linode CLI, or when writing your own integrations.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date and time this token
+ was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ expiry:
+ description: >-
+ __Read-only__ When this token will expire. Personal
+ Access Tokens cannot be renewed, so after this time the
+ token will be completely unusable and a new token will
+ need to be generated. Tokens may be created with `null`
+ as their expiry and will never expire unless revoked.
+ example: '2018-01-01T13:46:32'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 6
+ id:
+ description: >-
+ __Read-only__ This token's unique ID, which can be used to
+ revoke it.
+ example: 123
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ This token's label. This is for display
+ purposes only, but can be used to more easily track what
+ you're using each token for.
+ example: linode-cli
+ maxLength: 100
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ scopes:
+ description: >-
+ __Read-only__ The scopes this token was created with.
+ These define what parts of the Account the token can be
+ used to access. Many command-line tools, such as the
+ [Linode CLI](https://github.com/linode/linode-cli),
+ require tokens with access to `*`. Tokens with more
+ restrictive scopes are generally more secure.
+ example: '*'
+ format: oauth-scopes
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ token:
+ description: >-
+ __Read-only__ The token used to access the API. When the
+ token is created, the full token is returned here.
+ Otherwise, only the first 16 characters are returned.
+ example: abcdefghijklmnop
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/personal-access-token.yaml
+ x-example:
+ x-ref: ../examples/get-personal-access-token-200.json
+ description: Token updated successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Update a personal access token
+ tags:
+ - Personal access tokens
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli profile token-update 123 \
+ --label linode-cli
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: token-update
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/delete-personal-access-token
+ operationId: delete-personal-access-token
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-personal-access-token-200.json
+ description: Token revoked successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Revoke a personal access token
+ tags:
+ - Personal access tokens
+ x-akamai:
+ tabs:
+ - syntax: linode-cli profile token-delete 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: token-delete
+ parameters:
+ - description: The ID of the token to access.
+ example: '{{tokenId}}'
+ in: path
+ name: tokenId
+ required: true
+ schema:
+ example: 268
+ type: integer
+ x-akamai:
+ file-path: parameters/token-id-path.yaml
+ x-akamai:
+ file-path: paths/profile-token.yaml
+ path-info: /{apiVersion}/profile/tokens/{tokenId}
+ x-linode-cli-command: profile
+components:
+ x-stackQL-resources:
+ profile:
+ id: linode.profile.profile
+ name: profile
+ title: Profile
+ methods:
+ get_profile:
+ operation:
+ $ref: '#/paths/~1profile/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_profile:
+ operation:
+ $ref: '#/paths/~1profile/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_user_preferences:
+ operation:
+ $ref: '#/paths/~1profile~1preferences/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_user_preferences:
+ operation:
+ $ref: '#/paths/~1profile~1preferences/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/profile/methods/get_profile'
+ insert: []
+ update: []
+ delete: []
+ replace:
+ - $ref: '#/components/x-stackQL-resources/profile/methods/put_profile'
+ apps:
+ id: linode.profile.apps
+ name: apps
+ title: Apps
+ methods:
+ get_profile_apps:
+ operation:
+ $ref: '#/paths/~1profile~1apps/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_profile_app:
+ operation:
+ $ref: '#/paths/~1profile~1apps~1{appId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_profile_app:
+ operation:
+ $ref: '#/paths/~1profile~1apps~1{appId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/apps/methods/get_profile_app'
+ - $ref: '#/components/x-stackQL-resources/apps/methods/get_profile_apps'
+ insert: []
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/apps/methods/delete_profile_app'
+ replace: []
+ trusted_devices:
+ id: linode.profile.trusted_devices
+ name: trusted_devices
+ title: Trusted Devices
+ methods:
+ get_devices:
+ operation:
+ $ref: '#/paths/~1profile~1devices/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_trusted_device:
+ operation:
+ $ref: '#/paths/~1profile~1devices~1{deviceId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_trusted_device:
+ operation:
+ $ref: '#/paths/~1profile~1devices~1{deviceId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/trusted_devices/methods/get_trusted_device
+ - $ref: >-
+ #/components/x-stackQL-resources/trusted_devices/methods/get_devices
+ insert: []
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/trusted_devices/methods/delete_trusted_device
+ replace: []
+ grants:
+ id: linode.profile.grants
+ name: grants
+ title: Grants
+ methods:
+ get_profile_grants:
+ operation:
+ $ref: '#/paths/~1profile~1grants/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/grants/methods/get_profile_grants'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ logins:
+ id: linode.profile.logins
+ name: logins
+ title: Logins
+ methods:
+ get_profile_logins:
+ operation:
+ $ref: '#/paths/~1profile~1logins/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_profile_login:
+ operation:
+ $ref: '#/paths/~1profile~1logins~1{loginId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/logins/methods/get_profile_login'
+ - $ref: '#/components/x-stackQL-resources/logins/methods/get_profile_logins'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ phone_number:
+ id: linode.profile.phone_number
+ name: phone_number
+ title: Phone Number
+ methods:
+ post_profile_phone_number:
+ operation:
+ $ref: '#/paths/~1profile~1phone-number/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_profile_phone_number:
+ operation:
+ $ref: '#/paths/~1profile~1phone-number/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_profile_phone_number_verify:
+ operation:
+ $ref: '#/paths/~1profile~1phone-number~1verify/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select: []
+ insert: []
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/phone_number/methods/delete_profile_phone_number
+ replace: []
+ security_questions:
+ id: linode.profile.security_questions
+ name: security_questions
+ title: Security Questions
+ methods:
+ post_security_questions:
+ operation:
+ $ref: '#/paths/~1profile~1security-questions/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_security_questions:
+ operation:
+ $ref: '#/paths/~1profile~1security-questions/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.security_questions
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/security_questions/methods/get_security_questions
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ ssh_keys:
+ id: linode.profile.ssh_keys
+ name: ssh_keys
+ title: Ssh Keys
+ methods:
+ post_add_ssh_key:
+ operation:
+ $ref: '#/paths/~1profile~1sshkeys/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_ssh_keys:
+ operation:
+ $ref: '#/paths/~1profile~1sshkeys/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_ssh_key:
+ operation:
+ $ref: '#/paths/~1profile~1sshkeys~1{sshKeyId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_ssh_key:
+ operation:
+ $ref: '#/paths/~1profile~1sshkeys~1{sshKeyId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_ssh_key:
+ operation:
+ $ref: '#/paths/~1profile~1sshkeys~1{sshKeyId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/ssh_keys/methods/get_ssh_key'
+ - $ref: '#/components/x-stackQL-resources/ssh_keys/methods/get_ssh_keys'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/ssh_keys/methods/post_add_ssh_key'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/ssh_keys/methods/delete_ssh_key'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/ssh_keys/methods/put_ssh_key'
+ two_factor_authentication:
+ id: linode.profile.two_factor_authentication
+ name: two_factor_authentication
+ title: Two Factor Authentication
+ methods:
+ post_tfa_disable:
+ operation:
+ $ref: '#/paths/~1profile~1tfa-disable/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_tfa_enable:
+ operation:
+ $ref: '#/paths/~1profile~1tfa-enable/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_tfa_confirm:
+ operation:
+ $ref: '#/paths/~1profile~1tfa-enable-confirm/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select: []
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ personal_access_tokens:
+ id: linode.profile.personal_access_tokens
+ name: personal_access_tokens
+ title: Personal Access Tokens
+ methods:
+ post_personal_access_token:
+ operation:
+ $ref: '#/paths/~1profile~1tokens/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_personal_access_tokens:
+ operation:
+ $ref: '#/paths/~1profile~1tokens/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_personal_access_token:
+ operation:
+ $ref: '#/paths/~1profile~1tokens~1{tokenId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_personal_access_token:
+ operation:
+ $ref: '#/paths/~1profile~1tokens~1{tokenId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_personal_access_token:
+ operation:
+ $ref: '#/paths/~1profile~1tokens~1{tokenId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/personal_access_tokens/methods/get_personal_access_token
+ - $ref: >-
+ #/components/x-stackQL-resources/personal_access_tokens/methods/get_personal_access_tokens
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/personal_access_tokens/methods/post_personal_access_token
+ update: []
+ delete:
+ - $ref: >-
+ #/components/x-stackQL-resources/personal_access_tokens/methods/delete_personal_access_token
+ replace:
+ - $ref: >-
+ #/components/x-stackQL-resources/personal_access_tokens/methods/put_personal_access_token
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/regions.yaml b/providers/src/linode/v00.00.00000/services/regions.yaml
index 6cfeb786..db03d332 100644
--- a/providers/src/linode/v00.00.00000/services/regions.yaml
+++ b/providers/src/linode/v00.00.00000/services/regions.yaml
@@ -1,385 +1,923 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
info:
- version: 4.147.0
- title: Linode API - regions
- description: regions
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- Region:
- type: object
- description: An area where Linode services are available.
- properties:
- id:
- readOnly: true
- type: string
- description: The unique ID of this Region.
+ title: regions API
+ description: linode regions API
+ version: 4.208.1
+paths:
+ /regions:
+ get:
+ description: >-
+ Lists the regions available for Linode services. Not all services are
+ guaranteed to be available in all regions.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-regions
+ operationId: get-regions
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: An area where Linode services are available.
+ properties:
+ capabilities:
+ description: A list of capabilities of this region.
+ example:
+ - Linodes
+ - NodeBalancers
+ - Block Storage
+ - Object Storage
+ - Placement Groups
+ - Block Storage Encryption
+ - Linode Interfaces
+ items:
+ type: string
+ type: array
+ x-linode-cli-display: 4
+ country:
+ description: >-
+ __Filterable__ The country where this region
+ resides.
+ example: us
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ id:
+ description: The unique ID of this Region.
+ example: us-east
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ Detailed location information for this region,
+ including city, state or region, and country.
+ example: Newark, NJ, USA
+ type: string
+ x-linode-cli-display: 2
+ monitors:
+ additionalProperties: false
+ description: >-
+ __Beta__ Lists the services in this region that
+ support metrics and alerts use with Akamai Cloud
+ Pulse (ACLP).
+
+
+ > 📘
+
+ >
+
+ > The ACLP service is currently beta. This object is
+ only returned in a response if you're participating
+ in the ACLP beta. Contact your account team for more
+ information.
+ properties:
+ alerts:
+ description: >-
+ Each `service_type` supported for use in
+ managing ACLP
+ [alerts](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type)
+ in this region. A `service_type` is the
+ identifier for the Akamai Cloud Computing
+ service. Currently, only the Managed Databases
+ (`dbaas`) service is supported.
+ enum:
+ - dbaas
+ example:
+ - dbaas
+ items:
+ type: string
+ type: array
+ metrics:
+ description: >-
+ Each `service_type` supported for use in
+ managing ACLP
+ [metrics](https://techdocs.akamai.com/linode-api/reference/get-dashboards-all)
+ in this region. A `service_type` is the
+ identifier for the Akamai Cloud Computing
+ service. Currently, only the Managed Databases
+ (`dbaas`) service is supported.
+ enum:
+ - dbaas
+ example:
+ - dbaas
+ items:
+ type: string
+ type: array
+ required:
+ - alerts
+ - metrics
+ type: object
+ x-akamai:
+ status: BETA
+ placement_group_limits:
+ additionalProperties: false
+ description: >-
+ The limits for [placement
+ groups](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/)
+ in this region.
+ properties:
+ maximum_linodes_per_flexible_pg:
+ description: >-
+ The maximum number of Linodes you can include in
+ a placement group, when that placement group
+ uses a `placement_group_policy` of `flexible`.
+ Displayed as `null` if you don't have a limit.
+ See [Create placement
+ group](https://techdocs.akamai.com/linode-api/reference/post-placement-group)
+ for more information on
+ `placement_group_policy`.
+ example: 5
+ nullable: true
+ type: integer
+ maximum_linodes_per_pg:
+ description: >-
+ The maximum number of Linodes you can include in
+ a placement group, when that placement group
+ uses a `placement _group_policy` of `strict`.
+ Displayed as `null` if you don't have a limit.
+ See [Create placement
+ group](https://techdocs.akamai.com/linode-api/reference/post-placement-group)
+ for more information on
+ `placement_group_policy`.
+ example: 5
+ nullable: true
+ type: integer
+ maximum_pgs_per_customer:
+ description: >-
+ The maximum number of placement groups you can
+ have in this region. Displayed as `null` if you
+ don't have a limit.
+ example: 10
+ nullable: true
+ type: integer
+ type: object
+ x-linode-cli-display: 7
+ resolvers:
+ additionalProperties: false
+ properties:
+ ipv4:
+ description: >-
+ The IPv4 addresses for this region's DNS
+ resolvers, separated by commas.
+ example: 192.0.2.0,192.0.2.1
+ type: string
+ ipv6:
+ description: >-
+ The IPv6 addresses for this region's DNS
+ resolvers, separated by commas.
+ example: 2001:0db8::,2001:0db8::1
+ type: string
+ type: object
+ x-linode-cli-display: 6
+ site_type:
+ description: >-
+ __Filterable__ This region's site type. A `core`
+ region indicates a traditional cloud computing
+ [region](https://www.linode.com/docs/products/platform/get-started/guides/choose-a-data-center/#product-availability)
+ that offers all compute services. A `distributed`
+ region indicates sites that are globally dispersed
+ to be closer to end users and workloads. These
+ regions offer limited services.
+ enum:
+ - core
+ - distributed
+ example: core
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ status:
+ description: This region's current operational status.
+ enum:
+ - ok
+ - outage
+ example: ok
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/region.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-regions-200.yaml
+ x-example:
+ x-ref: ../examples/get-regions-200.json
+ description: Returns an array of regions.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: List regions
+ tags:
+ - Regions
+ x-akamai:
+ tabs:
+ - syntax: linode-cli regions list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-redoc-load-ids: true
+ parameters: []
+ x-akamai:
+ file-path: paths/regions.yaml
+ path-info: /{apiVersion}/regions
+ x-linode-cli-command: regions
+ /regions/availability:
+ get:
+ description: >-
+ Returns availability data for all regions.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-regions-availability
+ operationId: get-regions-availability
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - available: true
+ plan: gpu-rtx6000-1.1
+ region: us-east
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ Compute instance availability information by
+ [Type](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ and
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions).
+ properties:
+ available:
+ description: >-
+ __Filterable__ Whether the compute instance type
+ is available in the region.
+ example: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ plan:
+ description: >-
+ __Filterable__ The compute instance
+ [Type](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ ID.
+ example: gpu-rtx6000-1.1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ region:
+ description: >-
+ __Filterable__ The
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ ID.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/region-availability.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-regions-availability-200.yaml
+ description: Returns a Region Availability object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: List regions' availability
+ tags:
+ - Regions
+ x-akamai:
+ tabs:
+ - syntax: linode-cli regions list-avail
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: list-avail
+ parameters: []
+ x-akamai:
+ file-path: paths/regions-availability.yaml
+ path-info: /{apiVersion}/regions/availability
+ x-linode-cli-command: regions
+ /regions/{regionId}:
+ get:
+ description: >-
+ Returns a single Region.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-region
+ operationId: get-region
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An area where Linode services are available.
+ properties:
+ capabilities:
+ description: A list of capabilities of this region.
+ example:
+ - Linodes
+ - NodeBalancers
+ - Block Storage
+ - Object Storage
+ - Placement Groups
+ - Block Storage Encryption
+ - Linode Interfaces
+ items:
+ type: string
+ type: array
+ x-linode-cli-display: 4
+ country:
+ description: __Filterable__ The country where this region resides.
+ example: us
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ id:
+ description: The unique ID of this Region.
+ example: us-east
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ Detailed location information for this region, including
+ city, state or region, and country.
+ example: Newark, NJ, USA
+ type: string
+ x-linode-cli-display: 2
+ monitors:
+ additionalProperties: false
+ description: >-
+ __Beta__ Lists the services in this region that support
+ metrics and alerts use with Akamai Cloud Pulse (ACLP).
+
+
+ > 📘
+
+ >
+
+ > The ACLP service is currently beta. This object is only
+ returned in a response if you're participating in the ACLP
+ beta. Contact your account team for more information.
+ properties:
+ alerts:
+ description: >-
+ Each `service_type` supported for use in managing ACLP
+ [alerts](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type)
+ in this region. A `service_type` is the identifier for
+ the Akamai Cloud Computing service. Currently, only
+ the Managed Databases (`dbaas`) service is supported.
+ enum:
+ - dbaas
+ example:
+ - dbaas
+ items:
+ type: string
+ type: array
+ metrics:
+ description: >-
+ Each `service_type` supported for use in managing ACLP
+ [metrics](https://techdocs.akamai.com/linode-api/reference/get-dashboards-all)
+ in this region. A `service_type` is the identifier for
+ the Akamai Cloud Computing service. Currently, only
+ the Managed Databases (`dbaas`) service is supported.
+ enum:
+ - dbaas
+ example:
+ - dbaas
+ items:
+ type: string
+ type: array
+ required:
+ - alerts
+ - metrics
+ type: object
+ x-akamai:
+ status: BETA
+ placement_group_limits:
+ additionalProperties: false
+ description: >-
+ The limits for [placement
+ groups](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/)
+ in this region.
+ properties:
+ maximum_linodes_per_flexible_pg:
+ description: >-
+ The maximum number of Linodes you can include in a
+ placement group, when that placement group uses a
+ `placement_group_policy` of `flexible`. Displayed as
+ `null` if you don't have a limit. See [Create
+ placement
+ group](https://techdocs.akamai.com/linode-api/reference/post-placement-group)
+ for more information on `placement_group_policy`.
+ example: 5
+ nullable: true
+ type: integer
+ maximum_linodes_per_pg:
+ description: >-
+ The maximum number of Linodes you can include in a
+ placement group, when that placement group uses a
+ `placement _group_policy` of `strict`. Displayed as
+ `null` if you don't have a limit. See [Create
+ placement
+ group](https://techdocs.akamai.com/linode-api/reference/post-placement-group)
+ for more information on `placement_group_policy`.
+ example: 5
+ nullable: true
+ type: integer
+ maximum_pgs_per_customer:
+ description: >-
+ The maximum number of placement groups you can have in
+ this region. Displayed as `null` if you don't have a
+ limit.
+ example: 10
+ nullable: true
+ type: integer
+ type: object
+ x-linode-cli-display: 7
+ resolvers:
+ additionalProperties: false
+ properties:
+ ipv4:
+ description: >-
+ The IPv4 addresses for this region's DNS resolvers,
+ separated by commas.
+ example: 192.0.2.0,192.0.2.1
+ type: string
+ ipv6:
+ description: >-
+ The IPv6 addresses for this region's DNS resolvers,
+ separated by commas.
+ example: 2001:0db8::,2001:0db8::1
+ type: string
+ type: object
+ x-linode-cli-display: 6
+ site_type:
+ description: >-
+ __Filterable__ This region's site type. A `core` region
+ indicates a traditional cloud computing
+ [region](https://www.linode.com/docs/products/platform/get-started/guides/choose-a-data-center/#product-availability)
+ that offers all compute services. A `distributed` region
+ indicates sites that are globally dispersed to be closer
+ to end users and workloads. These regions offer limited
+ services.
+ enum:
+ - core
+ - distributed
+ example: core
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ status:
+ description: This region's current operational status.
+ enum:
+ - ok
+ - outage
+ example: ok
+ type: string
+ x-linode-cli-display: 5
+ type: object
+ x-akamai:
+ file-path: schemas/region.yaml
+ x-example:
+ x-ref: ../examples/get-region-200.json
+ description: A single Region object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: Get a region
+ tags:
+ - Regions
+ x-akamai:
+ tabs:
+ - syntax: linode-cli regions view us-east
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: view
+ parameters:
+ - description: ID of the Region to look up.
+ example: '{{regionId}}'
+ in: path
+ name: regionId
+ required: true
+ schema:
example: us-east
- x-linode-cli-display: 1
- label:
type: string
- description: 'Detailed location information for this Region, including city, state or region, and country.'
- example: 'Newark, NJ, USA'
- readOnly: true
- x-linode-cli-display: 2
- country:
- type: string
- description: The country where this Region resides.
- example: us
- readOnly: true
- x-linode-cli-display: 3
- capabilities:
- type: array
- items:
- type: string
- description: |
- A list of capabilities of this region.
- example:
- - Linodes
- - NodeBalancers
- - Block Storage
- - Object Storage
- readOnly: true
- x-linode-cli-display: 4
- status:
- type: string
- description: |
- This region's current operational status.
- example: ok
- enum:
- - ok
- - outage
- readOnly: true
- x-linode-cli-display: 5
- resolvers:
- type: object
- readOnly: true
- x-linode-cli-display: 6
- properties:
- ipv4:
- type: string
- description: |
- The IPv4 addresses for this region's DNS resolvers, separated by commas.
- example: '192.0.2.0,192.0.2.1'
- readOnly: true
- ipv6:
- type: string
- description: |
- The IPv6 addresses for this region's DNS resolvers, separated by commas.
- example: '2001:0db8::,2001:0db8::1'
- readOnly: true
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
+ x-akamai:
+ file-path: parameters/region-id-path.yaml
+ x-akamai:
+ file-path: paths/region.yaml
+ path-info: /{apiVersion}/regions/{regionId}
+ x-linode-cli-command: regions
+ /regions/{regionId}/availability:
+ get:
+ description: >-
+ Returns availability data for a single Region.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/get-region-availability
+ operationId: get-region-availability
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
+ additionalProperties: false
+ description: >-
+ Compute instance availability information by
+ [Type](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ and
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions).
+ properties:
+ available:
+ description: >-
+ __Filterable__ Whether the compute instance type is
+ available in the region.
+ example: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ plan:
+ description: >-
+ __Filterable__ The compute instance
+ [Type](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ ID.
+ example: gpu-rtx6000-1.1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ region:
+ description: >-
+ __Filterable__ The
+ [Region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ ID.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/region-availability.yaml
+ type: array
+ x-akamai:
+ file-path: schemas/added-get-region-availability-200.yaml
+ x-example:
+ x-ref: ../examples/get-region-availability-200.json
+ description: The availability data for a single Region.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: Get a region's availability
+ tags:
+ - Regions
+ x-akamai:
+ tabs:
+ - syntax: linode-cli regions view-avail us-east
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: view-avail
+ parameters:
+ - description: ID of the Region to look up.
+ example: '{{regionId}}'
+ in: path
+ name: regionId
+ required: true
+ schema:
+ example: us-east
+ type: string
+ x-akamai:
+ file-path: parameters/region-id-path.yaml
+ x-akamai:
+ file-path: paths/region-availability.yaml
+ path-info: /{apiVersion}/regions/{regionId}/availability
+ x-linode-cli-command: regions
+components:
x-stackQL-resources:
regions:
id: linode.regions.regions
name: regions
title: Regions
methods:
- getRegions:
+ get_regions:
operation:
$ref: '#/paths/~1regions/get'
response:
mediaType: application/json
openAPIDocKey: '200'
- objectKey: $.data
- _getRegions:
+ get_region:
operation:
- $ref: '#/paths/~1regions/get'
+ $ref: '#/paths/~1regions~1{regionId}/get'
response:
mediaType: application/json
openAPIDocKey: '200'
- getRegion:
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/regions/methods/get_region'
+ - $ref: '#/components/x-stackQL-resources/regions/methods/get_regions'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ availability:
+ id: linode.regions.availability
+ name: availability
+ title: Availability
+ methods:
+ get_regions_availability:
operation:
- $ref: '#/paths/~1regions~1{regionId}/get'
+ $ref: '#/paths/~1regions~1availability/get'
response:
mediaType: application/json
openAPIDocKey: '200'
objectKey: $.data
- _getRegion:
+ get_region_availability:
operation:
- $ref: '#/paths/~1regions~1{regionId}/get'
+ $ref: '#/paths/~1regions~1{regionId}~1availability/get'
response:
mediaType: application/json
openAPIDocKey: '200'
sqlVerbs:
select:
- - $ref: '#/components/x-stackQL-resources/regions/methods/getRegions'
- - $ref: '#/components/x-stackQL-resources/regions/methods/getRegion'
+ - $ref: >-
+ #/components/x-stackQL-resources/availability/methods/get_region_availability
+ - $ref: >-
+ #/components/x-stackQL-resources/availability/methods/get_regions_availability
insert: []
update: []
delete: []
-paths:
- /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
- - ls
- 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}':
- 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
- parameters:
- - name: regionId
- in: path
- description: ID of the Region to look up.
- required: true
- schema:
- type: string
+ replace: []
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/support.yaml b/providers/src/linode/v00.00.00000/services/support.yaml
index 511f9832..bc1c5881 100644
--- a/providers/src/linode/v00.00.00000/services/support.yaml
+++ b/providers/src/linode/v00.00.00000/services/support.yaml
@@ -1,915 +1,1643 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
info:
- version: 4.147.0
- title: Linode API - support
- description: support
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- SupportTicket:
- type: object
- description: |
- A Support Ticket opened on your Account.
- properties:
- id:
- type: integer
- readOnly: true
- description: |
- The ID of the Support Ticket.
- example: 11223344
- x-linode-cli-display: 1
- attachments:
- type: array
- description: |
- A list of filenames representing attached files associated with this Ticket.
- readOnly: true
- items:
- type: string
- example:
- - screenshot.jpg
- - screenshot.txt
- closed:
- x-linode-filterable: true
- type: string
- nullable: true
- format: date-time
- readOnly: true
- description: |
- The date and time this Ticket was closed.
- example: '2015-06-04T16:07:03'
- closable:
- type: boolean
- description: |
- Whether the Support Ticket may be closed.
- example: false
- description:
- type: string
- readOnly: true
- description: |
- The full details of the issue or question.
- minLength: 1
- maxLength: 65000
- example: |
- I'm having trouble setting the root password on my Linode. I tried following the instructions but something is not working and I'm not sure what I'm doing wrong. Can you please help me figure out how I can reset it?
- x-linode-cli-display: 5
- entity:
- type: object
- nullable: true
- readOnly: true
- description: |
- The entity this Ticket was opened for.
- x-linode-cli-display: 6
- properties:
- id:
- type: integer
- readOnly: true
- description: |
- The unique ID for this Ticket's entity.
- example: 10400
- label:
- type: string
- readOnly: true
- description: |
- The current label of this entity.
- example: linode123456
- type:
- type: string
- readOnly: true
- description: |
- The type of entity this is related to.
- example: linode
- url:
- type: string
- readOnly: true
- description: |
- The URL where you can access the object this event is for. If a relative URL, it is relative to the domain you retrieved the entity from.
- example: /v4/linode/instances/123456
- gravatar_id:
- type: string
- readOnly: true
- description: |
- The Gravatar ID of the User who opened this Ticket.
- example: 474a1b7373ae0be4132649e69c36ce30
- opened:
- x-linode-filterable: true
- type: string
- format: date-time
- readOnly: true
- description: |
- The date and time this Ticket was created.
- example: '2015-06-04T14:16:44'
- x-linode-cli-display: 4
- opened_by:
- type: string
- readOnly: true
- description: |
- The User who opened this Ticket.
- example: some_user
- x-linode-cli-display: 3
- status:
- type: string
- readOnly: true
- description: The current status of this Ticket.
- enum:
- - closed
- - new
- - open
- example: open
- summary:
- type: string
- readOnly: true
- minLength: 1
- maxLength: 64
- description: |
- The summary or title for this Ticket.
- example: |
- Having trouble resetting root password on my Linode
- x-linode-cli-display: 2
- updated:
- x-linode-filterable: true
- type: string
- format: date-time
- readOnly: true
- description: |
- The date and time this Ticket was last updated.
- example: '2015-06-04T16:07:03'
- updated_by:
- type: string
- nullable: true
- readOnly: true
- description: |
- The User who last updated this Ticket.
- example: some_other_user
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- SupportTicketRequest:
- type: object
- required:
- - summary
- - description
- description: |
- An object representing a created Support Ticket - a question or issue and request for help from the Linode support team.
- Only one of the ID attributes (`linode_id`, `domain_id`, etc.) can be set on a single Support Ticket.
- properties:
- description:
- type: string
- description: |
- The full details of the issue or question.
- minLength: 1
- maxLength: 65000
- example: |
- I'm having trouble setting the root password on my Linode. I tried following the instructions but something is not working and I'm not sure what I'm doing wrong. Can you please help me figure out how I can reset it?
- database_id:
- type: integer
- description: |
- The ID of the Managed Database this ticket is regarding, if relevant.
- domain_id:
- type: integer
- description: |
- The ID of the Domain this ticket is regarding, if relevant.
- example: null
- firewall_id:
- type: integer
- description: |
- The ID of the Firewall this ticket is regarding, if relevant.
- linode_id:
- type: integer
- description: |
- The ID of the Linode this ticket is regarding, if relevant.
- example: 123
- lkecluster_id:
- type: integer
- description: |
- The ID of the Kubernetes cluster this ticket is regarding, if relevant.
- example: 123
- longviewclient_id:
- type: integer
- description: |
- The ID of the Longview client this ticket is regarding, if relevant.
- example: null
- nodebalancer_id:
- type: integer
- description: |
- The ID of the NodeBalancer this ticket is regarding, if relevant.
- example: null
- summary:
- type: string
- minLength: 1
- maxLength: 64
- description: |
- The summary or title for this SupportTicket.
- example: |
- Having trouble resetting root password on my Linode
- managed_issue:
- type: boolean
- description: |
- Designates if this ticket is related to a [Managed service](https://www.linode.com/products/managed/). If `true`, the following constraints will apply:
- * No ID attributes (i.e. `linode_id`, `domain_id`, etc.) should be provided with this request.
- * Your account must have a [Managed service enabled](/docs/api/managed/#managed-service-enable).
- example: false
- volume_id:
- type: integer
- description: |
- The ID of the Volume this ticket is regarding, if relevant.
- example: null
- vlan:
- type: string
- description: |
- The label of the VLAN this ticket is regarding, if relevant. To view your VLANs, use the VLANs List ([GET /networking/vlans](/docs/api/networking/#vlans-list)) endpoint.
-
- Requires a specified `region` to identify the VLAN.
- example: null
- region:
- type: string
- description: |
- The [Region](/docs/api/regions/) ID for the associated VLAN this ticket is regarding.
-
- Only allowed when submitting a VLAN ticket.
- example: null
- SupportTicketReply:
- type: object
- description: |
- An object representing a reply to a Support Ticket.
- properties:
- created:
- type: string
- format: date-time
- readOnly: true
- description: |
- The date and time this Ticket reply was created.
- example: '2015-06-02T14:31:41'
- x-linode-cli-display: 3
- created_by:
- type: string
- readOnly: true
- description: |
- The User who submitted this reply.
- example: John Q. Linode
- x-linode-cli-display: 2
- description:
- type: string
- readOnly: true
- description: |
- The body of this Support Ticket reply.
- example: |
- Hello,\nI'm sorry to hear that you are having trouble resetting the root password of your Linode. Just to be sure, have you tried to follow the instructions in our online documentation? The link is here:\n \nhttps://linode.com/docs/guides/reset-the-root-password-on-your-linode/ \n\nIf you have, please reply with any additional steps you have also taken.\n\nRegards, Linode Support Team
- from_linode:
- type: boolean
- readOnly: true
- description: |
- If set to true, this reply came from a Linode employee.
- example: true
- gravatar_id:
- type: string
- readOnly: true
- description: |
- The Gravatar ID of the User who created this reply.
- example: 474a1b7373ae0be4132649e69c36ce30
- id:
- type: integer
- readOnly: true
- description: |
- The unique ID of this Support Ticket reply.
- example: 11223345
- x-linode-cli-display: 1
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- tickets:
- id: linode.support.tickets
- name: tickets
- title: Tickets
- methods:
- getTickets:
- operation:
- $ref: '#/paths/~1support~1tickets/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getTickets:
- operation:
- $ref: '#/paths/~1support~1tickets/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createTicket:
- operation:
- $ref: '#/paths/~1support~1tickets/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getTicket:
- operation:
- $ref: '#/paths/~1support~1tickets~1{ticketId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getTicket:
- operation:
- $ref: '#/paths/~1support~1tickets~1{ticketId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- closeTicket:
- operation:
- $ref: '#/paths/~1support~1tickets~1{ticketId}~1close/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/tickets/methods/getTickets'
- - $ref: '#/components/x-stackQL-resources/tickets/methods/getTicket'
- insert:
- - $ref: '#/components/x-stackQL-resources/tickets/methods/createTicket'
- update: []
- delete: []
- tickets_attachments:
- id: linode.support.tickets_attachments
- name: tickets_attachments
- title: Tickets Attachments
- methods:
- createTicketAttachment:
- operation:
- $ref: '#/paths/~1support~1tickets~1{ticketId}~1attachments/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select: []
- insert:
- - $ref: '#/components/x-stackQL-resources/tickets_attachments/methods/createTicketAttachment'
- update: []
- delete: []
- tickets_replies:
- id: linode.support.tickets_replies
- name: tickets_replies
- title: Tickets Replies
- methods:
- getTicketReplies:
- operation:
- $ref: '#/paths/~1support~1tickets~1{ticketId}~1replies/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getTicketReplies:
- operation:
- $ref: '#/paths/~1support~1tickets~1{ticketId}~1replies/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createTicketReply:
- operation:
- $ref: '#/paths/~1support~1tickets~1{ticketId}~1replies/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/tickets_replies/methods/getTicketReplies'
- insert:
- - $ref: '#/components/x-stackQL-resources/tickets_replies/methods/createTicketReply'
- update: []
- delete: []
+ title: support API
+ description: linode support API
+ version: 4.208.1
paths:
/support/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
- - ls
+ post:
+ description: >-
+ Open a support ticket. A ticket can only target a single, specific
+ entity. For example, for an issue with a specific Linode, open a ticket
+ and target it using its `linode_id`. Leave all other entities out of the
+ request or set them to `null`.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-ticket
+ operationId: post-ticket
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: >-
+ An object representing a created support ticket that contains a
+ question or issue and request for help from the Linode support
+ team.
+ properties:
+ bucket:
+ description: >-
+ The name of an Object Storage bucket entity for this ticket.
+ Run the [List Object Storage
+ buckets](https://techdocs.akamai.com/linode-api/reference/get-object-storage-buckets)
+ operation and store the `label` for the target bucket. You
+ also need to provide the specific `region` where the bucket
+ is located.
+ example: '{{bucket}}'
+ nullable: true
+ type: string
+ database_id:
+ description: >-
+ The ID of the Managed Database entity for the ticket. Run
+ the [List Managed
+ Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-instances)
+ operation and store the `id` for the target database.
+ example: '{{database_id}}'
+ nullable: true
+ type: integer
+ description:
+ description: The full details of the issue or question.
+ example: '{{description}}'
+ maxLength: 65000
+ minLength: 1
+ type: string
+ domain_id:
+ description: >-
+ The ID of the domain entity for the ticket. Run the [List
+ domains](https://techdocs.akamai.com/linode-api/reference/get-domains)
+ operation and store the `id` for the target domain.
+ example: '{{domain_id}}'
+ nullable: true
+ type: integer
+ firewall_id:
+ description: >-
+ The ID of the Firewall entity for the ticket. Run the [List
+ a Linode's
+ firewalls](https://techdocs.akamai.com/linode-api/reference/get-linode-firewalls)
+ operation and store the `id` for the target Linode firewall.
+ example: '{{firewall_id}}'
+ nullable: true
+ type: integer
+ linode_id:
+ description: >-
+ The ID of the Linode entity for the ticket. Run the [List
+ Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances)
+ operation and store the `id` for the target Linode.
+ example: '{{linode_id}}'
+ nullable: true
+ type: integer
+ lkecluster_id:
+ description: >-
+ The ID of the Linode Kubernetes Engine (LKE) cluster entity
+ for the ticket. Run the [List Kubernetes
+ clusters](https://techdocs.akamai.com/linode-api/reference/get-lke-clusters)
+ operation and store the `id` for the target LKE cluster.
+ example: '{{lkecluster_id}}'
+ nullable: true
+ type: integer
+ longviewclient_id:
+ description: >-
+ The ID of the Longview client entity for the ticket. Run the
+ [List Longview
+ clients](https://techdocs.akamai.com/linode-api/reference/get-longview-clients)
+ operation and store the `id` for the target client.
+ example: '{{longviewclient_id}}'
+ nullable: true
+ type: integer
+ managed_issue:
+ default: false
+ description: >-
+ Whether this ticket is related to a [managed
+ service](https://www.linode.com/products/managed/). If
+ `true`, the following constraints apply:
+
+
+ - You can't provide an entity, such as a `linode_id` or
+ `bucket` with this request.
+
+
+ - Your account needs a managed service
+ [enabled](https://techdocs.akamai.com/linode-api/reference/post-enable-managed-service).
+ example: '{{managed_issue}}'
+ type: boolean
+ nodebalancer_id:
+ description: >-
+ The ID of the NodeBalancer entity for the ticket. Run the
+ [List
+ NodeBalancers](https://techdocs.akamai.com/linode-api/reference/get-node-balancers)
+ operation and store the `id` for the target NodeBalancer.
+ example: '{{nodebalancer_id}}'
+ nullable: true
+ type: integer
+ region:
+ description: >-
+ The ID of the
+ [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where this ticket's target entity resides. This only applies
+ to tickets for a `vlan` or an Object Storage `bucket`.
+
+
+ > 📘
+
+ >
+
+ > Set this to the `clusterId` for a legacy Object Storage
+ `bucket`.
+ example: '{{region}}'
+ nullable: true
+ type: string
+ summary:
+ description: The summary or title for this support ticket.
+ example: '{{summary}}'
+ maxLength: 64
+ minLength: 1
+ type: string
+ vlan:
+ description: >-
+ The label of the VLAN entity for the ticket. Run the [List
+ VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans)
+ operation and store the `id` for the target VLAN. You also
+ need to provide the specific `region` where the VLAN is
+ located.
+ example: '{{vlan}}'
+ nullable: true
+ type: string
+ volume_id:
+ description: >-
+ The ID of the volume entity for the ticket. Run the [List
+ volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes)
+ operation and store the `id` for the target volume.
+ example: '{{volume_id}}'
+ nullable: true
+ type: integer
+ vpc_id:
+ description: >-
+ The ID of the VPC entity for the ticket. Run the [List
+ VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs)
+ operation and store the `id` for the target VPC.
+ example: '{{vpc_id}}'
+ nullable: true
+ type: integer
+ required:
+ - summary
+ - description
+ type: object
+ x-akamai:
+ file-path: schemas/support-ticket-request.yaml
+ x-example:
+ x-ref: ../examples/post-ticket.json
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A support ticket opened from your account.
+ properties:
+ attachments:
+ description: >-
+ __Read-only__ A list of filenames representing attached
+ files associated with this ticket.
+ items:
+ example:
+ - screenshot.jpg
+ - screenshot.txt
+ type: string
+ readOnly: true
+ type: array
+ closable:
+ description: Whether the ticket can be closed.
+ example: false
+ type: boolean
+ closed:
+ description: __Filterable__, __Read-only__ When this ticket was closed.
+ example: '2024-06-04T16:07:03'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: __Read-only__ The full details of the issue or question.
+ example: >-
+ I'm having trouble setting the root password on my Linode.
+ I tried following the instructions, but something isn't
+ working. Can you please help me figure out how I can reset
+ it?
+ maxLength: 65000
+ minLength: 1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ entity:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The ticket was opened for this entity. An
+ entity represents a specific object you've created, such
+ as a Linode or a Managed Database.
+ nullable: true
+ properties:
+ id:
+ description: >-
+ __Read-only__ The unique ID for this ticket's entity.
+ Empty if the targeted entity doesn't use an `id`.
+ example: 10400
+ readOnly: true
+ type: integer
+ label:
+ description: __Read-only__ The current label of this entity.
+ example: linode123456
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of entity.
+ enum:
+ - database
+ - domain
+ - firewall
+ - linode
+ - lkecluster
+ - managed_service
+ - nodebalancer
+ - vlan
+ - volume
+ - vpc
+ example: linode
+ readOnly: true
+ type: string
+ url:
+ description: >-
+ __Read-only__ The URL where you can access the
+ `entity`. If this is a relative URL, it's relative to
+ the domain for the entity.
+ example: /v4/linode/instances/123456
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ x-linode-cli-display: 6
+ gravatar_id:
+ description: >-
+ __Read-only__ The Gravatar ID of the user who opened this
+ ticket.
+ example: 474a1b7373ae0be4132649e69c36ce30
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The ID of the support ticket.
+ example: 11223344
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ opened:
+ description: >-
+ __Filterable__, __Read-only__ When this ticket was
+ created.
+ example: '2024-06-04T14:16:44'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ opened_by:
+ description: __Read-only__ The user who opened this ticket.
+ example: some_user
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ status:
+ description: __Read-only__ The current status of this ticket.
+ enum:
+ - closed
+ - new
+ - open
+ example: open
+ readOnly: true
+ type: string
+ summary:
+ description: __Read-only__ The summary or title for this ticket.
+ example: Having trouble resetting Linode root password.
+ maxLength: 64
+ minLength: 1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this ticket was last
+ updated.
+ example: '2024-06-04T16:07:03'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated_by:
+ description: __Read-only__ The user who last updated this ticket.
+ example: some_other_user
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/support-ticket.yaml
+ x-example:
+ x-ref: ../examples/post-ticket-200.json
+ description: Support ticket opened.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_write
+ summary: Open a support ticket
+ tags:
+ - Support tickets
+ x-akamai:
+ tabs:
+ - syntax: |-
+ 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"
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: create
+ x-linode-grant: read_write
+ get:
+ description: >-
+ Returns a collection of all support tickets opened from your account.
+ This includes tickets you've opened and tickets generated by Linode
+ customer support regarding your account. Open tickets are returned first
+ in the response.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-tickets
+ operationId: get-tickets
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Returns a paginated list of SupportTicket objects.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
data:
- type: array
items:
- $ref: '#/components/schemas/SupportTicket'
+ additionalProperties: false
+ description: A support ticket opened from your account.
+ properties:
+ attachments:
+ description: >-
+ __Read-only__ A list of filenames representing
+ attached files associated with this ticket.
+ items:
+ example:
+ - screenshot.jpg
+ - screenshot.txt
+ type: string
+ readOnly: true
+ type: array
+ closable:
+ description: Whether the ticket can be closed.
+ example: false
+ type: boolean
+ closed:
+ description: >-
+ __Filterable__, __Read-only__ When this ticket was
+ closed.
+ example: '2024-06-04T16:07:03'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: >-
+ __Read-only__ The full details of the issue or
+ question.
+ example: >-
+ I'm having trouble setting the root password on my
+ Linode. I tried following the instructions, but
+ something isn't working. Can you please help me
+ figure out how I can reset it?
+ maxLength: 65000
+ minLength: 1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ entity:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The ticket was opened for this entity.
+ An entity represents a specific object you've
+ created, such as a Linode or a Managed Database.
+ nullable: true
+ properties:
+ id:
+ description: >-
+ __Read-only__ The unique ID for this ticket's
+ entity. Empty if the targeted entity doesn't use
+ an `id`.
+ example: 10400
+ readOnly: true
+ type: integer
+ label:
+ description: __Read-only__ The current label of this entity.
+ example: linode123456
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of entity.
+ enum:
+ - database
+ - domain
+ - firewall
+ - linode
+ - lkecluster
+ - managed_service
+ - nodebalancer
+ - vlan
+ - volume
+ - vpc
+ example: linode
+ readOnly: true
+ type: string
+ url:
+ description: >-
+ __Read-only__ The URL where you can access the
+ `entity`. If this is a relative URL, it's
+ relative to the domain for the entity.
+ example: /v4/linode/instances/123456
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ x-linode-cli-display: 6
+ gravatar_id:
+ description: >-
+ __Read-only__ The Gravatar ID of the user who opened
+ this ticket.
+ example: 474a1b7373ae0be4132649e69c36ce30
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The ID of the support ticket.
+ example: 11223344
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ opened:
+ description: >-
+ __Filterable__, __Read-only__ When this ticket was
+ created.
+ example: '2024-06-04T14:16:44'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ opened_by:
+ description: __Read-only__ The user who opened this ticket.
+ example: some_user
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ status:
+ description: __Read-only__ The current status of this ticket.
+ enum:
+ - closed
+ - new
+ - open
+ example: open
+ readOnly: true
+ type: string
+ summary:
+ description: __Read-only__ The summary or title for this ticket.
+ example: Having trouble resetting Linode root password.
+ maxLength: 64
+ minLength: 1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this ticket was
+ last updated.
+ example: '2024-06-04T16:07:03'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated_by:
+ description: __Read-only__ The user who last updated this ticket.
+ example: some_other_user
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/support-ticket.yaml
+ type: array
page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-tickets-200.yaml
+ x-example:
+ x-ref: ../examples/get-tickets-200.json
+ description: Returns a paginated list of support tickets.
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}':
- 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
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_only
+ summary: List support tickets
+ tags:
+ - Support tickets
+ x-akamai:
+ tabs:
+ - syntax: linode-cli tickets list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/tickets.yaml
+ path-info: /{apiVersion}/support/tickets
+ x-linode-cli-command: tickets
+ /support/tickets/{ticketId}:
+ get:
+ description: >-
+ Returns a specific support ticket under your account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-ticket
+ operationId: get-ticket
responses:
'200':
- description: Returns a single SupportTicket object.
content:
application/json:
schema:
- $ref: '#/components/schemas/SupportTicket'
+ additionalProperties: false
+ description: A support ticket opened from your account.
+ properties:
+ attachments:
+ description: >-
+ __Read-only__ A list of filenames representing attached
+ files associated with this ticket.
+ items:
+ example:
+ - screenshot.jpg
+ - screenshot.txt
+ type: string
+ readOnly: true
+ type: array
+ closable:
+ description: Whether the ticket can be closed.
+ example: false
+ type: boolean
+ closed:
+ description: __Filterable__, __Read-only__ When this ticket was closed.
+ example: '2024-06-04T16:07:03'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ description: __Read-only__ The full details of the issue or question.
+ example: >-
+ I'm having trouble setting the root password on my Linode.
+ I tried following the instructions, but something isn't
+ working. Can you please help me figure out how I can reset
+ it?
+ maxLength: 65000
+ minLength: 1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ entity:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The ticket was opened for this entity. An
+ entity represents a specific object you've created, such
+ as a Linode or a Managed Database.
+ nullable: true
+ properties:
+ id:
+ description: >-
+ __Read-only__ The unique ID for this ticket's entity.
+ Empty if the targeted entity doesn't use an `id`.
+ example: 10400
+ readOnly: true
+ type: integer
+ label:
+ description: __Read-only__ The current label of this entity.
+ example: linode123456
+ readOnly: true
+ type: string
+ type:
+ description: __Read-only__ The type of entity.
+ enum:
+ - database
+ - domain
+ - firewall
+ - linode
+ - lkecluster
+ - managed_service
+ - nodebalancer
+ - vlan
+ - volume
+ - vpc
+ example: linode
+ readOnly: true
+ type: string
+ url:
+ description: >-
+ __Read-only__ The URL where you can access the
+ `entity`. If this is a relative URL, it's relative to
+ the domain for the entity.
+ example: /v4/linode/instances/123456
+ readOnly: true
+ type: string
+ readOnly: true
+ type: object
+ x-linode-cli-display: 6
+ gravatar_id:
+ description: >-
+ __Read-only__ The Gravatar ID of the user who opened this
+ ticket.
+ example: 474a1b7373ae0be4132649e69c36ce30
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The ID of the support ticket.
+ example: 11223344
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ opened:
+ description: >-
+ __Filterable__, __Read-only__ When this ticket was
+ created.
+ example: '2024-06-04T14:16:44'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ opened_by:
+ description: __Read-only__ The user who opened this ticket.
+ example: some_user
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ status:
+ description: __Read-only__ The current status of this ticket.
+ enum:
+ - closed
+ - new
+ - open
+ example: open
+ readOnly: true
+ type: string
+ summary:
+ description: __Read-only__ The summary or title for this ticket.
+ example: Having trouble resetting Linode root password.
+ maxLength: 64
+ minLength: 1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ When this ticket was last
+ updated.
+ example: '2024-06-04T16:07:03'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated_by:
+ description: __Read-only__ The user who last updated this ticket.
+ example: some_other_user
+ nullable: true
+ readOnly: true
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/support-ticket.yaml
+ x-example:
+ x-ref: ../examples/get-ticket-200.json
+ description: Returns a single support ticket.
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
- parameters:
- - name: ticketId
- in: path
- description: The ID of the Support Ticket.
- required: true
- schema:
- type: integer
- '/support/tickets/{ticketId}/attachments':
- post:
- x-linode-grant: read_write
- tags:
- - Support
- summary: Support 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.
-
- The file attachment is submitted in the request as multipart/form-data.
-
- **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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: Add an attachment.
+ - account:read_only
+ summary: Get a support ticket
+ tags:
+ - Support tickets
+ x-akamai:
+ tabs:
+ - syntax: linode-cli tickets view 11223344
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the support ticket.
+ example: '{{ticketId}}'
+ in: path
+ name: ticketId
required: true
+ schema:
+ example: 281
+ type: integer
+ x-akamai:
+ file-path: parameters/ticket-id.yaml
+ x-akamai:
+ file-path: paths/ticket.yaml
+ path-info: /{apiVersion}/support/tickets/{ticketId}
+ x-linode-cli-command: tickets
+ /support/tickets/{ticketId}/attachments:
+ post:
+ description: >-
+ Adds a file attachment to an open support ticket on your account. Use an
+ attachment to help customer support resolve your ticket. The file
+ attachment is submitted in the request as `multipart/form-data` type.
+ Accepted file extensions include: `.gif`, `.jpg`, `.jpeg`, `.pjpg`,
+ `.pjpeg`, `.tif`, `.tiff`, `.png`, `.pdf`, or `.txt`. __OAuth scopes__.
+
+ ```
+ account:read_write
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: >-
+ https://techdocs.akamai.com/linode-api/reference/post-ticket-attachment
+ operationId: post-ticket-attachment
+ requestBody:
content:
multipart/form-data:
schema:
- required:
- - file
+ additionalProperties: false
properties:
file:
- type: string
- description: |
- The local, absolute path to the file you want to attach to your Support Ticket.
+ description: >-
+ The local, absolute path to the file you want to attach to
+ your support ticket.
example: /Users/LinodeGuy/pictures/screen_shot.jpg
+ type: string
+ required:
+ - file
+ x-akamai:
+ file-path: schemas/attachment-add-form-data.yaml
+ type: object
+ required: true
responses:
'200':
- description: Attachment created.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-ticket-attachment-200.json
+ description: Attachment created.
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
- parameters:
- - name: ticketId
- in: path
- description: The ID of the Support Ticket.
- required: true
- schema:
- type: integer
- '/support/tickets/{ticketId}/close':
- 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:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
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
- parameters:
- - name: ticketId
- in: path
- description: The ID of the Support Ticket.
- required: true
- schema:
- type: integer
- '/support/tickets/{ticketId}/replies':
- get:
- x-linode-grant: read_only
- parameters:
- - name: ticketId
- in: path
- description: The ID of the Support Ticket.
- required: true
- schema:
- type: integer
- 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
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_only'
+ - account:read_write
+ summary: Create a support ticket attachment
+ tags:
+ - Attachments
+ x-akamai:
+ tabs:
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: upload-attachment
+ x-linode-cli-skip: true
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the support ticket.
+ example: '{{ticketId}}'
+ in: path
+ name: ticketId
+ required: true
+ schema:
+ example: 281
+ type: integer
+ x-akamai:
+ file-path: parameters/ticket-id.yaml
+ x-akamai:
+ file-path: paths/attachments.yaml
+ path-info: /{apiVersion}/support/tickets/{ticketId}/attachments
+ x-linode-cli-command: tickets
+ /support/tickets/{ticketId}/close:
+ post:
+ description: >-
+ Closes a support ticket you have access to modify.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-close-ticket
+ operationId: post-close-ticket
responses:
'200':
- description: Returns a paginated list of SupportTicketReply objects.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-close-ticket-200.json
+ description: Support ticket closed successfully.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
properties:
- data:
- type: array
+ errors:
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
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
- requestBody:
- description: Add a reply.
+ - account:read_write
+ summary: Close a support ticket
+ tags:
+ - Support tickets
+ x-akamai:
+ tabs:
+ - syntax: linode-cli tickets close 11223344
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: close
+ x-linode-grant: read_write
+ parameters:
+ - description: The ID of the support ticket.
+ example: '{{ticketId}}'
+ in: path
+ name: ticketId
required: true
+ schema:
+ example: 281
+ type: integer
+ x-akamai:
+ file-path: parameters/ticket-id.yaml
+ x-akamai:
+ file-path: paths/close.yaml
+ path-info: /{apiVersion}/support/tickets/{ticketId}/close
+ x-linode-cli-command: tickets
+ /support/tickets/{ticketId}/replies:
+ post:
+ description: >-
+ Adds a reply to an existing support ticket.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-ticket-reply
+ operationId: post-ticket-reply
+ requestBody:
content:
application/json:
schema:
- required:
- - description
+ additionalProperties: false
properties:
description:
- type: string
- description: |
- The content of your reply.
- minLength: 1
+ description: The content of your reply.
+ example: '{{description}}'
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!
+ minLength: 1
+ type: string
+ required:
+ - description
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-ticket-reply.yaml
+ x-example:
+ x-ref: ../examples/post-ticket-reply.json
+ required: true
responses:
'200':
- description: Reply created.
content:
application/json:
schema:
- $ref: '#/components/schemas/SupportTicketReply'
+ additionalProperties: false
+ description: An object representing a reply to a support ticket.
+ properties:
+ created:
+ description: __Read-only__ When this ticket reply was created.
+ example: '2015-06-02T14:31:41'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ created_by:
+ description: __Read-only__ The user who submitted this reply.
+ example: John Q. Linode
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ description:
+ description: __Read-only__ The body of this support ticket reply.
+ example: >-
+ Hello,\nI'm sorry to hear that you're having trouble
+ resetting the root password of your Linode. Just to be
+ sure, have you tried to follow the instructions here:
+ https://techdocs.akamai.com/cloud-computing/docs/reset-the-root-password-on-a-compute-instance?
+ If you have, please reply with any additional steps you've
+ also taken.\nRegards,\nLinode Support Team
+ readOnly: true
+ type: string
+ from_linode:
+ description: >-
+ __Read-only__ If `true`, this reply came from a Linode
+ employee.
+ example: true
+ readOnly: true
+ type: boolean
+ gravatar_id:
+ description: >-
+ __Read-only__ The Gravatar ID of the user who created this
+ reply.
+ example: 474a1b7373ae0be4132649e69c36ce30
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique ID of this support ticket reply.
+ example: 11223345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ type: object
+ x-akamai:
+ file-path: schemas/support-ticket-reply.yaml
+ x-example:
+ x-ref: ../examples/post-ticket-reply-200.json
+ description: Reply created.
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!"
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Create a reply
+ tags:
+ - Replies
+ x-akamai:
+ tabs:
+ - syntax: |-
+ 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!"
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: reply
+ x-linode-grant: read_write
+ get:
+ description: >-
+ Returns a collection of replies to a support ticket on your account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-ticket-replies
+ operationId: get-ticket-replies
parameters:
- - name: ticketId
- in: path
- description: The ID of the Support Ticket.
- required: true
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
schema:
+ default: 1
+ example: 6
+ minimum: 1
type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: An object representing a reply to a support ticket.
+ properties:
+ created:
+ description: __Read-only__ When this ticket reply was created.
+ example: '2015-06-02T14:31:41'
+ format: date-time
+ readOnly: true
+ type: string
+ x-linode-cli-display: 3
+ created_by:
+ description: __Read-only__ The user who submitted this reply.
+ example: John Q. Linode
+ readOnly: true
+ type: string
+ x-linode-cli-display: 2
+ description:
+ description: __Read-only__ The body of this support ticket reply.
+ example: >-
+ Hello,\nI'm sorry to hear that you're having trouble
+ resetting the root password of your Linode. Just to
+ be sure, have you tried to follow the instructions
+ here:
+ https://techdocs.akamai.com/cloud-computing/docs/reset-the-root-password-on-a-compute-instance?
+ If you have, please reply with any additional steps
+ you've also taken.\nRegards,\nLinode Support Team
+ readOnly: true
+ type: string
+ from_linode:
+ description: >-
+ __Read-only__ If `true`, this reply came from a
+ Linode employee.
+ example: true
+ readOnly: true
+ type: boolean
+ gravatar_id:
+ description: >-
+ __Read-only__ The Gravatar ID of the user who
+ created this reply.
+ example: 474a1b7373ae0be4132649e69c36ce30
+ readOnly: true
+ type: string
+ id:
+ description: >-
+ __Read-only__ The unique ID of this support ticket
+ reply.
+ example: 11223345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ type: object
+ x-akamai:
+ file-path: schemas/support-ticket-reply.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-ticket-replies-200.yaml
+ x-example:
+ x-ref: ../examples/get-ticket-replies-200.json
+ description: Returns a paginated list of support ticket replies.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List replies
+ tags:
+ - Replies
+ x-akamai:
+ tabs:
+ - syntax: linode-cli tickets replies 11223344
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: replies
+ x-linode-grant: read_only
+ parameters:
+ - description: The ID of the support ticket.
+ example: '{{ticketId}}'
+ in: path
+ name: ticketId
+ required: true
+ schema:
+ example: 281
+ type: integer
+ x-akamai:
+ file-path: parameters/ticket-id.yaml
+ x-akamai:
+ file-path: paths/replies.yaml
+ path-info: /{apiVersion}/support/tickets/{ticketId}/replies
+ x-linode-cli-command: tickets
+components:
+ x-stackQL-resources:
+ tickets:
+ id: linode.support.tickets
+ name: tickets
+ title: Tickets
+ methods:
+ post_ticket:
+ operation:
+ $ref: '#/paths/~1support~1tickets/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_tickets:
+ operation:
+ $ref: '#/paths/~1support~1tickets/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_ticket:
+ operation:
+ $ref: '#/paths/~1support~1tickets~1{ticketId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_ticket_attachment:
+ operation:
+ $ref: '#/paths/~1support~1tickets~1{ticketId}~1attachments/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_close_ticket:
+ operation:
+ $ref: '#/paths/~1support~1tickets~1{ticketId}~1close/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/tickets/methods/get_ticket'
+ - $ref: '#/components/x-stackQL-resources/tickets/methods/get_tickets'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/tickets/methods/post_ticket'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/tickets/methods/post_close_ticket'
+ replace: []
+ ticket_replies:
+ id: linode.support.ticket_replies
+ name: ticket_replies
+ title: Ticket Replies
+ methods:
+ post_ticket_reply:
+ operation:
+ $ref: '#/paths/~1support~1tickets~1{ticketId}~1replies/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_ticket_replies:
+ operation:
+ $ref: '#/paths/~1support~1tickets~1{ticketId}~1replies/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/ticket_replies/methods/get_ticket_replies
+ insert:
+ - $ref: >-
+ #/components/x-stackQL-resources/ticket_replies/methods/post_ticket_reply
+ update: []
+ delete: []
+ replace: []
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/tags.yaml b/providers/src/linode/v00.00.00000/services/tags.yaml
index 5c173a22..f29f9515 100644
--- a/providers/src/linode/v00.00.00000/services/tags.yaml
+++ b/providers/src/linode/v00.00.00000/services/tags.yaml
@@ -1,434 +1,2047 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
info:
- version: 4.147.0
- title: Linode API - tags
- description: tags
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- Tag:
- type: object
- description: |
- A tag that has been applied to an object on your Account. Tags are currently for organizational purposes only.
- properties:
- label:
- type: string
- description: |
- A Label used for organization of objects on your Account.
- example: example tag
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- tags:
- id: linode.tags.tags
- name: tags
- title: Tags
- methods:
- getTags:
- operation:
- $ref: '#/paths/~1tags/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getTags:
- operation:
- $ref: '#/paths/~1tags/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createTag:
- operation:
- $ref: '#/paths/~1tags/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteTag:
- operation:
- $ref: '#/paths/~1tags~1{label}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/tags/methods/getTags'
- insert:
- - $ref: '#/components/x-stackQL-resources/tags/methods/createTag'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/tags/methods/deleteTag'
+ title: tags API
+ description: linode tags API
+ version: 4.208.1
paths:
/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
- - ls
- 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.
+ description: >-
+ Creates a new tag and lets you optionally add it to specific objects.
+ Tags are labels you can attach to objects in your account. Use them to
+ specify and group attributes of objects that are relevant to you.
+ Currently, you can add a tag to your `linodes`, your `nodebalancers`,
+ the `domains` for your Linodes, and the `volumes` on your Linodes.
- **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'
+
+ > 📘
+
+ >
+
+ > - This operation can only be accessed by account users with
+ _unrestricted_ access.
+
+ >
+
+ > - If you don't add a tag to a supported object with this operation,
+ you can use that object's update operation to later add the tag you
+ created.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-tag
+ operationId: post-tag
requestBody:
- description: |
- The tag to create, and optionally the objects to tag.
content:
application/json:
+ example:
+ domains:
+ - 564
+ - 565
+ label: example tag
+ linodes:
+ - 123
+ - 456
+ nodebalancers:
+ - 10301
+ - 10501
+ volumes:
+ - 9082
+ - 10003
schema:
- type: object
- required:
- - label
+ additionalProperties: false
properties:
+ domains:
+ description: >-
+ The `id` values for the domains where you want to apply the
+ tag. You need `read_write` access to each domain. If you
+ don't, the API won't create the tag and you'll receive an
+ error. You can run the [List
+ domains](https://techdocs.akamai.com/linode-api/reference/get-domains)
+ operation to store the `id` for desired domains and to
+ review any `tags` currently applied.
+ example:
+ - 564
+ - 565
+ items:
+ type: integer
+ type: array
label:
- type: string
- description: |
- The new Tag.
- minLength: 3
+ description: The name of your tag. This is used for display purposes.
+ example: '{{label}}'
maxLength: 50
- example: example tag
+ minLength: 3
+ type: string
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.
+ description: >-
+ The `id` values for the Linodes where you want to apply the
+ tag. You need `read_write` access to each Linode. If you
+ don't, the API won't create the tag and you'll receive an
+ error. You can run the [List
+ Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances)
+ operation to store the `id` for desired Linodes and to
+ review any `tags` currently applied.
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
+ nodebalancers:
+ description: >-
+ The `id` values for the NodeBalancers where you want to
+ apply the tag. You need `read_write` access to each
+ NodeBalancer. If you don't, the API won't create the tag and
+ you'll receive an error. You can run the [List
+ NodeBalancers](https://techdocs.akamai.com/linode-api/reference/get-node-balancers)
+ operation to store the `id` for desired NodeBalancers and to
+ review any `tags` currently applied.
+ example:
+ - 10301
+ - 10501
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.
+ type: array
+ volumes:
+ description: >-
+ The `id` values for the Linode volumes where you want to
+ apply the tag. You need `read_write` access to each volume.
+ If you don't, the API won't create the tag and you'll
+ receive an error. You can run the [List
+ volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes)
+ operation to store the `id` for desired Linode volumes and
+ to review any `tags` currently applied.
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
+ type: array
+ required:
+ - label
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-tag.yaml
responses:
'200':
- description: The new Tag.
content:
application/json:
+ example:
+ label: example tag
schema:
- $ref: '#/components/schemas/Tag'
+ additionalProperties: false
+ description: >-
+ A tag you've created to apply to objects on your account. Tags
+ are for organizational purposes only.
+ properties:
+ label:
+ description: >-
+ The name of the tag used for organization of objects on
+ your account.
+ example: example tag
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/tag.yaml
+ description: The new 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}':
- delete:
- summary: Tag Delete
- description: |
- Remove a Tag from all objects and delete it.
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Create a tag
+ tags:
+ - Tags
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli tags create \
+ --label 'example tag' \
+ --linodes 123 \
+ --linodes 456 \
+ --volumes 9082 \
+ --volumes 10003
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: create
+ x-linode-grant: unrestricted only
+ get:
+ description: >-
+ Returns a paginated list of tags you've
+ [created](https://techdocs.akamai.com/linode-api/reference/post-tag) on
+ your account.
+
+ > 📘
+
+ >
+
+ > This operation can only be accessed by account users with
+ _unrestricted_ access.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- **Important**: You must be an unrestricted User in order to add or modify Tags.
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-tags
+ operationId: get-tags
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - label: example tag
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ A tag you've created to apply to objects on your
+ account. Tags are for organizational purposes only.
+ properties:
+ label:
+ description: >-
+ The name of the tag used for organization of objects
+ on your account.
+ example: example tag
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/tag.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-tags-200.yaml
+ description: A paginated list of tags.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ summary: List tags
tags:
- Tags
- operationId: deleteTag
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli tags list
+ linode-cli tags ls
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
x-linode-cli-action:
- - delete
- - rm
+ - list
+ - ls
+ x-linode-grant: unrestricted only
+ parameters: []
+ x-akamai:
+ file-path: paths/tags.yaml
+ path-info: /{apiVersion}/tags
+ x-linode-cli-command: tags
+ /tags/{tagLabel}:
+ get:
+ description: >-
+ Returns a paginated list of all objects you've tagged with the specified
+ tag. The response includes a mixed collection of all object types.
+
+
+ > 📘
+
+ >
+
+ > This operation can only be accessed by account users with
+ _unrestricted_ access. __OAuth scopes__.
+
+ ```
+ account:read_only
+ ```
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-tagged-objects
+ operationId: get-tagged-objects
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - data:
+ alerts:
+ cpu: 180
+ io: 10000
+ network_in: 10
+ network_out: 10
+ transfer_quota: 80
+ backups:
+ available: true
+ enabled: true
+ last_successful: '2018-01-01T00:01:01'
+ schedule:
+ day: Saturday
+ window: W22
+ capabilities:
+ - Block Storage Encryption
+ created: '2018-01-01T00:01:01'
+ disk_encryption: disabled
+ group: Linode-Group
+ has_user_data: true
+ host_uuid: 1a2bcd34e5f67gh8ij901234567kl89mn01opqr2
+ hypervisor: kvm
+ id: 123
+ image: linode/debian10
+ interface_generation: linode
+ ipv4:
+ - 203.0.113.1
+ - 192.0.2.1
+ ipv6: c001:d00d::1337/128
+ label: linode123
+ lke_cluster_id: 1
+ placement_group:
+ id: 528
+ label: PG_Miami_failover
+ placement_group_policy: strict
+ placement_group_type: anti-affinity:local
+ region: us-east
+ specs:
+ disk: 81920
+ gpus: 0
+ memory: 4096
+ transfer: 4000
+ vcpus: 2
+ status: running
+ tags:
+ - example tag
+ - another example
+ type: g6-standard-1
+ updated: '2018-01-01T00:01:01'
+ watchdog_enabled: true
+ type: linode
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ additionalProperties: false
+ properties:
+ data:
+ items:
+ additionalProperties: false
+ properties:
+ data:
+ description: >-
+ Details on the the specific object `type` the tag is
+ assigned to.
+ oneOf:
+ - additionalProperties: false
+ properties:
+ alerts:
+ additionalProperties: false
+ properties:
+ cpu:
+ description: >-
+ The percentage of CPU usage required to
+ trigger an alert. If the average CPU
+ usage over two hours exceeds this value,
+ we'll send you an alert. Your Linode's
+ total CPU capacity is represented as
+ 100%, multiplied by its number of cores.
+
+
+ For example, a two core Linode's CPU
+ capacity is represented as 200%. If you
+ want to be alerted at 90% of a two core
+ Linode's CPU capacity, set the alert
+ value to `180`.
+
+
+ The default value is 90% multiplied by
+ the number of cores.
+
+
+ If the value is set to `0` (zero), the
+ alert is disabled.
+ example: 180
+ type: integer
+ io:
+ description: >-
+ The amount of disk IO operation per
+ second required to trigger an alert. If
+ the average disk IO over two hours
+ exceeds this value, we'll send you an
+ alert. If set to `0` (zero), this alert
+ is disabled.
+ example: 10000
+ type: integer
+ network_in:
+ description: >-
+ The amount of incoming traffic, in
+ Mbit/s, required to trigger an alert. If
+ the average incoming traffic over two
+ hours exceeds this value, we'll send you
+ an alert. If this is set to `0` (zero),
+ the alert is disabled.
+ example: 10
+ type: integer
+ network_out:
+ description: >-
+ The amount of outbound traffic, in
+ Mbit/s, required to trigger an alert. If
+ the average outbound traffic over two
+ hours exceeds this value, we'll send you
+ an alert. If this is set to `0` (zero),
+ the alert is disabled.
+ example: 10
+ type: integer
+ transfer_quota:
+ description: >-
+ The percentage of network transfer that
+ may be used before an alert is
+ triggered. When this value is exceeded,
+ we'll alert you. If this is set to `0`
+ (zero), the alert is disabled.
+ example: 80
+ type: integer
+ type: object
+ backups:
+ additionalProperties: false
+ description: >-
+ Information about this Linode's backups
+ status. For information about available
+ backups, run [List
+ backups](https://techdocs.akamai.com/linode-api/reference/get-backups).
+ properties:
+ available:
+ description: >-
+ __Read-only__ Whether Backups for this
+ Linode are available for restoration.
+
+
+ Backups undergoing maintenance are not
+ available for restoration.
+ example: true
+ readOnly: true
+ type: boolean
+ enabled:
+ description: >-
+ __Read-only__ If this Linode has the
+ Backup service enabled. To enable
+ backups, run [Enable
+ backups](https://techdocs.akamai.com/linode-api/reference/post-enable-backups).
+ example: true
+ readOnly: true
+ type: boolean
+ last_successful:
+ description: >-
+ __Read-only__ The last successful backup
+ time. Displayed as `null` if there was
+ no previous backup.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ schedule:
+ additionalProperties: false
+ properties:
+ day:
+ description: >-
+ The day of the week that your Linode's
+ weekly backup is taken. If not set
+ manually, a day will be chosen for you.
+ Backups are taken every day, but backups
+ taken on this day are preferred when
+ selecting backups to retain for a longer
+ period.
+
+
+ If not set manually, then when backups
+ are initially enabled, this may come
+ back as `Scheduling` until the `day` is
+ automatically selected.
+ enum:
+ - Scheduling
+ - Sunday
+ - Monday
+ - Tuesday
+ - Wednesday
+ - Thursday
+ - Friday
+ - Saturday
+ example: Saturday
+ nullable: true
+ type: string
+ window:
+ description: >-
+ When your backups will be taken, in UTC.
+ A backups window is a two-hour span of
+ time in which the backup may occur.
+
+
+ For example, `W10` indicates that your
+ backups should be taken between 10:00
+ and 12:00. If you don't choose a backup
+ window, the API automatically assigns
+ one.
+
+
+ If not set manually, when backups are
+ initially enabled this may come back as
+ `Scheduling` until the `window` is
+ automatically selected.
+ enum:
+ - Scheduling
+ - W0
+ - W2
+ - W4
+ - W6
+ - W8
+ - W10
+ - W12
+ - W14
+ - W16
+ - W18
+ - W20
+ - W22
+ example: W22
+ nullable: true
+ type: string
+ type: object
+ type: object
+ capabilities:
+ description: >-
+ __Limited availability__, __Read-only__ A
+ list of capabilities this compute instance
+ supports.
+ example:
+ - Block Storage Encryption
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ status: LA
+ created:
+ description: __Read-only__ When this Linode was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ disk_encryption:
+ default: enabled
+ description: >-
+ __Read-only__ Indicates the local disk
+ encryption setting for this Linode. If the
+ Linode is part of an LKE cluster, the value
+ is `null`.
+ example: disabled
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ group:
+ deprecated: true
+ description: >-
+ __Deprecated__, __Filterable__ The group
+ label for this Linode.
+ example: Linode-Group
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ status: DEPRECATED
+ x-linode-filterable: true
+ has_user_data:
+ description: >-
+ __Read-only__ Whether this compute instance
+ was provisioned with `user_data` provided
+ via the Metadata service. See the [Create a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+ description for more information on
+ Metadata.
+ example: true
+ readOnly: true
+ type: boolean
+ host_uuid:
+ description: >-
+ __Read-only__ The Linode's host machine, as
+ a UUID.
+ example: 3a3ddd59d9a78bb8de041391075df44de62bfec8
+ format: uuid
+ readOnly: true
+ type: string
+ hypervisor:
+ description: >-
+ __Read-only__ The virtualization software
+ powering this Linode.
+ enum:
+ - kvm
+ example: kvm
+ readOnly: true
+ type: string
+ id:
+ description: >-
+ __Filterable__, __Read-only__ This Linode's
+ ID which must be provided for all operations
+ impacting this Linode.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ image:
+ allOf:
+ - description: >-
+ An Image ID to deploy the Linode Disk
+ from.
+
+
+ Run the [List
+ images](https://techdocs.akamai.com/linode-api/reference/get-images)
+ operation with authentication to view
+ all available Images. Official Linode
+ Images start with `linode/`, while your
+ Account's Images start with `private/`.
+ Creating a disk from a Private Image
+ requires `read_only` or `read_write`
+ permissions for that Image. Run the
+ [Update a user's
+ grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants)
+ operation to adjust permissions for an
+ Account Image.
+ example: linode/debian9
+ type: string
+ example: linode/debian10
+ nullable: true
+ readOnly: true
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ interface_generation:
+ description: >-
+ __Filterable__, __Read-only__ Indicates if
+ the Linode is configured to use Linode
+ interfaces (`linode`) or legacy
+ configuration profile interfaces
+ (`legacy_config`).
+ enum:
+ - legacy_config
+ - linode
+ example: linode
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 9
+ x-linode-filterable: true
+ ipv4:
+ description: >-
+ __Filterable__, __Read-only__ This Linode's
+ IPv4 Addresses. Each Linode is assigned a
+ single public IPv4 address upon creation,
+ and may get a single private IPv4 address if
+ needed. You may need to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ to get additional IPv4 addresses.
+
+
+ IPv4 addresses may be reassigned between
+ your Linodes, or shared with other Linodes.
+ See the
+ [networking](https://techdocs.akamai.com/linode-api/reference/post-firewalls)
+ operations for details.
+ example:
+ - 203.0.113.1
+ - 192.0.2.1
+ format: ipv4
+ items:
+ type: string
+ readOnly: true
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 7
+ x-linode-filterable: true
+ ipv6:
+ description: >-
+ __Read-only__ This Linode's IPv6 SLAAC
+ address. This address is specific to a
+ Linode, and may not be shared. If the Linode
+ has not been assigned an IPv6 address, the
+ return value will be `null`.
+ example: c001:d00d::1337/128
+ format: ipv6/128
+ nullable: true
+ readOnly: true
+ type: string
+ label:
+ description: >-
+ __Filterable__ Provides a name for the
+ Linode. If not provided, the API generates
+ one for it.
+
+
+ Linode labels have the following
+ constraints:
+
+
+ - It needs to begin and end with an
+ alphanumeric character.
+
+ - It can only consist of alphanumeric
+ characters, hyphens (`-`), underscores (`_`)
+ or periods (`.`).
+
+ - Cannot have two hyphens (`--`),
+ underscores (`__`) or periods (`..`) in a
+ row.
+ example: linode123
+ maxLength: 64
+ minLength: 3
+ pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster_id:
+ description: >-
+ __Read-only__ The ID of the Kubernetes
+ cluster if the Linode is part of cluster.
+ example: 1
+ nullable: true
+ readOnly: true
+ type: integer
+ placement_group:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Details on the [placement
+ group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/)
+ that this Linode belongs to. Empty if the
+ Linode isn't in a placement group.
+ nullable: true
+ properties:
+ id:
+ description: >-
+ The placement group's ID. You need to
+ provide it for all operations that
+ affect it.
+ example: 528
+ nullable: false
+ type: integer
+ x-linode-cli-display: null
+ label:
+ description: >-
+ __Filterable__ The unique name set for
+ the placement group. A label has these
+ constraints:
+
+
+ - It needs to begin and end with an
+ alphanumeric character.
+
+ - It can only consist of alphanumeric
+ characters, hyphens (`-`), underscores
+ (`_`) or periods (`.`).
+ example: PG_Miami_failover
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 10
+ x-linode-filterable: true
+ placement_group_policy:
+ description: >-
+ How requests to add future compute
+ instances to your placement group are
+ handled, and whether it remains
+ compliant:
+
+
+ - `strict`. Don't assign a new compute
+ instance if it breaks the
+ grouped-together or spread-apart model
+ set by the `placement_group_type`. Use
+ this to ensure the placement group stays
+ compliant (`is_compliant: true`).
+
+ - `flexible`. Assign a new compute
+ instance, even if it breaks the
+ grouped-together or spread-apart model
+ set by the `placement_group_type`. This
+ makes the group non-compliant
+ (`is_compliant: false`). You need to
+ wait for Akamai to move the offending
+ compute instance to make it compliant
+ again, once the necessary capacity is
+ available in the region. Offers
+ flexibility to add future compute
+ instances if compliance isn't an
+ immediate concern.
+
+
+ <>
+
+
+ > 📘
+
+ >
+
+ > In rare cases, non-compliance can
+ occur with a `strict` placement group if
+ Akamai needs to failover or migrate your
+ compute instances for maintenance.
+ Fixing non-compliance for a `strict`
+ placement group is prioritized over a
+ `flexible` group.
+ enum:
+ - strict
+ - flexible
+ example: strict
+ type: string
+ x-linode-cli-display: null
+ placement_group_type:
+ description: >-
+ __Filterable__, __Read-only__ How
+ compute instances are distributed in
+ your placement group. A
+ `placement_group_type` using
+ anti-affinity (`anti-affinity:local`)
+ places compute instances in separate
+ hosts, but still in the same region.
+ This best supports the spread-apart
+ model for high availability. A
+ `placement_group_type` using affinity
+ places compute instances physically
+ close together, possibly on the same
+ host. This supports the grouped-together
+ model for low-latency.
+
+
+ > 📘
+
+ >
+
+ > Currently, only `anti_affinity:local`
+ is available for `placement_group_type`.
+ enum:
+ - anti_affinity:local
+ example: anti-affinity:local
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: null
+ x-linode-filterable: true
+ readOnly: true
+ type: object
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The
+ [region](https://techdocs.akamai.com/linode-api/reference/get-regions)
+ where the Linode deployed. A Linode's region
+ can only be changed by initiating a [cross
+ data center
+ migration](https://techdocs.akamai.com/linode-api/reference/post-migrate-linode-instance).
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ specs:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about the
+ resources available to this Linode.
+ properties:
+ disk:
+ description: >-
+ __Read-only__ The amount of storage
+ space, in MB, this Linode has access to.
+ A typical Linode divides this space
+ between a primary disk with an `image`
+ deployed to it, and a swap disk, usually
+ 512 MB. This is the default
+ configuration created when deploying a
+ Linode with an `image` through [Create a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance).
+ While this configuration is suitable for
+ 99% of use cases, if you need finer
+ control over your Linode's disks, see
+ the [List
+ disks](https://techdocs.akamai.com/linode-api/reference/get-linode-disks)
+ operations.
+ example: 81920
+ readOnly: true
+ type: integer
+ gpus:
+ description: >-
+ __Read-only__ The number of GPUs this
+ Linode has access to.
+ example: 0
+ readOnly: true
+ type: integer
+ memory:
+ description: >-
+ __Read-only__ The amount of RAM, in MB,
+ this Linode has access to.
+
+
+ Typically, a Linode boots with all of
+ its available RAM, but this can be
+ configured in a config profile. See the
+ [List config
+ profiles](https://techdocs.akamai.com/linode-api/reference/get-linode-configs)
+ operation for more information.
+ example: 4096
+ readOnly: true
+ type: integer
+ transfer:
+ description: >-
+ __Read-only__ The amount of network
+ transfer this Linode is allotted each
+ month.
+ example: 4000
+ readOnly: true
+ type: integer
+ vcpus:
+ description: >-
+ __Read-only__ The number of VCPUs this
+ Linode has access to.
+ example: 2
+ readOnly: true
+ type: integer
+ readOnly: true
+ type: object
+ status:
+ description: >-
+ __Read-only__ A brief description of this
+ Linode's current state. This field may
+ change without direct action from you. For
+ example, when a compute instance goes into
+ maintenance mode, its status is `stopped`.
+ Status is generally self-explanatory, based
+ on its name.
+
+
+ - `busy` indicates you've assigned the
+ compute instance to a [placement
+ group](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups),
+ but the compute instance is currently
+ booting. Once the boot completes, the API
+ completes the assignment and updates the
+ compute instance's `status` accordingly.
+
+ - `provisioning` indicates that the API is
+ applying operating system or Marketplace
+ applications on the compute instance.
+
+ - `billing_suspension` indicates that
+ payment is past due on the compute instance,
+ so we've suspended its use.
+ enum:
+ - running
+ - offline
+ - booting
+ - busy
+ - rebooting
+ - shutting_down
+ - provisioning
+ - deleting
+ - migrating
+ - rebuilding
+ - cloning
+ - restoring
+ - stopped
+ - billing_suspension
+ example: running
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ billing_suspension: red
+ default_: yellow
+ offline: red
+ running: green
+ x-linode-cli-display: 6
+ tags:
+ description: >-
+ __Filterable__ Tags to help you organize
+ your content.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type:
+ description: >-
+ __Read-only__ This is the [Linode
+ type](https://techdocs.akamai.com/linode-api/reference/get-linode-types)
+ that this Linode was deployed with. To
+ change a Linode's type, use [Resize a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance).
+ example: g6-standard-1
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: >-
+ __Read-only__ When this Linode was last
+ updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ watchdog_enabled:
+ description: >-
+ The watchdog, named Lassie, is a Shutdown
+ Watchdog that monitors your Linode and
+ reboots it if it powers off unexpectedly. It
+ works by issuing a boot job when your Linode
+ powers off without a shutdown job being
+ responsible. To prevent a loop, Lassie gives
+ up if there have been more than 5 boot jobs
+ issued within 15 minutes.
+ example: true
+ type: boolean
+ title: Linode
+ type: object
+ x-akamai:
+ file-path: schemas/linode.yaml
+ - additionalProperties: false
+ description: >-
+ A domain zonefile in our DNS system. You must
+ own the domain name and tell your registrar to
+ use Linode's nameservers in order for a domain
+ in our system to be treated as authoritative.
+ properties:
+ axfr_ips:
+ description: >-
+ The list of IPs that may perform a zone
+ transfer for this domain. The total combined
+ length of all data within this array cannot
+ exceed 1000 characters.
+
+
+ > 📘
+
+ >
+
+ > This is potentially dangerous, and should
+ be set to an empty list unless you intend to
+ use it.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ description:
+ description: >-
+ A description for this domain. This is for
+ display purposes only.
+ example: null
+ maxLength: 253
+ minLength: 1
+ nullable: true
+ type: string
+ domain:
+ description: >-
+ __Filterable__ The domain this domain
+ represents. 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
+ maxLength: 253
+ minLength: 1
+ pattern: >-
+ ^(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ expire_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds that may pass
+ before this domain is no longer
+ authoritative.
+
+
+ - Valid values are 0, 30, 120, 300, 3600,
+ 7200, 14400, 28800, 57600, 86400, 172800,
+ 345600, 604800, 1209600, and 2419200.
+
+
+ - Any other value is rounded up to the
+ nearest valid value.
+
+
+ - A value of 0 is equivalent to the default
+ value of 1209600.
+ example: 300
+ type: integer
+ group:
+ deprecated: true
+ description: >-
+ __Filterable__ The group this domain belongs
+ to. This is for display purposes only.
+ example: null
+ maxLength: 50
+ minLength: 1
+ nullable: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: __Read-only__ This domain's unique ID.
+ example: 1234
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ master_ips:
+ description: >-
+ The IP addresses representing the master DNS
+ for this domain. At least one value is
+ required for `type` slave domains. The total
+ combined length of all data within this
+ array cannot exceed 1000 characters.
+ example: []
+ items:
+ format: ip
+ type: string
+ type: array
+ refresh_sec:
+ default: 0
+ description: >-
+ The amount of time in seconds before this
+ domain should be refreshed.
+
+
+ - Valid values are 0, 30, 120, 300, 3600,
+ 7200, 14400, 28800, 57600, 86400, 172800,
+ 345600, 604800, 1209600, and 2419200.
+
+
+ - Any other value is rounded up to the
+ nearest valid value.
+
+
+ - A value of 0 is equivalent to the default
+ value of 14400.
+ example: 300
+ type: integer
+ retry_sec:
+ default: 0
+ description: >-
+ The interval, in seconds, at which a failed
+ refresh should be retried.
+
+
+ - Valid values are 0, 30, 120, 300, 3600,
+ 7200, 14400, 28800, 57600, 86400, 172800,
+ 345600, 604800, 1209600, and 2419200.
+
+
+ - Any other value is rounded up to the
+ nearest valid value.
+
+
+ - A value of 0 is equivalent to the default
+ value of 14400.
+ example: 300
+ type: integer
+ soa_email:
+ description: >-
+ Start of Authority email address. This is
+ required for `type` master domains.
+ example: admin@example.org
+ format: email
+ type: string
+ x-linode-cli-display: 5
+ status:
+ default: active
+ description: >-
+ Used to control whether this domain is
+ currently being rendered.
+ enum:
+ - disabled
+ - active
+ example: active
+ type: string
+ x-linode-cli-color:
+ active: green
+ default_: red
+ disabled: yellow
+ edit_mode: yellow
+ x-linode-cli-display: 4
+ tags:
+ description: >-
+ __Filterable__ An array of tags applied to
+ this object. Tags are for organizational
+ purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ ttl_sec:
+ default: 0
+ description: >-
+ "Time to Live" - the amount of time in
+ seconds that this domain's records may be
+ cached by resolvers or other domain servers.
+
+
+ - Valid values are 0, 30, 120, 300, 3600,
+ 7200, 14400, 28800, 57600, 86400, 172800,
+ 345600, 604800, 1209600, and 2419200.
+
+
+ - Any other value is rounded up to the
+ nearest valid value.
+
+
+ - A value of 0 is equivalent to the default
+ value of 86400.
+ example: 300
+ type: integer
+ type:
+ description: >-
+ Whether this domain represents the
+ authoritative source of information for the
+ domain it describes (`master`), or whether
+ it is a read-only copy of a master
+ (`slave`).
+ enum:
+ - master
+ - slave
+ example: master
+ type: string
+ x-linode-cli-display: 3
+ title: Domain
+ type: object
+ x-akamai:
+ file-path: schemas/domain.yaml
+ - additionalProperties: false
+ description: A Block Storage volume on your account.
+ properties:
+ created:
+ description: __Read-only__ When this volume was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encryption:
+ description: >-
+ __Read-only__ Whether encryption is enabled
+ on this volume.
+ enum:
+ - enabled
+ - disabled
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ filesystem_path:
+ description: >-
+ __Read-only__ The full file system path for
+ the volume, based on its `label`. The path
+ is
+ `/dev/disk/by-id/scsi-0Linode_Volume_label`.
+ example: >-
+ /dev/disk/by-id/scsi-0Linode_Volume_my-volume
+ readOnly: true
+ type: string
+ hardware_type:
+ description: >-
+ __Read-only__ The storage type of this
+ volume. This can be either `hdd` to emulate
+ a hard disk drive for the volume, or `nvme`
+ to emulate a non-volatile memory express
+ solid state drive.
+ enum:
+ - hdd
+ - nvme
+ example: nvme
+ readOnly: true
+ type: string
+ id:
+ description: >-
+ __Read-only__ The unique identifier for the
+ volume.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of the volume. A
+ `label` can be up to 32 characters long and
+ contain alphanumeric characters, hyphens,
+ and underscores. This value is also used in
+ the volume's `filesystem_path`.
+ example: my-volume
+ maxLength: 32
+ minLength: 1
+ pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linode_id:
+ description: >-
+ The unique identifier of the Linode this
+ volume is attached to, if applicable.
+ example: 12346
+ nullable: true
+ type: integer
+ x-linode-cli-display: 6
+ linode_label:
+ description: >-
+ __Read-only__ The name of the Linode this
+ volume is attached to, if applicable.
+ example: linode123
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ region:
+ description: The unique ID of this Region.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ size:
+ description: The Volume's size, in GiB.
+ example: 30
+ maximum: 10240
+ type: integer
+ x-linode-cli-display: 4
+ status:
+ description: >-
+ __Read-only__ The current status of the
+ volume. This can be one of:
+
+
+ - `creating`. The API is creating the volume
+ and it's not ready for use.
+
+
+ - `active`. The volume is online and ready
+ for use.
+
+
+ - `resizing`. The volume's capacity is being
+ upgraded.
+
+
+ - `key_rotating`. The volume's encryption
+ keys are being rotated to new values.
+ Requests to resize, delete, or clone a
+ volume fail during encryption key rotation.
+ enum:
+ - creating
+ - active
+ - resizing
+ - key_rotating
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ active: green
+ contact_support: red
+ default_: yellow
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ Any tags applied to this
+ object. Use
+ [tags](https://techdocs.akamai.com/linode-api/reference/post-tag)
+ to label and organize your cloud computing
+ resources.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: >-
+ __Read-only__ When this volume was last
+ updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: Volume
+ type: object
+ x-akamai:
+ file-path: schemas/volume.yaml
+ - additionalProperties: false
+ description: >-
+ Linode's load balancing solution. Can handle
+ multiple ports, SSL termination, and any number
+ of backends. NodeBalancer ports are configured
+ with NodeBalancer configs, and each config is
+ given one or more NodeBalancer nodes that
+ accepts traffic. The traffic should be routed
+ to the NodeBalancer's IP address, for the
+ NodeBalancer to handle routing individual
+ requests to backends.
+ properties:
+ client_conn_throttle:
+ description: >-
+ Throttle TCP connections per second for TCP,
+ HTTP, and HTTPS configurations. Set to `0`
+ (zero) to disable throttling.
+ example: 10
+ maximum: 20
+ minimum: 0
+ type: integer
+ x-linode-cli-display: 9
+ created:
+ description: >-
+ __Read-only__ When this NodeBalancer was
+ created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ hostname:
+ description: >-
+ __Read-only__ This NodeBalancer's hostname,
+ beginning with its IP address and ending
+ with _.ip.linodeusercontent.com_.
+ example: 192.0.2.1.ip.linodeusercontent.com
+ readOnly: true
+ type: string
+ x-linode-cli-display: 5
+ id:
+ description: __Read-only__ This NodeBalancer's unique ID.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ ipv4:
+ description: >-
+ __Filterable__, __Read-only__ This
+ NodeBalancer's public IPv4 address.
+ example: 203.0.113.1
+ format: ip
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ ipv6:
+ description: >-
+ __Read-only__ This NodeBalancer's public
+ IPv6 address.
+ example: null
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ label:
+ description: >-
+ __Filterable__ This NodeBalancer's label.
+ These must be unique on your Account.
+ example: balancer12345
+ maxLength: 32
+ minLength: 3
+ pattern: '[a-zA-Z0-9-_]{3,32}'
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ lke_cluster:
+ additionalProperties: false
+ description: >-
+ __Read-only__ This NodeBalancer's related
+ LKE cluster, if any. The value is `null` if
+ this NodeBalancer isn't related to an LKE
+ cluster.
+ nullable: true
+ properties:
+ id:
+ description: The ID of the related LKE cluster.
+ example: 12345
+ type: string
+ label:
+ description: The label of the related LKE cluster.
+ example: lkecluster12345
+ type: string
+ type:
+ description: __Read-only__ The type for LKE clusters.
+ example: lkecluster
+ readOnly: true
+ type: string
+ url:
+ description: >-
+ The URL where you can access the related
+ LKE cluster.
+ example: /v4/lke/clusters/12345
+ type: string
+ readOnly: true
+ type: object
+ x-linode-cli-display: 8
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The Region
+ where this NodeBalancer is located.
+ NodeBalancers only support backends in the
+ same Region.
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ tags:
+ description: >-
+ __Filterable__ An array of Tags applied to
+ this object. Tags are for organizational
+ purposes only.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ transfer:
+ additionalProperties: false
+ description: >-
+ __Read-only__ Information about the amount
+ of transfer this NodeBalancer has had so far
+ this month.
+ properties:
+ in:
+ description: >-
+ __Read-only__ The total outbound
+ transfer, in MB, used for this
+ NodeBalancer this month.
+ example: 28.91200828552246
+ nullable: true
+ readOnly: true
+ type: number
+ out:
+ description: >-
+ __Read-only__ The total inbound
+ transfer, in MB, used for this
+ NodeBalancer this month.
+ example: 3.5487728118896484
+ nullable: true
+ readOnly: true
+ type: number
+ total:
+ description: >-
+ __Read-only__ The total transfer, in MB,
+ used by this NodeBalancer this month.
+ example: 32.46078109741211
+ nullable: true
+ readOnly: true
+ type: number
+ readOnly: true
+ type: object
+ type:
+ description: __Read-only__ The type of NodeBalancer.
+ enum:
+ - common
+ - premium
+ example: premium
+ readOnly: true
+ type: string
+ x-linode-cli-display: 4
+ updated:
+ description: >-
+ __Read-only__ When this NodeBalancer was
+ last updated.
+ example: '2018-03-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: NodeBalancer
+ type: object
+ x-akamai:
+ file-path: schemas/node-balancer.yaml
+ type:
+ description: The type of object the tag is applied to.
+ enum:
+ - domain
+ - linode
+ - nodebalancer
+ - volume
+ example: linode
+ type: string
+ type: object
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-tagged-objects-200.yaml
+ description: >-
+ A paginated list of objects, organized by type, that have been
+ tagged with the requested tag.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'account:read_write'
+ - account:read_only
+ summary: List tagged objects
+ tags:
+ - Tags
+ x-akamai:
+ tabs:
+ - syntax: account:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-command: view
+ x-linode-cli-skip: true
+ delete:
+ description: >-
+ Removes a tag from all objects and deletes it.
+
+
+ > 📘
+
+ >
+
+ > This operation can only be accessed by account users with
+ _unrestricted_ access.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-tag
+ operationId: delete-tag
responses:
'200':
- description: Tag deleted.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-tag-200.json
+ description: Tag deleted.
default:
- $ref: '#/components/responses/ErrorResponse'
- parameters:
- - name: label
- in: path
- schema:
- type: string
- required: true
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ summary: Delete a tag
+ tags:
+ - Tags
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli tags delete
+ linode-cli tags rm
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: account:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - delete
+ - rm
+ parameters:
+ - description: The `label` of the tag to access.
+ example: '{{tagLabel}}'
+ in: path
+ name: tagLabel
+ required: true
+ schema:
+ type: string
+ x-akamai:
+ file-path: parameters/tag-label-path.yaml
+ x-akamai:
+ file-path: paths/tag-label.yaml
+ path-info: /{apiVersion}/tags/{tagLabel}
+ x-linode-cli-command: tags
+components:
+ x-stackQL-resources:
+ tags:
+ id: linode.tags.tags
+ name: tags
+ title: Tags
+ methods:
+ post_tag:
+ operation:
+ $ref: '#/paths/~1tags/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_tags:
+ operation:
+ $ref: '#/paths/~1tags/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_tag:
+ operation:
+ $ref: '#/paths/~1tags~1{tagLabel}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/tags/methods/get_tags'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/tags/methods/post_tag'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/tags/methods/delete_tag'
+ replace: []
+ tagged_objects:
+ id: linode.tags.tagged_objects
+ name: tagged_objects
+ title: Tagged Objects
+ methods:
+ get_tagged_objects:
+ operation:
+ $ref: '#/paths/~1tags~1{tagLabel}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: >-
+ #/components/x-stackQL-resources/tagged_objects/methods/get_tagged_objects
+ insert: []
+ update: []
+ delete: []
+ replace: []
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/view.yaml b/providers/src/linode/v00.00.00000/services/view.yaml
deleted file mode 100644
index 0494e85a..00000000
--- a/providers/src/linode/v00.00.00000/services/view.yaml
+++ /dev/null
@@ -1,1181 +0,0 @@
-openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
-info:
- version: 4.147.0
- title: Linode API - view
- description: view
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- Linode:
- type: object
- properties:
- label:
- x-linode-filterable: true
- x-linode-cli-display: 2
- type: string
- description: |
- The Linode's label is for display purposes only. If no label is provided for a Linode,
- a default will be assigned.
-
- Linode labels have the following constraints:
-
- * Must begin and end with an alphanumeric character.
- * May only consist of alphanumeric characters, dashes (`-`), underscores (`_`) or periods (`.`).
- * Cannot have two dashes (`--`), underscores (`__`) or periods (`..`) in a row.
- example: linode123
- minLength: 3
- maxLength: 64
- pattern: '^[a-zA-Z]((?!--|__|..)[a-zA-Z0-9-_.])+$'
- region:
- type: string
- x-linode-filterable: true
- readOnly: true
- description: |
- This is the [Region](/docs/api/regions/#regions-list) where the Linode was deployed. A Linode's region can only be changed by initiating a [cross data center migration](/docs/api/linode-instances/#dc-migrationpending-host-migration-initiate).
- x-linode-cli-display: 3
- example: us-east
- image:
- x-linode-filterable: true
- readOnly: true
- nullable: true
- allOf:
- - $ref: '#/components/schemas/DiskRequest/properties/image'
- x-linode-cli-display: 5
- example: linode/debian10
- type:
- type: string
- readOnly: true
- description: |
- This is the [Linode Type](/docs/api/linode-types/#types-list) that this Linode was deployed with.
- To change a Linode's Type, use [POST /linode/instances/{linodeId}/resize](/docs/api/linode-instances/#linode-resize).
- x-linode-cli-display: 4
- example: g6-standard-1
- group:
- deprecated: true
- type: string
- x-linode-filterable: true
- description: |
- A deprecated property denoting a group label for this Linode.
- example: Linode-Group
- 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
- id:
- x-linode-filterable: true
- type: integer
- description: |
- This Linode's ID which must be provided for all operations impacting this Linode.
- example: 123
- readOnly: true
- x-linode-cli-display: 1
- status:
- type: string
- description: |
- A brief description of this Linode's current state. This field may change without direct action from you. For example, when a Linode goes into maintenance mode its status will display "stopped".
- example: running
- readOnly: true
- enum:
- - running
- - offline
- - booting
- - rebooting
- - shutting_down
- - provisioning
- - deleting
- - migrating
- - rebuilding
- - cloning
- - restoring
- - stopped
- x-linode-cli-display: 6
- x-linode-cli-color:
- running: green
- offline: red
- default_: yellow
- hypervisor:
- type: string
- description: |
- The virtualization software powering this Linode.
- example: kvm
- readOnly: true
- enum:
- - kvm
- created:
- type: string
- format: date-time
- description: When this Linode was created.
- example: '2018-01-01T00:01:01'
- readOnly: true
- updated:
- type: string
- format: date-time
- description: When this Linode was last updated.
- example: '2018-01-01T00:01:01'
- readOnly: true
- ipv4:
- x-linode-filterable: true
- type: array
- format: ipv4
- items:
- type: string
- example:
- - 203.0.113.1
- - 192.0.2.1
- readOnly: true
- description: |
- This Linode's IPv4 Addresses. Each Linode is assigned a single public IPv4 address
- upon creation, and may get a single private IPv4 address if needed. You may need to
- [open a support ticket](/docs/api/support/#support-ticket-open)
- to get additional IPv4 addresses.
-
- IPv4 addresses may be reassigned between your Linodes, or shared with other Linodes.
- See the [/networking](/docs/api/networking/) endpoints for details.
- x-linode-cli-display: 7
- ipv6:
- type: string
- format: ipv6/128
- nullable: true
- description: |
- This Linode's IPv6 SLAAC address. This address is specific to a Linode, and may not be shared. If the Linode has not been assigned an IPv6 address, the return value will be `null`.
- example: 'c001:d00d::1337/128'
- readOnly: true
- specs:
- type: object
- description: Information about the resources available to this Linode.
- readOnly: true
- properties:
- disk:
- type: integer
- description: |
- The amount of storage space, in MB, this Linode has access to. A typical Linode will divide this space between a primary disk with an `image` deployed to it, and a swap disk, usually 512 MB. This is the default configuration created when deploying a Linode with an `image` through [POST /linode/instances](/docs/api/linode-instances/#linode-create). While this configuration is suitable for 99% of use cases, if you need finer control over your Linode's disks, see the [/linode/instances/{linodeId}/disks](/docs/api/linode-instances/#disks-list) endpoints.
- example: 81920
- readOnly: true
- memory:
- type: integer
- description: |
- The amount of RAM, in MB, this Linode has access to.
-
- Typically, a Linode boots with all of its available RAM, but this can be configured in a Config profile. See the [/linode/instances/{linodeId}/configs](/docs/api/linode-instances/#configuration-profiles-list) endpoints and the LinodeConfig object for more information.
- example: 4096
- readOnly: true
- vcpus:
- type: integer
- description: |
- The number of vcpus this Linode has access to.
- example: 2
- readOnly: true
- gpus:
- type: integer
- description: |
- The number of gpus this Linode has access to.
- example: 0
- readOnly: true
- transfer:
- type: integer
- description: The amount of network transfer this Linode is allotted each month.
- example: 4000
- readOnly: true
- alerts:
- type: object
- properties:
- cpu:
- type: integer
- description: |
- The percentage of CPU usage required to trigger an alert.
- If the average CPU usage over two hours exceeds this value, we'll send you an alert.
- Your Linode's total CPU capacity is represented as 100%, multiplied by its number of
- cores.
-
- For example, a two core Linode's CPU capacity is represented as 200%. If you want
- to be alerted at 90% of a two core Linode's CPU capacity, set the alert value to `180`.
-
- The default value is 90% multiplied by the number of cores.
-
- If the value is set to `0` (zero), the alert is disabled.
- example: 180
- network_in:
- type: integer
- description: |
- The amount of incoming traffic, in Mbit/s, required to trigger an alert. If the average incoming traffic over two hours exceeds this value, we'll send you an alert. If this is set to `0` (zero), the alert is disabled.
- example: 10
- network_out:
- type: integer
- description: |
- The amount of outbound traffic, in Mbit/s, required to trigger an alert. If the average outbound traffic over two hours exceeds this value, we'll send you an alert. If this is set to `0` (zero), the alert is disabled.
- example: 10
- transfer_quota:
- type: integer
- description: |
- The percentage of network transfer that may be used before an alert is triggered. When this value is exceeded, we'll alert you. If this is set to `0` (zero), the alert is disabled.
- example: 80
- io:
- type: integer
- description: |
- The amount of disk IO operation per second required to trigger an alert. If the average disk IO over two hours exceeds this value, we'll send you an alert. If set to `0` (zero), this alert is disabled.
- example: 10000
- backups:
- type: object
- description: |
- Information about this Linode's backups status. For information about available backups, see [/linode/instances/{linodeId}/backups](/docs/api/linode-instances/#backups-list).
- properties:
- enabled:
- type: boolean
- description: |
- If this Linode has the Backup service enabled. To enable backups, see [POST /linode/instances/{linodeId}/backups/enable](/docs/api/linode-instances/#backups-enable).
- example: true
- readOnly: true
- available:
- type: boolean
- description: |
- Whether Backups for this Linode are available for restoration.
-
- Backups undergoing maintenance are not available for restoration.
- example: true
- readOnly: true
- schedule:
- type: object
- properties:
- day:
- type: string
- nullable: true
- description: |
- The day of the week that your Linode's weekly Backup is taken.
- If not set manually, a day will be chosen for you. Backups
- are taken every day, but backups taken on this day are
- preferred when selecting backups to retain for a longer period.
-
-
- If not set manually, then when backups are initially enabled, this
- may come back as `Scheduling` until the `day` is automatically selected.
- example: Saturday
- enum:
- - Scheduling
- - Sunday
- - Monday
- - Tuesday
- - Wednesday
- - Thursday
- - Friday
- - Saturday
- window:
- type: string
- nullable: true
- description: |
- The window in which your backups will be taken, in UTC. A
- backups window is a two-hour span of time in which the backup
- may occur.
-
-
- For example, `W10` indicates that your backups should be
- taken between 10:00 and 12:00. If you do not choose a backup
- window, one will be selected for you automatically.
-
-
- If not set manually, when backups are initially enabled this
- may come back as `Scheduling` until the `window` is automatically selected.
- example: W22
- enum:
- - Scheduling
- - W0
- - W2
- - W4
- - W6
- - W8
- - W10
- - W12
- - W14
- - W16
- - W18
- - W20
- - W22
- last_successful:
- type: string
- format: date-time
- description: The last successful backup date. 'null' if there was no previous backup.
- readOnly: true
- example: '2018-01-01T00:01:01'
- watchdog_enabled:
- type: boolean
- description: |
- The watchdog, named Lassie, is a Shutdown Watchdog that monitors your Linode and will reboot it if it powers off unexpectedly. It works by issuing a boot job when your Linode powers off without a shutdown job being responsible.
- To prevent a loop, Lassie will give up if there have been more than 5 boot jobs issued within 15 minutes.
- example: true
- host_uuid:
- type: string
- format: uuid
- description: 'The Linode''s host machine, as a UUID.'
- readOnly: true
- example: 3a3ddd59d9a78bb8de041391075df44de62bfec8
- Domain:
- type: object
- description: |
- A domain zonefile in our DNS system. You must own the domain name and tell your registrar to use Linode's nameservers in order for a domain in our system to be treated as authoritative.
- properties:
- id:
- type: integer
- description: This Domain's unique ID
- example: 1234
- readOnly: true
- x-linode-cli-display: 1
- type:
- type: string
- enum:
- - master
- - slave
- description: |
- Whether this Domain represents the authoritative source of information for the domain it describes ("master"), or whether it is a read-only copy of a master ("slave").
- example: master
- x-linode-cli-display: 3
- 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: 253
- description: |
- The domain this Domain represents. 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
- x-linode-cli-display: 2
- group:
- deprecated: true
- type: string
- description: |
- The group this Domain belongs to. This is for display purposes only.
- example: null
- minLength: 1
- maxLength: 50
- x-linode-filterable: true
- status:
- type: string
- enum:
- - disabled
- - active
- default: active
- description: |
- Used to control whether this Domain is currently being rendered.
- example: active
- x-linode-cli-display: 4
- x-linode-cli-color:
- active: green
- disabled: yellow
- edit_mode: yellow
- default_: red
- description:
- type: string
- minLength: 1
- maxLength: 253
- description: |
- A description for this Domain. This is for display purposes only.
- example: null
- soa_email:
- type: string
- format: email
- description: |
- Start of Authority email address. This is required for `type` master Domains.
- example: admin@example.org
- x-linode-cli-display: 5
- retry_sec:
- type: integer
- default: 0
- description: |
- The interval, in seconds, at which a failed refresh should be retried.
-
- * Valid values are
- 0, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.
-
- * Any other value is rounded up to the nearest valid value.
-
- * A value of 0 is equivalent to the default value of 14400.
- example: 300
- master_ips:
- type: array
- items:
- type: string
- format: ip
- description: |
- The IP addresses representing the master DNS for this Domain. At least one value is required for `type` slave Domains. The total combined length of all data within this array cannot exceed 1000 characters.
- example: []
- axfr_ips:
- type: array
- items:
- type: string
- format: ip
- description: |
- The list of IPs that may perform a zone transfer for this Domain. The total combined length of all data within this array cannot exceed 1000 characters.
-
- **Note**: This is potentially dangerous, and should be set to an empty list unless you intend to use it.
- example: []
- expire_sec:
- type: integer
- default: 0
- description: |
- The amount of time in seconds that may pass before this Domain is no longer
- authoritative.
-
- * Valid values are
- 0, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.
-
- * Any other value is rounded up to the nearest valid value.
-
- * A value of 0 is equivalent to the default value of 1209600.
- example: 300
- refresh_sec:
- type: integer
- default: 0
- description: |
- The amount of time in seconds before this Domain should be refreshed.
-
- * Valid values are
- 0, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.
-
- * Any other value is rounded up to the nearest valid value.
-
- * A value of 0 is equivalent to the default value of 14400.
- example: 300
- ttl_sec:
- type: integer
- default: 0
- description: |
- "Time to Live" - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers.
- * Valid values are 0, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.
- * Any other value is rounded up to the nearest valid value.
- * A value of 0 is equivalent to the default value of 86400.
- example: 300
- 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
- Volume:
- type: object
- description: |
- A Block Storage Volume associated with your Account.
- properties:
- id:
- type: integer
- description: The unique ID of this Volume.
- example: 12345
- readOnly: true
- x-linode-cli-display: 1
- label:
- x-linode-filterable: true
- type: string
- description: |
- The Volume's label is for display purposes only.
- example: my-volume
- minLength: 1
- maxLength: 32
- pattern: '^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$'
- x-linode-cli-display: 2
- filesystem_path:
- type: string
- description: |
- The full filesystem path for the Volume based on the Volume's label. Path is /dev/disk/by-id/scsi-0Linode_Volume_ + Volume label.
- example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
- readOnly: true
- status:
- type: string
- description: |
- The current status of the volume. Can be one of:
-
- * `creating` - the Volume is being created and is not yet available
- for use.
- * `active` - the Volume is online and available for use.
- * `resizing` - the Volume is in the process of upgrading
- its current capacity.
- enum:
- - creating
- - active
- - resizing
- example: active
- readOnly: true
- x-linode-cli-display: 3
- x-linode-cli-color:
- active: green
- contact_support: red
- default_: yellow
- size:
- type: integer
- description: |
- The Volume's size, in GiB.
- maximum: 10240
- x-linode-cli-display: 4
- example: 30
- region:
- $ref: '#/components/schemas/Region/properties/id'
- x-linode-cli-display: 5
- linode_id:
- type: integer
- nullable: true
- description: |
- If a Volume is attached to a specific Linode, the ID of that Linode will be displayed here.
- example: 12346
- x-linode-cli-display: 6
- linode_label:
- type: string
- nullable: true
- description: |
- If a Volume is attached to a specific Linode, the label of that Linode will be displayed here.
- example: linode123
- x-linode-cli-display: 7
- readOnly: true
- created:
- type: string
- format: date-time
- description: When this Volume was created.
- example: '2018-01-01T00:01:01'
- readOnly: true
- updated:
- type: string
- format: date-time
- description: When this Volume was last updated.
- example: '2018-01-01T00:01:01'
- readOnly: true
- 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
- hardware_type:
- type: string
- enum:
- - hdd
- - nvme
- description: The storage type of this Volume.
- example: nvme
- readOnly: true
- NodeBalancer:
- type: object
- description: |
- Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer Configs, and each config is given one or more NodeBalancer Node that accepts traffic. The traffic should be routed to the NodeBalancer's ip address, the NodeBalancer will handle routing individual requests to backends.
- properties:
- id:
- type: integer
- description: |
- This NodeBalancer's unique ID.
- example: 12345
- readOnly: true
- x-linode-cli-display: 1
- label:
- x-linode-filterable: true
- type: string
- minLength: 3
- maxLength: 32
- pattern: '[a-zA-Z0-9-_]{3,32}'
- description: |
- This NodeBalancer's label. These must be unique on your Account.
- example: balancer12345
- x-linode-cli-display: 2
- region:
- x-linode-filterable: true
- type: string
- description: |
- The Region where this NodeBalancer is located. NodeBalancers only support backends in the same Region.
- example: us-east
- readOnly: true
- x-linode-cli-display: 3
- hostname:
- type: string
- description: |
- This NodeBalancer's hostname, beginning with its IP address and ending with _.ip.linodeusercontent.com_.
- example: 192.0.2.1.ip.linodeusercontent.com
- readOnly: true
- x-linode-cli-display: 4
- ipv4:
- x-linode-filterable: true
- type: string
- format: ip
- description: |
- This NodeBalancer's public IPv4 address.
- example: 203.0.113.1
- readOnly: true
- x-linode-cli-display: 5
- ipv6:
- type: string
- nullable: true
- format: ip
- description: |
- This NodeBalancer's public IPv6 address.
- example: null
- readOnly: true
- x-linode-cli-display: 6
- created:
- type: string
- format: date-time
- description: |
- When this NodeBalancer was created.
- example: 2018-01-01T00:01:01.000Z
- readOnly: true
- updated:
- type: string
- format: date-time
- description: |
- When this NodeBalancer was last updated.
- example: 2018-03-01T00:01:01.000Z
- readOnly: true
- client_conn_throttle:
- type: integer
- minimum: 0
- maximum: 20
- description: |
- Throttle connections per second. Set to 0 (zero) to disable throttling.
- example: 0
- x-linode-cli-display: 6
- transfer:
- type: object
- readOnly: true
- description: |
- Information about the amount of transfer this NodeBalancer has had so far this month.
- properties:
- total:
- type: number
- nullable: true
- description: |
- The total transfer, in MB, used by this NodeBalancer this month.
- example: 32.46078109741211
- readOnly: true
- out:
- type: number
- nullable: true
- description: |
- The total inbound transfer, in MB, used for this NodeBalancer this month.
- example: 3.5487728118896484
- readOnly: true
- in:
- type: number
- nullable: true
- description: |
- The total outbound transfer, in MB, used for this NodeBalancer this month.
- example: 28.91200828552246
- readOnly: true
- 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
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- DiskRequest:
- type: object
- description: Disk object request.
- properties:
- size:
- x-linode-filterable: true
- type: integer
- description: |
- The size of the Disk in MB.
-
- Images require a minimum size. Access the Image View ([GET /images/{imageID}](/docs/api/images/#image-view)) endpoint to view its size.
- example: 48640
- label:
- $ref: '#/components/schemas/Disk/properties/label'
- filesystem:
- $ref: '#/components/schemas/Disk/properties/filesystem'
- image:
- type: string
- description: |
- An Image ID to deploy the Linode Disk from.
-
- Access the Images List ([GET /images](/docs/api/images/#images-list)) endpoint with authentication to view
- all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating
- a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Access the User's
- Grant Update ([PUT /account/users/{username}/grants](/docs/api/account/#users-grants-update)) endpoint to
- adjust permissions for an Account Image.
- example: linode/debian9
- authorized_keys:
- type: array
- items:
- type: string
- writeOnly: true
- example:
- - ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer
- description: |
- A list of public SSH keys that will be automatically appended
- to the root user's `~/.ssh/authorized_keys` file when deploying from an Image.
- authorized_users:
- type: array
- items:
- type: string
- writeOnly: true
- example:
- - myUser
- - secondaryUser
- description: |
- A list of usernames. If the usernames have associated SSH keys, the keys will be appended to the root users `~/.ssh/authorized_keys` file automatically when deploying from an Image.
- root_pass:
- type: string
- format: password
- writeOnly: true
- example: aComplexP@ssword
- minLength: 7
- maxLength: 128
- description: |
- This sets the root user's password on a newly-created Linode Disk when deploying from an Image.
-
- * **Required** when creating a Linode Disk from an Image, including when using a StackScript.
-
- * 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.
- stackscript_id:
- type: integer
- example: 10079
- description: |
- A StackScript ID that will cause the referenced StackScript to be run during
- deployment of this Linode. A compatible `image` is required to use a
- StackScript. To get a list of available StackScript and their permitted Images
- see [/stackscripts](/docs/api/stackscripts/#stackscripts-list).
- This field cannot be used when deploying from a Backup or a Private Image.
- stackscript_data:
- type: object
- example:
- gh_username: linode
- description: |
- This field is required only if the StackScript being deployed requires input data from the User for successful completion. See [User Defined Fields (UDFs)](/docs/guides/writing-scripts-for-use-with-linode-stackscripts-a-tutorial/#user-defined-fields-udfs) for more details.
-
- This field is required to be valid JSON.
-
- Total length cannot exceed 65,535 characters.
- maxLength: 65535
- Region:
- type: object
- description: An area where Linode services are available.
- properties:
- id:
- readOnly: true
- type: string
- description: The unique ID of this Region.
- example: us-east
- x-linode-cli-display: 1
- label:
- type: string
- description: 'Detailed location information for this Region, including city, state or region, and country.'
- example: 'Newark, NJ, USA'
- readOnly: true
- x-linode-cli-display: 2
- country:
- type: string
- description: The country where this Region resides.
- example: us
- readOnly: true
- x-linode-cli-display: 3
- capabilities:
- type: array
- items:
- type: string
- description: |
- A list of capabilities of this region.
- example:
- - Linodes
- - NodeBalancers
- - Block Storage
- - Object Storage
- readOnly: true
- x-linode-cli-display: 4
- status:
- type: string
- description: |
- This region's current operational status.
- example: ok
- enum:
- - ok
- - outage
- readOnly: true
- x-linode-cli-display: 5
- resolvers:
- type: object
- readOnly: true
- x-linode-cli-display: 6
- properties:
- ipv4:
- type: string
- description: |
- The IPv4 addresses for this region's DNS resolvers, separated by commas.
- example: '192.0.2.0,192.0.2.1'
- readOnly: true
- ipv6:
- type: string
- description: |
- The IPv6 addresses for this region's DNS resolvers, separated by commas.
- example: '2001:0db8::,2001:0db8::1'
- readOnly: true
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- Disk:
- type: object
- properties:
- id:
- type: integer
- description: |
- This Disk's ID which must be provided for all operations impacting this Disk.
- example: 25674
- readOnly: true
- x-linode-cli-display: 1
- label:
- x-linode-filterable: true
- type: string
- description: |
- The Disk's label is for display purposes only.
- example: Debian 9 Disk
- minLength: 1
- maxLength: 48
- x-linode-cli-display: 2
- status:
- type: string
- description: |
- A brief description of this Disk's current state. This field may change without direct action from you, as a result of operations performed to the Disk or the Linode containing the Disk.
- example: ready
- readOnly: true
- enum:
- - ready
- - not ready
- - deleting
- x-linode-cli-display: 3
- x-linode-cli-color:
- ready: green
- not ready: red
- default_: yellow
- size:
- x-linode-filterable: true
- type: integer
- description: The size of the Disk in MB.
- example: 48640
- x-linode-cli-display: 4
- filesystem:
- type: string
- description: |
- The Disk filesystem can be one of:
-
- * raw - No filesystem, just a raw binary stream.
- * swap - Linux swap area.
- * ext3 - The ext3 journaling filesystem for Linux.
- * ext4 - The ext4 journaling filesystem for Linux.
- * initrd - initrd (uncompressed initrd, ext2, max 32 MB).
- example: ext4
- enum:
- - raw
- - swap
- - ext3
- - ext4
- - initrd
- x-linode-cli-display: 5
- created:
- type: string
- format: date-time
- description: When this Disk was created.
- example: '2018-01-01T00:01:01'
- readOnly: true
- updated:
- type: string
- format: date-time
- description: When this Disk was last updated.
- example: '2018-01-01T00:01:01'
- readOnly: true
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- tags:
- id: linode.view.tags
- name: tags
- title: Tags
- methods:
- getTaggedObjects:
- operation:
- $ref: '#/paths/~1tags~1{label}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getTaggedObjects:
- operation:
- $ref: '#/paths/~1tags~1{label}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/tags/methods/getTaggedObjects'
- insert: []
- update: []
- delete: []
-paths:
- '/tags/{label}':
- 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:
- - name: label
- in: path
- schema:
- type: string
- required: true
- 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'
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: |
- curl -H "Authorization: Bearer $TOKEN" \
- "https://api.linode.com/v4/tags/example tag"
diff --git a/providers/src/linode/v00.00.00000/services/volumes.yaml b/providers/src/linode/v00.00.00000/services/volumes.yaml
index ceff9a9c..60c655ad 100644
--- a/providers/src/linode/v00.00.00000/services/volumes.yaml
+++ b/providers/src/linode/v00.00.00000/services/volumes.yaml
@@ -1,978 +1,2697 @@
openapi: 3.0.1
-servers:
- - url: 'https://api.linode.com/v4'
- - url: 'https://api.linode.com/v4beta'
info:
- version: 4.147.0
- title: Linode API - volumes
- description: volumes
- contact:
- name: Linode
- url: 'https://linode.com'
- email: support@linode.com
-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
- description: 'Use the Images endpoints to capture, store, and manage custom Linode images.'
- - name: Linode Instances
- description: 'Use the Linode Instances endpoints to create, configure, and manage your Linode instances. You can also manage the Linode Backup service; maintain and manage configuration profiles; create and maintain disks, intiate a host migration; view Linode Instance statistics; and more.'
- - name: Linode Types
- description: 'Use the Linode Types endpoints to retrieve information about Linode plan types, including pricing information, hardware resources, and network transfer allotment.'
- - name: Linode Kubernetes Engine (LKE)
- description: Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. Use the LKE endpoints to create and manage Kubernetes clusters and their associated Node Pools.
- - name: Longview
- description: Longview is Linode's system-level monitoring and graphing service. Use the Longview endpoints to manage your Longview subscription and plan and to create and maintain Longview clients.
- - name: Managed
- description: 'Managed is Linode''s incident response service. Use the Managed endpoints to register a service to be monitored by the Managed Service team, provide secure access to your managed services, view information about detected issues, and more.'
- - name: Networking
- description: 'Use the Networking endpoints to view all IP addresses on your account, reorganize assigned IPv4 addresses, update RDNS, and configure IP sharing.'
- - name: NodeBalancers
- description: 'NodeBalancers is Linode''s load balancing service. Use the NodeBalancers endpoints to create and manage NodeBalancers. You can also create and maintain configurations; create and maintain nodes, and view statistics.'
- - name: Object Storage
- description: 'Object Storage is Linode''s S3-compatible data storage service. Use the Object Storage endpoints to create and maintaining buckets, add and remove objects from buckets, create and maintain Object Storage keys, and cancel the Object Storage service.'
- - name: Profile
- description: 'Use the Profile endpoints to manage your Linode user profile preferences and security settings. This includes creating and maintaining personal access tokens, creating and maintaining SSH keys, confirming and enabling two-factor authentication, and updating user and profile preferences.'
- - name: Regions
- description: 'Use the Regions endpoints to view information about the various Linode data center regions, including the service capabilities for each region, country, status, and more.'
- - name: StackScripts
- description: Linode StackScripts allow you to create reusable scripts to configure new Linode instances. Use the StackScripts endpoints to create and manage StackScripts on your account.
- - name: Support
- description: 'Use the Support endpoints to open, view, and close Linode Support tickets. You can also create and manage your Support ticket replies.'
- - name: Tags
- description: 'Tags allow you to organize and group your various Linode services. Use the Tags endpoints to create, assign, and delete your account tags.'
- - name: Volumes
- description: 'Volumes is Linode''s block storage service. Use the Volumes endpoints to create, attach, and manage your account Volumes.'
-components:
- schemas:
- Volume:
- type: object
- description: |
- A Block Storage Volume associated with your Account.
- properties:
- id:
- type: integer
- description: The unique ID of this Volume.
- example: 12345
- readOnly: true
- x-linode-cli-display: 1
- label:
- x-linode-filterable: true
- type: string
- description: |
- The Volume's label is for display purposes only.
- example: my-volume
- minLength: 1
- maxLength: 32
- pattern: '^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$'
- x-linode-cli-display: 2
- filesystem_path:
- type: string
- description: |
- The full filesystem path for the Volume based on the Volume's label. Path is /dev/disk/by-id/scsi-0Linode_Volume_ + Volume label.
- example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
- readOnly: true
- status:
- type: string
- description: |
- The current status of the volume. Can be one of:
-
- * `creating` - the Volume is being created and is not yet available
- for use.
- * `active` - the Volume is online and available for use.
- * `resizing` - the Volume is in the process of upgrading
- its current capacity.
- enum:
- - creating
- - active
- - resizing
- example: active
- readOnly: true
- x-linode-cli-display: 3
- x-linode-cli-color:
- active: green
- contact_support: red
- default_: yellow
- size:
- type: integer
- description: |
- The Volume's size, in GiB.
- maximum: 10240
- x-linode-cli-display: 4
- example: 30
- region:
- $ref: '#/components/schemas/Region/properties/id'
- x-linode-cli-display: 5
- linode_id:
- type: integer
- nullable: true
- description: |
- If a Volume is attached to a specific Linode, the ID of that Linode will be displayed here.
- example: 12346
- x-linode-cli-display: 6
- linode_label:
- type: string
- nullable: true
- description: |
- If a Volume is attached to a specific Linode, the label of that Linode will be displayed here.
- example: linode123
- x-linode-cli-display: 7
- readOnly: true
- created:
- type: string
- format: date-time
- description: When this Volume was created.
- example: '2018-01-01T00:01:01'
- readOnly: true
- updated:
- type: string
- format: date-time
- description: When this Volume was last updated.
- example: '2018-01-01T00:01:01'
- readOnly: true
- 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
- hardware_type:
- type: string
- enum:
- - hdd
- - nvme
- description: The storage type of this Volume.
- example: nvme
- readOnly: true
- PaginationEnvelope:
- type: object
- description: |
- An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](/docs/api/#pagination) for more information.
- properties:
- pages:
- type: integer
- readOnly: true
- description: 'The total number of [pages](/docs/api/#pagination).'
- example: 1
- page:
- type: integer
- readOnly: true
- description: 'The current [page](/docs/api/#pagination).'
- example: 1
- results:
- type: integer
- readOnly: true
- description: The total number of results.
- example: 1
- Region:
- type: object
- description: An area where Linode services are available.
- properties:
- id:
- readOnly: true
- type: string
- description: The unique ID of this Region.
- example: us-east
- x-linode-cli-display: 1
- label:
- type: string
- description: 'Detailed location information for this Region, including city, state or region, and country.'
- example: 'Newark, NJ, USA'
- readOnly: true
- x-linode-cli-display: 2
- country:
- type: string
- description: The country where this Region resides.
- example: us
- readOnly: true
- x-linode-cli-display: 3
- capabilities:
- type: array
- items:
- type: string
- description: |
- A list of capabilities of this region.
- example:
- - Linodes
- - NodeBalancers
- - Block Storage
- - Object Storage
- readOnly: true
- x-linode-cli-display: 4
- status:
- type: string
- description: |
- This region's current operational status.
- example: ok
- enum:
- - ok
- - outage
- readOnly: true
- x-linode-cli-display: 5
- resolvers:
- type: object
- readOnly: true
- x-linode-cli-display: 6
- properties:
- ipv4:
- type: string
- description: |
- The IPv4 addresses for this region's DNS resolvers, separated by commas.
- example: '192.0.2.0,192.0.2.1'
- readOnly: true
- ipv6:
- type: string
- description: |
- The IPv6 addresses for this region's DNS resolvers, separated by commas.
- example: '2001:0db8::,2001:0db8::1'
- readOnly: true
- ErrorObject:
- type: object
- description: |
- An object for describing a single error that occurred during the processing of a request.
- properties:
- reason:
- type: string
- description: |
- What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [open a Support Ticket](/docs/api/support/#support-ticket-open) or perform some other action before you can complete the request successfully.
- example: fieldname must be a valid value
- field:
- type: string
- description: |
- The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as "null" if the error is not specific to any single element of the request.
- example: fieldname
- parameters:
- pageOffset:
- name: page
- in: query
- description: The page of a collection to return.
- required: false
- schema:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- name: page_size
- in: query
- description: The number of items to return per page.
- schema:
- type: integer
- minimum: 25
- maximum: 500
- default: 100
- responses:
- ErrorResponse:
- description: Error
- content:
- application/json:
- schema:
- type: object
- properties:
- errors:
- type: array
- items:
- $ref: '#/components/schemas/ErrorObject'
- 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.
- '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.
- links:
- bootLinode:
- operationId: bootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebootLinode:
- operationId: rebootLinodeInstance
- parameters:
- linodeId: $request.body#/id
- shutdownLinode:
- operationId: shutdownLinodeInstance
- parameters:
- linodeId: $request.body#/id
- updateLinode:
- operationId: updateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- deleteLinode:
- operationId: deleteLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rebuildLinode:
- operationId: rebuildLinodeInstance
- parameters:
- linodeId: $request.body#/id
- mutateLinode:
- operationId: mutateLinodeInstance
- parameters:
- linodeId: $request.body#/id
- resizeLinode:
- operationId: resizeLinodeInstance
- parameters:
- linodeId: $request.body#/id
- rescueLinode:
- operationId: rescueLinodeInstance
- parameters:
- linodeId: $request.body#/id
- cloneLinode:
- operationId: cloneLinodeInstance
- parameters:
- linodeId: $request.body#/id
- attachVolume:
- operationId: attachVolume
- parameters:
- volumeID: $request.body#/id
- cloneVolume:
- operationId: cloneVolume
- parameters:
- volumeId: $request.body#/id
- detachVolume:
- operationId: detachVolume
- parameters:
- volumeId: $request.body#/id
- resizeVolume:
- operationId: resizeVolume
- parameters:
- volumeId: $request.body#/id
- x-stackQL-resources:
- volumes:
- id: linode.volumes.volumes
- name: volumes
- title: Volumes
- methods:
- getVolumes:
- operation:
- $ref: '#/paths/~1volumes/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getVolumes:
- operation:
- $ref: '#/paths/~1volumes/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- createVolume:
- operation:
- $ref: '#/paths/~1volumes/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- getVolume:
- operation:
- $ref: '#/paths/~1volumes~1{volumeId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- objectKey: $.data
- _getVolume:
- operation:
- $ref: '#/paths/~1volumes~1{volumeId}/get'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- updateVolume:
- operation:
- $ref: '#/paths/~1volumes~1{volumeId}/put'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- deleteVolume:
- operation:
- $ref: '#/paths/~1volumes~1{volumeId}/delete'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- attachVolume:
- operation:
- $ref: '#/paths/~1volumes~1{volumeId}~1attach/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- cloneVolume:
- operation:
- $ref: '#/paths/~1volumes~1{volumeId}~1clone/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- detachVolume:
- operation:
- $ref: '#/paths/~1volumes~1{volumeId}~1detach/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- resizeVolume:
- operation:
- $ref: '#/paths/~1volumes~1{volumeId}~1resize/post'
- response:
- mediaType: application/json
- openAPIDocKey: '200'
- sqlVerbs:
- select:
- - $ref: '#/components/x-stackQL-resources/volumes/methods/getVolumes'
- - $ref: '#/components/x-stackQL-resources/volumes/methods/getVolume'
- insert:
- - $ref: '#/components/x-stackQL-resources/volumes/methods/createVolume'
- update: []
- delete:
- - $ref: '#/components/x-stackQL-resources/volumes/methods/deleteVolume'
+ title: volumes API
+ description: linode volumes API
+ version: 4.208.1
paths:
/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
- - ls
+ post:
+ description: >-
+ Creates a volume on your account. For this to complete, you need the
+ `add_volumes` grant. Creating a new volume accrues additional charges on
+ your account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-volume
+ operationId: post-volume
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ config_id:
+ description: >-
+ When creating a volume attached to a Linode, this is the
+ identifier of the Linode configuration profile (config)
+ where the volume will live. Run the [List configuration
+ profiles](https://techdocs.akamai.com/linode-api/reference/get-linode-configs)
+ operation and store the `id` for the applicable config. The
+ following apply when adding a `config_id`:
+
+
+ - The selected config needs to belong to the Linode
+ referenced by `linode_id` in this request.
+
+
+ - You can't provide a `config_id` if you don't also provide
+ a `linode_id` in the request.
+
+
+ - If you send a `linode_id` without a `config_id` in the
+ request, the API attaches the volume to that Linode's last
+ used config, or to the only config in that Linode. If there
+ isn't a config available for attachment, the API returns an
+ error.
+ example: '{{config_id}}'
+ type: integer
+ encryption:
+ default: disabled
+ description: >-
+ Enables encryption on the volume. Full disk encryption
+ ensures the data stored on a block storage volume drive is
+ secure. It protects against unauthorized access by keeping
+ the data encrypted if the volume drive is removed from the
+ data center, decommissioned, or disposed of.
+
+
+ The platform automatically manages the encryption and
+ decryption process for you. You can use an encrypted volume
+ the same way you use a non-encrypted volume.
+
+
+ > 📘
+
+ >
+
+ > You can enable or disable disk encryption only when
+ creating new block storage volumes. After a volume is
+ created, the encryption setting can't be changed.
+ enum:
+ - enabled
+ - disabled
+ example: '{{encryption}}'
+ type: string
+ label:
+ description: >-
+ The name of the volume. A `label` can be up to 32 characters
+ long and contain alphanumeric characters, hyphens, and
+ underscores. This value is also used in the volume's
+ `filesystem_path`.
+ example: '{{label}}'
+ maxLength: 32
+ minLength: 1
+ pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$
+ type: string
+ linode_id:
+ description: >-
+ The Linode this volume should be attached to after it's
+ created. If not given, the volume will be created without an
+ attachment.
+ example: '{{linode_id}}'
+ type: integer
+ region:
+ description: >-
+ The region where the API deploys the volume. This is only
+ required if you didn't provide a `linode_id` for the volume.
+ example: '{{region}}'
+ nullable: true
+ type: string
+ size:
+ default: 20
+ description: >-
+ The initial size of this volume, in GB. Volumes can only be
+ resized after the creation completes.
+ example: '{{size}}'
+ type: integer
+ tags:
+ description: >-
+ __Filterable__ Any tags applied to this object. Use
+ [tags](https://techdocs.akamai.com/linode-api/reference/post-tag)
+ to label and organize your cloud computing resources.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ required:
+ - label
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-volume.yaml
+ x-example:
+ x-ref: ../examples/post-volume.json
+ description: The requested initial state of a new Volume.
+ required: true
+ x-linode-cli-allowed-defaults:
+ - region
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A Block Storage volume on your account.
+ properties:
+ created:
+ description: __Read-only__ When this volume was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encryption:
+ description: >-
+ __Read-only__ Whether encryption is enabled on this
+ volume.
+ enum:
+ - enabled
+ - disabled
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ filesystem_path:
+ description: >-
+ __Read-only__ The full file system path for the volume,
+ based on its `label`. The path is
+ `/dev/disk/by-id/scsi-0Linode_Volume_label`.
+ example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
+ readOnly: true
+ type: string
+ hardware_type:
+ description: >-
+ __Read-only__ The storage type of this volume. This can be
+ either `hdd` to emulate a hard disk drive for the volume,
+ or `nvme` to emulate a non-volatile memory express solid
+ state drive.
+ enum:
+ - hdd
+ - nvme
+ example: nvme
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for the volume.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of the volume. A `label` can be up
+ to 32 characters long and contain alphanumeric characters,
+ hyphens, and underscores. This value is also used in the
+ volume's `filesystem_path`.
+ example: my-volume
+ maxLength: 32
+ minLength: 1
+ pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linode_id:
+ description: >-
+ The unique identifier of the Linode this volume is
+ attached to, if applicable.
+ example: 12346
+ nullable: true
+ type: integer
+ x-linode-cli-display: 6
+ linode_label:
+ description: >-
+ __Read-only__ The name of the Linode this volume is
+ attached to, if applicable.
+ example: linode123
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ region:
+ description: The unique ID of this Region.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ size:
+ description: The Volume's size, in GiB.
+ example: 30
+ maximum: 10240
+ type: integer
+ x-linode-cli-display: 4
+ status:
+ description: >-
+ __Read-only__ The current status of the volume. This can
+ be one of:
+
+
+ - `creating`. The API is creating the volume and it's not
+ ready for use.
+
+
+ - `active`. The volume is online and ready for use.
+
+
+ - `resizing`. The volume's capacity is being upgraded.
+
+
+ - `key_rotating`. The volume's encryption keys are being
+ rotated to new values. Requests to resize, delete, or
+ clone a volume fail during encryption key rotation.
+ enum:
+ - creating
+ - active
+ - resizing
+ - key_rotating
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ active: green
+ contact_support: red
+ default_: yellow
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ Any tags applied to this object. Use
+ [tags](https://techdocs.akamai.com/linode-api/reference/post-tag)
+ to label and organize your cloud computing resources.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this volume was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: Volume
+ type: object
+ x-akamai:
+ file-path: schemas/volume.yaml
+ x-example:
+ x-ref: ../examples/post-volume-200.json
+ description: Creating Volume.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'volumes:read_only'
+ - volumes:read_write
+ summary: Create a volume
+ tags:
+ - Volumes
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli volumes create \
+ --label my-volume \
+ --size 20 \
+ --linode_id 12346 \
+ --encryption enabled \
+ --no-defaults
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: volumes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-charge: true
+ x-linode-cli-action: create
+ x-linode-grant: add_volumes
+ get:
+ description: >-
+ Returns a paginated list of Volumes you have permission to view.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-volumes
+ operationId: get-volumes
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Returns an array of all Volumes on your Account.
content:
application/json:
schema:
- type: object
+ additionalProperties: false
properties:
data:
- type: array
items:
- $ref: '#/components/schemas/Volume'
+ additionalProperties: false
+ description: A Block Storage volume on your account.
+ properties:
+ created:
+ description: __Read-only__ When this volume was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encryption:
+ description: >-
+ __Read-only__ Whether encryption is enabled on this
+ volume.
+ enum:
+ - enabled
+ - disabled
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ filesystem_path:
+ description: >-
+ __Read-only__ The full file system path for the
+ volume, based on its `label`. The path is
+ `/dev/disk/by-id/scsi-0Linode_Volume_label`.
+ example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
+ readOnly: true
+ type: string
+ hardware_type:
+ description: >-
+ __Read-only__ The storage type of this volume. This
+ can be either `hdd` to emulate a hard disk drive for
+ the volume, or `nvme` to emulate a non-volatile
+ memory express solid state drive.
+ enum:
+ - hdd
+ - nvme
+ example: nvme
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for the volume.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of the volume. A `label` can
+ be up to 32 characters long and contain alphanumeric
+ characters, hyphens, and underscores. This value is
+ also used in the volume's `filesystem_path`.
+ example: my-volume
+ maxLength: 32
+ minLength: 1
+ pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linode_id:
+ description: >-
+ The unique identifier of the Linode this volume is
+ attached to, if applicable.
+ example: 12346
+ nullable: true
+ type: integer
+ x-linode-cli-display: 6
+ linode_label:
+ description: >-
+ __Read-only__ The name of the Linode this volume is
+ attached to, if applicable.
+ example: linode123
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ region:
+ description: The unique ID of this Region.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ size:
+ description: The Volume's size, in GiB.
+ example: 30
+ maximum: 10240
+ type: integer
+ x-linode-cli-display: 4
+ status:
+ description: >-
+ __Read-only__ The current status of the volume. This
+ can be one of:
+
+
+ - `creating`. The API is creating the volume and
+ it's not ready for use.
+
+
+ - `active`. The volume is online and ready for use.
+
+
+ - `resizing`. The volume's capacity is being
+ upgraded.
+
+
+ - `key_rotating`. The volume's encryption keys are
+ being rotated to new values. Requests to resize,
+ delete, or clone a volume fail during encryption key
+ rotation.
+ enum:
+ - creating
+ - active
+ - resizing
+ - key_rotating
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ active: green
+ contact_support: red
+ default_: yellow
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ Any tags applied to this object. Use
+ [tags](https://techdocs.akamai.com/linode-api/reference/post-tag)
+ to label and organize your cloud computing
+ resources.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this volume was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: Volume
+ type: object
+ x-akamai:
+ file-path: schemas/volume.yaml
+ type: array
page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-volumes-200.yaml
+ x-example:
+ x-ref: ../examples/get-volumes-200.json
+ description: Returns an array of all Volumes on your Account.
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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
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:
+ - volumes:read_only
+ summary: List volumes
+ tags:
+ - Volumes
+ x-akamai:
+ tabs:
+ - syntax: linode-cli volumes list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: volumes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - list
+ - ls
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/volumes.yaml
+ path-info: /{apiVersion}/volumes
+ x-linode-cli-command: volumes
+ /volumes/types:
+ get:
+ description: >-
+ Returns volume types and prices, including any region-specific rates.
- * 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
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-volume-types
+ operationId: get-volume-types
responses:
'200':
- description: |
- Creating Volume.
content:
application/json:
schema:
- $ref: '#/components/schemas/Volume'
+ additionalProperties: false
+ properties:
+ data:
+ description: The volume types.
+ items:
+ additionalProperties: false
+ description: >-
+ Returns collection of volume types and prices, including
+ any region-specific rates.
+ properties:
+ id:
+ description: __Read-only__ The ID representing the volume type.
+ example: volume
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__, __Read-only__ The volume type label
+ is for display purposes only.
+ example: Storage Volume
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ price:
+ additionalProperties: false
+ description: >-
+ __Read-only__ The default cost of this volume type.
+ Prices are in US dollars, broken down into hourly
+ and monthly charges.
+
+
+ Certain regions have different prices from the
+ default. For region-specific prices, see
+ `region_prices`.
+ properties:
+ hourly:
+ description: __Filterable__ Cost (in US dollars) per hour.
+ example: 0.0015
+ type: number
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 3
+ x-linode-filterable: true
+ monthly:
+ description: __Filterable__ Cost per month, in US dollars.
+ example: 0.1
+ type: number
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ readOnly: true
+ type: object
+ region_prices:
+ items:
+ additionalProperties: false
+ properties:
+ hourly:
+ description: Cost per hour for this region, in US dollars.
+ example: 0.00018
+ type: number
+ x-linode-cli-display: 6
+ id:
+ description: The Region ID for these prices.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ monthly:
+ description: Cost per month for this region, in US dollars.
+ example: 0.12
+ type: number
+ x-linode-cli-display: 7
+ type: object
+ type: array
+ transfer:
+ description: >-
+ __Filterable__, __Read-only__ The monthly outbound
+ transfer amount, in MB.
+ example: 0
+ minimum: 0
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/volume-type.yaml
+ type: array
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/get-volumes-types-200.yaml
+ x-example:
+ x-ref: ../examples/get-volumes-types-200.json
+ description: A collection of volume types.
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}':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ summary: List volume types
+ tags:
+ - Volume types
+ x-akamai:
+ tabs:
+ - syntax: linode-cli volumes types
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: types
+ x-linode-redoc-load-ids: true
+ parameters: []
+ x-akamai:
+ file-path: paths/volume-types.yaml
+ path-info: /{apiVersion}/volumes/types
+ x-linode-cli-command: volumes
+ /volumes/{volumeId}:
get:
- x-linode-grant: read_only
+ description: >-
+ Get information about a single Volume.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-volume
+ operationId: get-volume
parameters:
- - name: volumeId
- in: path
- description: ID of the Volume to look up.
- required: true
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
schema:
+ default: 1
+ example: 6
+ minimum: 1
type: integer
- 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'
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
responses:
'200':
- description: Returns a single Volume object.
content:
application/json:
schema:
- $ref: '#/components/schemas/Volume'
+ additionalProperties: false
+ description: A Block Storage volume on your account.
+ properties:
+ created:
+ description: __Read-only__ When this volume was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encryption:
+ description: >-
+ __Read-only__ Whether encryption is enabled on this
+ volume.
+ enum:
+ - enabled
+ - disabled
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ filesystem_path:
+ description: >-
+ __Read-only__ The full file system path for the volume,
+ based on its `label`. The path is
+ `/dev/disk/by-id/scsi-0Linode_Volume_label`.
+ example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
+ readOnly: true
+ type: string
+ hardware_type:
+ description: >-
+ __Read-only__ The storage type of this volume. This can be
+ either `hdd` to emulate a hard disk drive for the volume,
+ or `nvme` to emulate a non-volatile memory express solid
+ state drive.
+ enum:
+ - hdd
+ - nvme
+ example: nvme
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for the volume.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of the volume. A `label` can be up
+ to 32 characters long and contain alphanumeric characters,
+ hyphens, and underscores. This value is also used in the
+ volume's `filesystem_path`.
+ example: my-volume
+ maxLength: 32
+ minLength: 1
+ pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linode_id:
+ description: >-
+ The unique identifier of the Linode this volume is
+ attached to, if applicable.
+ example: 12346
+ nullable: true
+ type: integer
+ x-linode-cli-display: 6
+ linode_label:
+ description: >-
+ __Read-only__ The name of the Linode this volume is
+ attached to, if applicable.
+ example: linode123
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ region:
+ description: The unique ID of this Region.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ size:
+ description: The Volume's size, in GiB.
+ example: 30
+ maximum: 10240
+ type: integer
+ x-linode-cli-display: 4
+ status:
+ description: >-
+ __Read-only__ The current status of the volume. This can
+ be one of:
+
+
+ - `creating`. The API is creating the volume and it's not
+ ready for use.
+
+
+ - `active`. The volume is online and ready for use.
+
+
+ - `resizing`. The volume's capacity is being upgraded.
+
+
+ - `key_rotating`. The volume's encryption keys are being
+ rotated to new values. Requests to resize, delete, or
+ clone a volume fail during encryption key rotation.
+ enum:
+ - creating
+ - active
+ - resizing
+ - key_rotating
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ active: green
+ contact_support: red
+ default_: yellow
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ Any tags applied to this object. Use
+ [tags](https://techdocs.akamai.com/linode-api/reference/post-tag)
+ to label and organize your cloud computing resources.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this volume was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: Volume
+ type: object
+ x-akamai:
+ file-path: schemas/volume.yaml
+ x-example:
+ x-ref: ../examples/get-volume-200.json
+ description: Returns a single Volume object.
links:
attach:
- $ref: '#/components/links/attachVolume'
+ operationId: post-attach-volume
+ parameters:
+ volumeID: $request.body#/id
clone:
- $ref: '#/components/links/cloneVolume'
+ operationId: post-clone-volume
+ parameters:
+ volumeId: $request.body#/id
detach:
- $ref: '#/components/links/detachVolume'
+ operationId: post-attach-volume
+ parameters:
+ volumeId: $request.body#/id
resize:
- $ref: '#/components/links/resizeVolume'
+ operationId: post-resize-volume
+ parameters:
+ volumeId: $request.body#/id
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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'volumes:read_write'
+ - volumes:read_only
+ summary: Get a volume
+ tags:
+ - Volumes
+ x-akamai:
+ tabs:
+ - syntax: linode-cli volumes view 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: volumes:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: view
+ x-linode-grant: read_only
+ put:
+ description: >-
+ Updates a Volume that you have permission to `read_write`.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-volume
+ operationId: put-volume
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
+ - additionalProperties: false
+ description: A Block Storage volume on your account.
properties:
+ created:
+ description: __Read-only__ When this volume was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encryption:
+ description: >-
+ __Read-only__ Whether encryption is enabled on this
+ volume.
+ enum:
+ - enabled
+ - disabled
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ filesystem_path:
+ description: >-
+ __Read-only__ The full file system path for the volume,
+ based on its `label`. The path is
+ `/dev/disk/by-id/scsi-0Linode_Volume_label`.
+ example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
+ readOnly: true
+ type: string
+ hardware_type:
+ description: >-
+ __Read-only__ The storage type of this volume. This can
+ be either `hdd` to emulate a hard disk drive for the
+ volume, or `nvme` to emulate a non-volatile memory
+ express solid state drive.
+ enum:
+ - hdd
+ - nvme
+ example: nvme
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for the volume.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of the volume. A `label` can be
+ up to 32 characters long and contain alphanumeric
+ characters, hyphens, and underscores. This value is also
+ used in the volume's `filesystem_path`.
+ example: my-volume
+ maxLength: 32
+ minLength: 1
+ pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linode_id:
+ description: >-
+ The unique identifier of the Linode this volume is
+ attached to, if applicable.
+ example: 12346
+ nullable: true
+ type: integer
+ x-linode-cli-display: 6
+ linode_label:
+ description: >-
+ __Read-only__ The name of the Linode this volume is
+ attached to, if applicable.
+ example: linode123
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ region:
+ description: The unique ID of this Region.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
size:
+ description: The Volume's size, in GiB.
+ example: 30
+ maximum: 10240
+ type: integer
+ x-linode-cli-display: 4
+ status:
+ description: >-
+ __Read-only__ The current status of the volume. This can
+ be one of:
+
+
+ - `creating`. The API is creating the volume and it's
+ not ready for use.
+
+
+ - `active`. The volume is online and ready for use.
+
+
+ - `resizing`. The volume's capacity is being upgraded.
+
+
+ - `key_rotating`. The volume's encryption keys are being
+ rotated to new values. Requests to resize, delete, or
+ clone a volume fail during encryption key rotation.
+ enum:
+ - creating
+ - active
+ - resizing
+ - key_rotating
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ active: green
+ contact_support: red
+ default_: yellow
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ Any tags applied to this object. Use
+ [tags](https://techdocs.akamai.com/linode-api/reference/post-tag)
+ to label and organize your cloud computing resources.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this volume was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
readOnly: true
+ type: string
+ title: Volume
+ type: object
+ x-akamai:
+ file-path: schemas/volume.yaml
+ - properties:
linode_id:
readOnly: true
+ size:
+ readOnly: true
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-volume.yaml
+ x-example:
+ x-ref: ../examples/put-volume.json
+ description: >-
+ If any updated field fails to pass validation, the Volume will not be
+ updated.
+ required: true
responses:
'200':
- description: The updated Volume.
content:
application/json:
schema:
- $ref: '#/components/schemas/Volume'
+ additionalProperties: false
+ description: A Block Storage volume on your account.
+ properties:
+ created:
+ description: __Read-only__ When this volume was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encryption:
+ description: >-
+ __Read-only__ Whether encryption is enabled on this
+ volume.
+ enum:
+ - enabled
+ - disabled
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ filesystem_path:
+ description: >-
+ __Read-only__ The full file system path for the volume,
+ based on its `label`. The path is
+ `/dev/disk/by-id/scsi-0Linode_Volume_label`.
+ example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
+ readOnly: true
+ type: string
+ hardware_type:
+ description: >-
+ __Read-only__ The storage type of this volume. This can be
+ either `hdd` to emulate a hard disk drive for the volume,
+ or `nvme` to emulate a non-volatile memory express solid
+ state drive.
+ enum:
+ - hdd
+ - nvme
+ example: nvme
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for the volume.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of the volume. A `label` can be up
+ to 32 characters long and contain alphanumeric characters,
+ hyphens, and underscores. This value is also used in the
+ volume's `filesystem_path`.
+ example: my-volume
+ maxLength: 32
+ minLength: 1
+ pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linode_id:
+ description: >-
+ The unique identifier of the Linode this volume is
+ attached to, if applicable.
+ example: 12346
+ nullable: true
+ type: integer
+ x-linode-cli-display: 6
+ linode_label:
+ description: >-
+ __Read-only__ The name of the Linode this volume is
+ attached to, if applicable.
+ example: linode123
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ region:
+ description: The unique ID of this Region.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ size:
+ description: The Volume's size, in GiB.
+ example: 30
+ maximum: 10240
+ type: integer
+ x-linode-cli-display: 4
+ status:
+ description: >-
+ __Read-only__ The current status of the volume. This can
+ be one of:
+
+
+ - `creating`. The API is creating the volume and it's not
+ ready for use.
+
+
+ - `active`. The volume is online and ready for use.
+
+
+ - `resizing`. The volume's capacity is being upgraded.
+
+
+ - `key_rotating`. The volume's encryption keys are being
+ rotated to new values. Requests to resize, delete, or
+ clone a volume fail during encryption key rotation.
+ enum:
+ - creating
+ - active
+ - resizing
+ - key_rotating
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ active: green
+ contact_support: red
+ default_: yellow
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ Any tags applied to this object. Use
+ [tags](https://techdocs.akamai.com/linode-api/reference/post-tag)
+ to label and organize your cloud computing resources.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this volume was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: Volume
+ type: object
+ x-akamai:
+ file-path: schemas/volume.yaml
+ x-example:
+ x-ref: ../examples/get-volume-200.json
+ description: The updated 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
- parameters:
- - name: volumeId
- in: path
- description: ID of the Volume to look up.
- required: true
- schema:
- type: integer
- delete:
- x-linode-grant: read_write
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - volumes:read_write
+ summary: Update a volume
tags:
- Volumes
- summary: Volume Delete
- description: |
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli volumes update 12345 \
+ --label my_volume
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: volumes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update
+ x-linode-grant: read_write
+ 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.
+ - __Deleting a Volume is a destructive action and cannot be undone.__
- * Volumes that are migrating cannot be deleted until the migration is finished.
- operationId: deleteVolume
- x-linode-cli-action:
- - delete
- - rm
- security:
- - personalAccessToken: []
- - oauth:
- - 'volumes:read_write'
+
+ - 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-volume
+ operationId: delete-volume
responses:
'200':
- description: Volume deletion successful.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-volume-200.json
+ description: Volume deletion successful.
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
- parameters:
- - name: volumeId
- in: path
- description: ID of the Volume to look up.
- required: true
- schema:
- type: integer
- '/volumes/{volumeId}/attach':
- 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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'volumes:read_write'
- - 'linodes:read_write'
- requestBody:
- description: Volume to attach to a Linode.
+ - volumes:read_write
+ summary: Delete a volume
+ tags:
+ - Volumes
+ x-akamai:
+ tabs:
+ - syntax: linode-cli volumes delete 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: volumes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - delete
+ - rm
+ x-linode-grant: read_write
+ parameters:
+ - description: ID of the Volume to look up.
+ example: '{{volumeId}}'
+ in: path
+ name: volumeId
required: true
+ schema:
+ example: 251
+ type: integer
+ x-akamai:
+ file-path: parameters/volume-id-path-a4b5473e.yaml
+ x-akamai:
+ file-path: paths/volume.yaml
+ path-info: /{apiVersion}/volumes/{volumeId}
+ x-linode-cli-command: volumes
+ /volumes/{volumeId}/attach:
+ post:
+ 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_write` permission to the Volume and `read_write` permission to the
+ Linode. Additionally, the Volume and Linode must be located in the same
+ Region.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-attach-volume
+ operationId: post-attach-volume
+ requestBody:
content:
application/json:
schema:
- type: object
- required:
- - linode_id
+ additionalProperties: false
properties:
- linode_id:
+ config_id:
+ 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: '{{config_id}}'
type: integer
+ linode_id:
description: The ID of the Linode to attach the volume to.
- config_id:
+ example: '{{linode_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:
+ 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.
+ example: '{{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.
+ required:
+ - linode_id
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-attach-volume.yaml
+ x-example:
+ x-ref: ../examples/post-attach-volume.json
+ description: Volume to attach to a Linode.
+ required: true
responses:
'200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A Block Storage volume on your account.
+ properties:
+ created:
+ description: __Read-only__ When this volume was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encryption:
+ description: >-
+ __Read-only__ Whether encryption is enabled on this
+ volume.
+ enum:
+ - enabled
+ - disabled
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ filesystem_path:
+ description: >-
+ __Read-only__ The full file system path for the volume,
+ based on its `label`. The path is
+ `/dev/disk/by-id/scsi-0Linode_Volume_label`.
+ example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
+ readOnly: true
+ type: string
+ hardware_type:
+ description: >-
+ __Read-only__ The storage type of this volume. This can be
+ either `hdd` to emulate a hard disk drive for the volume,
+ or `nvme` to emulate a non-volatile memory express solid
+ state drive.
+ enum:
+ - hdd
+ - nvme
+ example: nvme
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for the volume.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of the volume. A `label` can be up
+ to 32 characters long and contain alphanumeric characters,
+ hyphens, and underscores. This value is also used in the
+ volume's `filesystem_path`.
+ example: my-volume
+ maxLength: 32
+ minLength: 1
+ pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linode_id:
+ description: >-
+ The unique identifier of the Linode this volume is
+ attached to, if applicable.
+ example: 12346
+ nullable: true
+ type: integer
+ x-linode-cli-display: 6
+ linode_label:
+ description: >-
+ __Read-only__ The name of the Linode this volume is
+ attached to, if applicable.
+ example: linode123
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ region:
+ description: The unique ID of this Region.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ size:
+ description: The Volume's size, in GiB.
+ example: 30
+ maximum: 10240
+ type: integer
+ x-linode-cli-display: 4
+ status:
+ description: >-
+ __Read-only__ The current status of the volume. This can
+ be one of:
+
+
+ - `creating`. The API is creating the volume and it's not
+ ready for use.
+
+
+ - `active`. The volume is online and ready for use.
+
+
+ - `resizing`. The volume's capacity is being upgraded.
+
+
+ - `key_rotating`. The volume's encryption keys are being
+ rotated to new values. Requests to resize, delete, or
+ clone a volume fail during encryption key rotation.
+ enum:
+ - creating
+ - active
+ - resizing
+ - key_rotating
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ active: green
+ contact_support: red
+ default_: yellow
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ Any tags applied to this object. Use
+ [tags](https://techdocs.akamai.com/linode-api/reference/post-tag)
+ to label and organize your cloud computing resources.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this volume was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: Volume
+ type: object
+ x-akamai:
+ file-path: schemas/volume.yaml
+ x-example:
+ x-ref: ../examples/post-attach-volume-200.json
description: Volume was attached to a Linode.
+ default:
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
- parameters:
- - name: volumeId
- in: path
- description: ID of the Volume to attach.
- required: true
- schema:
- type: integer
- '/volumes/{volumeId}/clone':
- 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
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'volumes:read_write'
- requestBody:
- description: The requested state your Volume will be cloned into.
+ - volumes:read_write
+ - linodes:read_write
+ summary: Attach a volume
+ tags:
+ - Volumes
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli volumes attach 12345 \
+ --linode_id 12346 \
+ --config_id 23456
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ volumes:read_write
+ linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: attach
+ parameters:
+ - description: ID of the Volume to attach.
+ example: '{{volumeId}}'
+ in: path
+ name: volumeId
required: true
+ schema:
+ example: 251
+ type: integer
+ x-akamai:
+ file-path: parameters/volume-id-path-62b4501e.yaml
+ x-akamai:
+ file-path: paths/attach.yaml
+ path-info: /{apiVersion}/volumes/{volumeId}/attach
+ x-linode-cli-command: volumes
+ /volumes/{volumeId}/clone:
+ post:
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-clone-volume
+ operationId: post-clone-volume
+ requestBody:
content:
application/json:
schema:
- type: object
- required:
- - label
+ additionalProperties: false
properties:
label:
- $ref: '#/components/schemas/Volume/properties/label'
+ description: >-
+ __Filterable__ The name of the volume. A `label` can be up
+ to 32 characters long and contain alphanumeric characters,
+ hyphens, and underscores. This value is also used in the
+ volume's `filesystem_path`.
+ example: '{{label}}'
+ maxLength: 32
+ minLength: 1
+ pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ required:
+ - label
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-clone-volume.yaml
+ x-example:
+ x-ref: ../examples/post-clone-volume.json
+ description: The requested state your Volume will be cloned into.
+ required: true
responses:
'200':
- description: Clone started.
content:
application/json:
schema:
- $ref: '#/components/schemas/Volume'
+ additionalProperties: false
+ description: A Block Storage volume on your account.
+ properties:
+ created:
+ description: __Read-only__ When this volume was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encryption:
+ description: >-
+ __Read-only__ Whether encryption is enabled on this
+ volume.
+ enum:
+ - enabled
+ - disabled
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ filesystem_path:
+ description: >-
+ __Read-only__ The full file system path for the volume,
+ based on its `label`. The path is
+ `/dev/disk/by-id/scsi-0Linode_Volume_label`.
+ example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
+ readOnly: true
+ type: string
+ hardware_type:
+ description: >-
+ __Read-only__ The storage type of this volume. This can be
+ either `hdd` to emulate a hard disk drive for the volume,
+ or `nvme` to emulate a non-volatile memory express solid
+ state drive.
+ enum:
+ - hdd
+ - nvme
+ example: nvme
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for the volume.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of the volume. A `label` can be up
+ to 32 characters long and contain alphanumeric characters,
+ hyphens, and underscores. This value is also used in the
+ volume's `filesystem_path`.
+ example: my-volume
+ maxLength: 32
+ minLength: 1
+ pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linode_id:
+ description: >-
+ The unique identifier of the Linode this volume is
+ attached to, if applicable.
+ example: 12346
+ nullable: true
+ type: integer
+ x-linode-cli-display: 6
+ linode_label:
+ description: >-
+ __Read-only__ The name of the Linode this volume is
+ attached to, if applicable.
+ example: linode123
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ region:
+ description: The unique ID of this Region.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ size:
+ description: The Volume's size, in GiB.
+ example: 30
+ maximum: 10240
+ type: integer
+ x-linode-cli-display: 4
+ status:
+ description: >-
+ __Read-only__ The current status of the volume. This can
+ be one of:
+
+
+ - `creating`. The API is creating the volume and it's not
+ ready for use.
+
+
+ - `active`. The volume is online and ready for use.
+
+
+ - `resizing`. The volume's capacity is being upgraded.
+
+
+ - `key_rotating`. The volume's encryption keys are being
+ rotated to new values. Requests to resize, delete, or
+ clone a volume fail during encryption key rotation.
+ enum:
+ - creating
+ - active
+ - resizing
+ - key_rotating
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ active: green
+ contact_support: red
+ default_: yellow
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ Any tags applied to this object. Use
+ [tags](https://techdocs.akamai.com/linode-api/reference/post-tag)
+ to label and organize your cloud computing resources.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this volume was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: Volume
+ type: object
+ x-akamai:
+ file-path: schemas/volume.yaml
+ x-example:
+ x-ref: ../examples/post-clone-volume-200.json
+ description: Clone started.
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
- parameters:
- - name: volumeId
- in: path
- description: ID of the Volume to clone.
- required: true
- schema:
- type: integer
- '/volumes/{volumeId}/detach':
- 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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'volumes:read_write'
- - 'linodes:read_write'
+ - volumes:read_write
+ summary: Clone a volume
+ tags:
+ - Volumes
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli volumes clone 12345 \
+ --label my-volume
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: volumes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-charge: true
+ x-linode-cli-action: clone
+ x-linode-grant: add_volumes
+ parameters:
+ - description: ID of the Volume to clone.
+ example: '{{volumeId}}'
+ in: path
+ name: volumeId
+ required: true
+ schema:
+ example: 251
+ type: integer
+ x-akamai:
+ file-path: parameters/volume-id-path-1f2bbcd1.yaml
+ x-akamai:
+ file-path: paths/volume-clone.yaml
+ path-info: /{apiVersion}/volumes/{volumeId}/clone
+ x-linode-cli-command: volumes
+ /volumes/{volumeId}/detach:
+ post:
+ 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.
+
+
+ Volumes are automatically detached from deleted Linodes.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-detach-volume
+ operationId: post-detach-volume
responses:
'200':
- description: Volume was detached from a Linode.
content:
application/json:
schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/post-detach-volume-200.json
+ description: Volume was detached from a Linode.
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
- parameters:
- - name: volumeId
- in: path
- description: ID of the Volume to detach.
- required: true
- schema:
- type: integer
- '/volumes/{volumeId}/resize':
- 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
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
security:
- personalAccessToken: []
- oauth:
- - 'volumes:read_write'
- requestBody:
- description: The requested size to increase your Volume to.
+ - volumes:read_write
+ - linodes:read_write
+ summary: Detach a volume
+ tags:
+ - Volumes
+ x-akamai:
+ tabs:
+ - syntax: linode-cli volumes detach 12345
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: |-
+ volumes:read_write
+ linodes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: detach
+ parameters:
+ - description: ID of the Volume to detach.
+ example: '{{volumeId}}'
+ in: path
+ name: volumeId
required: true
+ schema:
+ example: 251
+ type: integer
+ x-akamai:
+ file-path: parameters/volume-id-path-e125a1de.yaml
+ x-akamai:
+ file-path: paths/detach.yaml
+ path-info: /{apiVersion}/volumes/{volumeId}/detach
+ x-linode-cli-command: volumes
+ /volumes/{volumeId}/resize:
+ post:
+ 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.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-resize-volume
+ operationId: post-resize-volume
+ requestBody:
content:
application/json:
schema:
- type: object
- required:
- - size
+ additionalProperties: false
properties:
size:
- $ref: '#/components/schemas/Volume/properties/size'
+ description: The Volume's size, in GiB.
+ example: '{{size}}'
+ maximum: 10240
+ type: integer
+ x-linode-cli-display: 4
+ required:
+ - size
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-resize-volume.yaml
+ x-example:
+ x-ref: ../examples/post-resize-volume.json
+ description: The requested size to increase your Volume to.
+ required: true
responses:
'200':
- description: Volume resize started.
content:
application/json:
schema:
- $ref: '#/components/schemas/Volume'
+ additionalProperties: false
+ description: A Block Storage volume on your account.
+ properties:
+ created:
+ description: __Read-only__ When this volume was created.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ encryption:
+ description: >-
+ __Read-only__ Whether encryption is enabled on this
+ volume.
+ enum:
+ - enabled
+ - disabled
+ example: enabled
+ readOnly: true
+ type: string
+ x-linode-cli-display: 8
+ filesystem_path:
+ description: >-
+ __Read-only__ The full file system path for the volume,
+ based on its `label`. The path is
+ `/dev/disk/by-id/scsi-0Linode_Volume_label`.
+ example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
+ readOnly: true
+ type: string
+ hardware_type:
+ description: >-
+ __Read-only__ The storage type of this volume. This can be
+ either `hdd` to emulate a hard disk drive for the volume,
+ or `nvme` to emulate a non-volatile memory express solid
+ state drive.
+ enum:
+ - hdd
+ - nvme
+ example: nvme
+ readOnly: true
+ type: string
+ id:
+ description: __Read-only__ The unique identifier for the volume.
+ example: 12345
+ readOnly: true
+ type: integer
+ x-linode-cli-display: 1
+ label:
+ description: >-
+ __Filterable__ The name of the volume. A `label` can be up
+ to 32 characters long and contain alphanumeric characters,
+ hyphens, and underscores. This value is also used in the
+ volume's `filesystem_path`.
+ example: my-volume
+ maxLength: 32
+ minLength: 1
+ pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linode_id:
+ description: >-
+ The unique identifier of the Linode this volume is
+ attached to, if applicable.
+ example: 12346
+ nullable: true
+ type: integer
+ x-linode-cli-display: 6
+ linode_label:
+ description: >-
+ __Read-only__ The name of the Linode this volume is
+ attached to, if applicable.
+ example: linode123
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 7
+ region:
+ description: The unique ID of this Region.
+ example: us-east
+ type: string
+ x-linode-cli-display: 5
+ size:
+ description: The Volume's size, in GiB.
+ example: 30
+ maximum: 10240
+ type: integer
+ x-linode-cli-display: 4
+ status:
+ description: >-
+ __Read-only__ The current status of the volume. This can
+ be one of:
+
+
+ - `creating`. The API is creating the volume and it's not
+ ready for use.
+
+
+ - `active`. The volume is online and ready for use.
+
+
+ - `resizing`. The volume's capacity is being upgraded.
+
+
+ - `key_rotating`. The volume's encryption keys are being
+ rotated to new values. Requests to resize, delete, or
+ clone a volume fail during encryption key rotation.
+ enum:
+ - creating
+ - active
+ - resizing
+ - key_rotating
+ example: active
+ readOnly: true
+ type: string
+ x-linode-cli-color:
+ active: green
+ contact_support: red
+ default_: yellow
+ x-linode-cli-display: 3
+ tags:
+ description: >-
+ __Filterable__ Any tags applied to this object. Use
+ [tags](https://techdocs.akamai.com/linode-api/reference/post-tag)
+ to label and organize your cloud computing resources.
+ example:
+ - example tag
+ - another example
+ items:
+ type: string
+ type: array
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ updated:
+ description: __Read-only__ When this volume was last updated.
+ example: '2018-01-01T00:01:01'
+ format: date-time
+ readOnly: true
+ type: string
+ title: Volume
+ type: object
+ x-akamai:
+ file-path: schemas/volume.yaml
+ x-example:
+ x-ref: ../examples/post-resize-volume-200.json
+ description: Volume resize started.
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
- parameters:
- - name: volumeId
- in: path
- description: ID of the Volume to resize.
- required: true
- schema:
- type: integer
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - volumes:read_write
+ summary: Resize a volume
+ tags:
+ - Volumes
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli volumes resize 12345 \
+ --size 30
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: volumes:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-charge: true
+ x-linode-cli-action: resize
+ parameters:
+ - description: ID of the Volume to resize.
+ example: '{{volumeId}}'
+ in: path
+ name: volumeId
+ required: true
+ schema:
+ example: 251
+ type: integer
+ x-akamai:
+ file-path: parameters/volume-id-path-e4f0f1b5.yaml
+ x-akamai:
+ file-path: paths/volume-resize.yaml
+ path-info: /{apiVersion}/volumes/{volumeId}/resize
+ x-linode-cli-command: volumes
+components:
+ x-stackQL-resources:
+ volumes:
+ id: linode.volumes.volumes
+ name: volumes
+ title: Volumes
+ methods:
+ post_volume:
+ operation:
+ $ref: '#/paths/~1volumes/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_volumes:
+ operation:
+ $ref: '#/paths/~1volumes/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_volume:
+ operation:
+ $ref: '#/paths/~1volumes~1{volumeId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_volume:
+ operation:
+ $ref: '#/paths/~1volumes~1{volumeId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_volume:
+ operation:
+ $ref: '#/paths/~1volumes~1{volumeId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_attach_volume:
+ operation:
+ $ref: '#/paths/~1volumes~1{volumeId}~1attach/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_clone_volume:
+ operation:
+ $ref: '#/paths/~1volumes~1{volumeId}~1clone/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_detach_volume:
+ operation:
+ $ref: '#/paths/~1volumes~1{volumeId}~1detach/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ post_resize_volume:
+ operation:
+ $ref: '#/paths/~1volumes~1{volumeId}~1resize/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/volumes/methods/get_volume'
+ - $ref: '#/components/x-stackQL-resources/volumes/methods/get_volumes'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/volumes/methods/post_volume'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/volumes/methods/delete_volume'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/volumes/methods/put_volume'
+ types:
+ id: linode.volumes.types
+ name: types
+ title: Types
+ methods:
+ get_volume_types:
+ operation:
+ $ref: '#/paths/~1volumes~1types/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/types/methods/get_volume_types'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+servers:
+ - url: https://api.linode.com/v4
diff --git a/providers/src/linode/v00.00.00000/services/vpcs.yaml b/providers/src/linode/v00.00.00000/services/vpcs.yaml
new file mode 100644
index 00000000..ad99d037
--- /dev/null
+++ b/providers/src/linode/v00.00.00000/services/vpcs.yaml
@@ -0,0 +1,3714 @@
+openapi: 3.0.1
+info:
+ title: vpcs API
+ description: linode vpcs API
+ version: 4.208.1
+paths:
+ /vpcs:
+ post:
+ description: >-
+ Create a new VPC and optionally associated VPC Subnets.
+
+
+ - Users must have the `add_vpc` grant to access this operation.
+
+ - A successful request triggers a `vpc_create` event and `subnet_create`
+ events for any created VPC Subnets.
+
+
+ Once a VPC is created, it can be attached to a Linode by assigning a VPC
+ Subnet to one of the Linode's Configuration Profile Interfaces. This
+ step can be accomplished with the following operations:
+
+
+ - [Create a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+
+ - [Create a config
+ profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config)
+
+ - [Update a config
+ profile](https://techdocs.akamai.com/linode-api/reference/put-linode-config)
+
+ - [Add a configuration profile
+ interface](https://techdocs.akamai.com/linode-api/reference/post-linode-config-interface)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-vpc
+ operationId: post-vpc
+ requestBody:
+ content:
+ application/json:
+ schema:
+ allOf:
+ - required:
+ - label
+ - region
+ - properties:
+ subnets:
+ required:
+ - ipv4
+ - label
+ type: object
+ - additionalProperties: false
+ description: An object describing a VPC belonging to the Account.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of VPC
+ creation.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ default: ''
+ description: A written description to help distinguish the VPC.
+ example: A description of my VPC.
+ maxLength: 255
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Filterable__, __Read-only__ The unique ID of the VPC.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ The VPC's label, for display purposes
+ only.
+
+
+ - Needs to be unique among the Account's VPCs.
+
+ - Can only contain ASCII letters, numbers, and hyphens
+ (`-`). You can't use two consecutive hyphens (`--`).
+ example: cool-vpc
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ region:
+ description: __Filterable__ The Region for the VPC.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ subnets:
+ description: A list of subnets associated with the VPC.
+ items:
+ additionalProperties: false
+ description: An object describing a VPC Subnet.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of VPC
+ Subnet creation.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: >-
+ __Filterable__, __Read-only__ The unique ID of the
+ VPC Subnet.
+ example: 456
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ ipv4:
+ description: >-
+ IPv4 range in CIDR canonical form.
+
+
+ - The range must belong to a private address space
+ as defined in
+ [RFC1918](https://datatracker.ietf.org/doc/html/rfc1918).
+
+ - Allowed prefix lengths: 1-29.
+
+ - The range must not overlap with
+ 192.168.128.0/17.
+
+ - The range must not overlap with other Subnets on
+ the same VPC.
+ example: 10.0.1.0/24
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: >-
+ __Filterable__ The VPC Subnet's label, for display
+ purposes only.
+
+
+ - Must be unique among the VPC's Subnets.
+
+ - Can only contain ASCII letters, numbers, and
+ hyphens (`-`). You can't use two consecutive
+ hyphens (`--`).
+ example: cool-vpc-subnet
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linodes:
+ description: >-
+ __Read-only__ An array of Linode IDs assigned to
+ the VPC Subnet.
+
+
+ A Linode is assigned to a VPC Subnet if it has a
+ Configuration Profile with a `vpc` purpose
+ interface with the subnet's `subnet_id`. Even if
+ the Configuration Profile is not active, meaning
+ the Linode does not have access to the Subnet, the
+ Linode still appears in this array.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: ID of a Linode assigned to the VPC Subnet.
+ example: 111
+ type: integer
+ interfaces:
+ description: >-
+ VPC purpose interfaces with the subnet's
+ `subnet_id` assigned to the Linode.
+ items:
+ additionalProperties: false
+ properties:
+ active:
+ description: >-
+ Returns `true` if the Interface is in
+ use, meaning that the Linode was powered
+ on using the Configuration Profile to
+ which the Interface belongs. Otherwise
+ returns `false`.
+ example: true
+ type: boolean
+ config_id:
+ description: >-
+ The globally general entity identifier
+ for the Linode configuration profile
+ that includes the VPC. If this is a VPC
+ Linode interface, the value is `null`.
+ example: 4567
+ nullable: true
+ type: integer
+ id:
+ description: ID of the interface.
+ example: 421
+ type: integer
+ type: object
+ type: array
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-display: 5
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of the
+ most recent VPC Subnet update.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vpc-subnet.yaml
+ type: array
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of the most
+ recent VPC update.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vpc.yaml
+ x-akamai:
+ file-path: schemas/added-post-vpc.yaml
+ x-example:
+ x-ref: ../examples/post-vpc.json
+ description: VPC Create request object.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An object describing a VPC belonging to the Account.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of VPC
+ creation.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ default: ''
+ description: A written description to help distinguish the VPC.
+ example: A description of my VPC.
+ maxLength: 255
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Filterable__, __Read-only__ The unique ID of the VPC.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ The VPC's label, for display purposes only.
+
+
+ - Needs to be unique among the Account's VPCs.
+
+ - Can only contain ASCII letters, numbers, and hyphens
+ (`-`). You can't use two consecutive hyphens (`--`).
+ example: cool-vpc
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ region:
+ description: __Filterable__ The Region for the VPC.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ subnets:
+ description: A list of subnets associated with the VPC.
+ items:
+ additionalProperties: false
+ description: An object describing a VPC Subnet.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of VPC
+ Subnet creation.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: >-
+ __Filterable__, __Read-only__ The unique ID of the
+ VPC Subnet.
+ example: 456
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ ipv4:
+ description: >-
+ IPv4 range in CIDR canonical form.
+
+
+ - The range must belong to a private address space
+ as defined in
+ [RFC1918](https://datatracker.ietf.org/doc/html/rfc1918).
+
+ - Allowed prefix lengths: 1-29.
+
+ - The range must not overlap with 192.168.128.0/17.
+
+ - The range must not overlap with other Subnets on
+ the same VPC.
+ example: 10.0.1.0/24
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: >-
+ __Filterable__ The VPC Subnet's label, for display
+ purposes only.
+
+
+ - Must be unique among the VPC's Subnets.
+
+ - Can only contain ASCII letters, numbers, and
+ hyphens (`-`). You can't use two consecutive hyphens
+ (`--`).
+ example: cool-vpc-subnet
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linodes:
+ description: >-
+ __Read-only__ An array of Linode IDs assigned to the
+ VPC Subnet.
+
+
+ A Linode is assigned to a VPC Subnet if it has a
+ Configuration Profile with a `vpc` purpose interface
+ with the subnet's `subnet_id`. Even if the
+ Configuration Profile is not active, meaning the
+ Linode does not have access to the Subnet, the
+ Linode still appears in this array.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: ID of a Linode assigned to the VPC Subnet.
+ example: 111
+ type: integer
+ interfaces:
+ description: >-
+ VPC purpose interfaces with the subnet's
+ `subnet_id` assigned to the Linode.
+ items:
+ additionalProperties: false
+ properties:
+ active:
+ description: >-
+ Returns `true` if the Interface is in
+ use, meaning that the Linode was powered
+ on using the Configuration Profile to
+ which the Interface belongs. Otherwise
+ returns `false`.
+ example: true
+ type: boolean
+ config_id:
+ description: >-
+ The globally general entity identifier
+ for the Linode configuration profile
+ that includes the VPC. If this is a VPC
+ Linode interface, the value is `null`.
+ example: 4567
+ nullable: true
+ type: integer
+ id:
+ description: ID of the interface.
+ example: 421
+ type: integer
+ type: object
+ type: array
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-display: 5
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of the
+ most recent VPC Subnet update.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vpc-subnet.yaml
+ type: array
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of the most
+ recent VPC update.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vpc.yaml
+ x-example:
+ x-ref: ../examples/post-vpc-200.json
+ description: The new VPC.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - vpc:read_write
+ summary: Create a VPC
+ tags:
+ - VPCs
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli vpcs create \
+ --description "A description of my VPC." \
+ --label cool-vpc \
+ --region us-east \
+ --subnets.label cool-vpc-subnet \
+ --subnets.ipv4 10.0.1.0/24
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: vpc:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: create
+ x-linode-grant: add_vpcs
+ get:
+ description: >-
+ Display all VPCs on your account.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-vpcs
+ operationId: get-vpcs
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - created: '2023-07-11T00:00:00'
+ description: A description of my VPC.
+ id: 123
+ label: cool-vpc
+ region: us-east
+ subnets:
+ - created: '2023-07-11T00:00:00'
+ id: 456
+ ipv4: 10.1.0.0/24
+ label: cool-vpc-subnet
+ linodes:
+ - id: 111
+ interfaces:
+ - active: true
+ config_id: null
+ id: 421
+ updated: '2023-09-11T00:00:00'
+ updated: '2023-09-11T00:00:00'
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: An object describing a VPC belonging to the Account.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of
+ VPC creation.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ default: ''
+ description: >-
+ A written description to help distinguish the
+ VPC.
+ example: A description of my VPC.
+ maxLength: 255
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: >-
+ __Filterable__, __Read-only__ The unique ID of
+ the VPC.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ The VPC's label, for display
+ purposes only.
+
+
+ - Needs to be unique among the Account's VPCs.
+
+ - Can only contain ASCII letters, numbers, and
+ hyphens (`-`). You can't use two consecutive
+ hyphens (`--`).
+ example: cool-vpc
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ region:
+ description: __Filterable__ The Region for the VPC.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ subnets:
+ description: A list of subnets associated with the VPC.
+ items:
+ additionalProperties: false
+ description: An object describing a VPC Subnet.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The
+ date-time of VPC Subnet creation.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: >-
+ __Filterable__, __Read-only__ The unique
+ ID of the VPC Subnet.
+ example: 456
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ ipv4:
+ description: >-
+ IPv4 range in CIDR canonical form.
+
+
+ - The range must belong to a private
+ address space as defined in
+ [RFC1918](https://datatracker.ietf.org/doc/html/rfc1918).
+
+ - Allowed prefix lengths: 1-29.
+
+ - The range must not overlap with
+ 192.168.128.0/17.
+
+ - The range must not overlap with other
+ Subnets on the same VPC.
+ example: 10.0.1.0/24
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: >-
+ __Filterable__ The VPC Subnet's label, for
+ display purposes only.
+
+
+ - Must be unique among the VPC's Subnets.
+
+ - Can only contain ASCII letters, numbers,
+ and hyphens (`-`). You can't use two
+ consecutive hyphens (`--`).
+ example: cool-vpc-subnet
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linodes:
+ description: >-
+ __Read-only__ An array of Linode IDs
+ assigned to the VPC Subnet.
+
+
+ A Linode is assigned to a VPC Subnet if it
+ has a Configuration Profile with a `vpc`
+ purpose interface with the subnet's
+ `subnet_id`. Even if the Configuration
+ Profile is not active, meaning the Linode
+ does not have access to the Subnet, the
+ Linode still appears in this array.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: >-
+ ID of a Linode assigned to the VPC
+ Subnet.
+ example: 111
+ type: integer
+ interfaces:
+ description: >-
+ VPC purpose interfaces with the subnet's
+ `subnet_id` assigned to the Linode.
+ items:
+ additionalProperties: false
+ properties:
+ active:
+ description: >-
+ Returns `true` if the Interface is in
+ use, meaning that the Linode was powered
+ on using the Configuration Profile to
+ which the Interface belongs. Otherwise
+ returns `false`.
+ example: true
+ type: boolean
+ config_id:
+ description: >-
+ The globally general entity identifier
+ for the Linode configuration profile
+ that includes the VPC. If this is a VPC
+ Linode interface, the value is `null`.
+ example: 4567
+ nullable: true
+ type: integer
+ id:
+ description: ID of the interface.
+ example: 421
+ type: integer
+ type: object
+ type: array
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-display: 5
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ The
+ date-time of the most recent VPC Subnet
+ update.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vpc-subnet.yaml
+ type: array
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of
+ the most recent VPC update.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vpc.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-vpcs-200.yaml
+ description: A paginated list of VPC objects.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth: []
+ summary: List VPCs
+ tags:
+ - VPCs
+ x-akamai:
+ tabs:
+ - syntax: linode-cli vpcs list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action:
+ - list
+ - ls
+ parameters: []
+ x-akamai:
+ file-path: paths/vpcs.yaml
+ path-info: /{apiVersion}/vpcs
+ x-linode-cli-command: vpcs
+ /vpcs/ips:
+ get:
+ description: >-
+ Returns a paginated list of all VPC IP addresses and address ranges on
+ your account.
+
+
+ > 📘
+
+ >
+
+ > If a Linode has several configuration profiles that include a VPC
+ interface, address information for all of them is listed in the
+ response. Since VPCs can use the same address space, you may see
+ duplicate IP addresses.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-vpcs-ips
+ operationId: get-vpcs-ips
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - active: true
+ address: 172.30.254.145
+ address_range: null
+ config_id: 4567
+ gateway: 172.23.210.1
+ interface_id: 2435
+ linode_id: 123
+ nat_1_1: 192.0.2.1
+ prefix: 24
+ region: us-east
+ subnet_id: 101
+ subnet_mask: 192.0.2.3
+ vpc_id: 7654
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ additionalProperties: false
+ allOf:
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ A VPC IP address that exists in Linode's system,
+ specific to the response for the [List VPC IP
+ addresses](https://techdocs.akamai.com/linode-api/reference/get-vpcs-ips)
+ operation. Returned as an empty set for Linodes that
+ are not part of a VPC.
+ properties:
+ active:
+ description: >-
+ __Filterable__, __Read-only__ Returns `true` if
+ the VPC interface is in use, meaning that the
+ Linode was powered on using the `config_id` to
+ which the interface belongs. Otherwise returns
+ `false`.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ address:
+ description: >-
+ __Read-only__ An IPv4 address configured for
+ this VPC interface. These follow the [RFC
+ 1918](https://datatracker.ietf.org/doc/html/rfc1918)
+ private address format. Displayed as `null` if
+ an `address_range`.
+ example: 192.0.2.141
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ address_range:
+ description: >-
+ __Read-only__ A range of IPv4 addresses
+ configured for this VPC interface. Displayed as
+ `null` if a single `address`.
+ nullable: true
+ readOnly: true
+ type: string
+ config_id:
+ description: >-
+ __Filterable__, __Read-only__ The globally
+ general entity identifier for the Linode
+ configuration profile that includes the VPC. If
+ this is a VPC Linode interface, the value is
+ `null`.
+ example: 4567
+ nullable: true
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ gateway:
+ description: >-
+ __Read-only__ The default gateway for the VPC
+ subnet that the IP or IP range belongs to.
+ example: 192.0.2.1
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ interface_id:
+ description: >-
+ __Beta__, __Read-only__ The globally general API
+ entity identifier for the Linode interface.
+ example: 2435
+ readOnly: true
+ type: integer
+ x-akamai:
+ status: BETA
+ linode_id:
+ description: >-
+ __Filterable__, __Read-only__ The identifier for
+ the Linode the VPC interface currently belongs
+ to.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ nat_1_1:
+ description: >-
+ __Read-only__ The public IP address used for NAT
+ 1:1 with the VPC. This is empty if NAT 1:1 isn't
+ used.
+ example: 192.168.0.42
+ format: ip
+ readOnly: true
+ type: string
+ prefix:
+ description: >-
+ __Read-only__ The number of bits set in the
+ `subnet_mask`.
+ example: 24
+ nullable: true
+ readOnly: true
+ type: integer
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The region of the
+ VPC.
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ subnet_id:
+ description: The `id` of the VPC Subnet for this interface.
+ example: 101
+ nullable: false
+ type: integer
+ x-linode-cli-display: 7
+ subnet_mask:
+ description: >-
+ __Read-only__ The mask that separates host bits
+ from network bits for the `address` or
+ `address_range`.
+ example: 255.255.255.0
+ format: ip
+ readOnly: true
+ type: string
+ vpc_id:
+ description: >-
+ __Filterable__, __Read-only__ The unique
+ globally general API entity identifier for the
+ VPC.
+ example: 7654
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/ip-addresses-vpc.yaml
+ type: array
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-vpcs-ips-200.yaml
+ description: A paginated list of VPC interface IP addresses.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_only
+ summary: List VPC IP addresses
+ tags:
+ - IP addresses
+ x-akamai:
+ tabs:
+ - syntax: linode-cli vpcs ips-all-list
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: ips:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - ips-all-list
+ - ips-all-ls
+ x-linode-grant: read_only
+ parameters: []
+ x-akamai:
+ file-path: paths/vpcs-ips.yaml
+ path-info: /{apiVersion}/vpcs/ips
+ x-linode-cli-command: vpcs
+ /vpcs/{vpcId}:
+ get:
+ description: >-
+ Get information about a single VPC.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-vpc
+ operationId: get-vpc
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An object describing a VPC belonging to the Account.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of VPC
+ creation.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ default: ''
+ description: A written description to help distinguish the VPC.
+ example: A description of my VPC.
+ maxLength: 255
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Filterable__, __Read-only__ The unique ID of the VPC.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ The VPC's label, for display purposes only.
+
+
+ - Needs to be unique among the Account's VPCs.
+
+ - Can only contain ASCII letters, numbers, and hyphens
+ (`-`). You can't use two consecutive hyphens (`--`).
+ example: cool-vpc
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ region:
+ description: __Filterable__ The Region for the VPC.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ subnets:
+ description: A list of subnets associated with the VPC.
+ items:
+ additionalProperties: false
+ description: An object describing a VPC Subnet.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of VPC
+ Subnet creation.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: >-
+ __Filterable__, __Read-only__ The unique ID of the
+ VPC Subnet.
+ example: 456
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ ipv4:
+ description: >-
+ IPv4 range in CIDR canonical form.
+
+
+ - The range must belong to a private address space
+ as defined in
+ [RFC1918](https://datatracker.ietf.org/doc/html/rfc1918).
+
+ - Allowed prefix lengths: 1-29.
+
+ - The range must not overlap with 192.168.128.0/17.
+
+ - The range must not overlap with other Subnets on
+ the same VPC.
+ example: 10.0.1.0/24
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: >-
+ __Filterable__ The VPC Subnet's label, for display
+ purposes only.
+
+
+ - Must be unique among the VPC's Subnets.
+
+ - Can only contain ASCII letters, numbers, and
+ hyphens (`-`). You can't use two consecutive hyphens
+ (`--`).
+ example: cool-vpc-subnet
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linodes:
+ description: >-
+ __Read-only__ An array of Linode IDs assigned to the
+ VPC Subnet.
+
+
+ A Linode is assigned to a VPC Subnet if it has a
+ Configuration Profile with a `vpc` purpose interface
+ with the subnet's `subnet_id`. Even if the
+ Configuration Profile is not active, meaning the
+ Linode does not have access to the Subnet, the
+ Linode still appears in this array.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: ID of a Linode assigned to the VPC Subnet.
+ example: 111
+ type: integer
+ interfaces:
+ description: >-
+ VPC purpose interfaces with the subnet's
+ `subnet_id` assigned to the Linode.
+ items:
+ additionalProperties: false
+ properties:
+ active:
+ description: >-
+ Returns `true` if the Interface is in
+ use, meaning that the Linode was powered
+ on using the Configuration Profile to
+ which the Interface belongs. Otherwise
+ returns `false`.
+ example: true
+ type: boolean
+ config_id:
+ description: >-
+ The globally general entity identifier
+ for the Linode configuration profile
+ that includes the VPC. If this is a VPC
+ Linode interface, the value is `null`.
+ example: 4567
+ nullable: true
+ type: integer
+ id:
+ description: ID of the interface.
+ example: 421
+ type: integer
+ type: object
+ type: array
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-display: 5
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of the
+ most recent VPC Subnet update.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vpc-subnet.yaml
+ type: array
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of the most
+ recent VPC update.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vpc.yaml
+ x-example:
+ x-ref: ../examples/get-vpc-200.json
+ description: A VPC object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth: []
+ summary: Get a VPC
+ tags:
+ - VPCs
+ x-akamai:
+ tabs:
+ - syntax: linode-cli vpcs view $vpcId
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: view
+ put:
+ description: >-
+ Update an existing VPC.
+
+
+ - The User accessing this operation must have `read_write` grants to the
+ VPC.
+
+ - A successful request triggers a `vpc_update` event.
+
+
+ To update a VPC's Subnet, run the [Update a VPC
+ subnet](https://techdocs.akamai.com/linode-api/reference/put-vpc-subnet)
+ operation.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-vpc
+ operationId: put-vpc
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A VPC Update request object.
+ properties:
+ description:
+ default: ''
+ description: A written description to help distinguish the VPC.
+ example: '{{description}}'
+ maxLength: 255
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: >-
+ __Filterable__ The VPC's label, for display purposes only.
+
+
+ - Needs to be unique among the Account's VPCs.
+
+ - Can only contain ASCII letters, numbers, and hyphens
+ (`-`). You can't use two consecutive hyphens (`--`).
+ example: '{{label}}'
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-vpc.yaml
+ x-example:
+ x-ref: ../examples/put-vpc.json
+ description: VPC Update request object.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An object describing a VPC belonging to the Account.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of VPC
+ creation.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ description:
+ default: ''
+ description: A written description to help distinguish the VPC.
+ example: A description of my VPC.
+ maxLength: 255
+ type: string
+ x-linode-cli-display: 3
+ id:
+ description: __Filterable__, __Read-only__ The unique ID of the VPC.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ label:
+ description: >-
+ __Filterable__ The VPC's label, for display purposes only.
+
+
+ - Needs to be unique among the Account's VPCs.
+
+ - Can only contain ASCII letters, numbers, and hyphens
+ (`-`). You can't use two consecutive hyphens (`--`).
+ example: cool-vpc
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ region:
+ description: __Filterable__ The Region for the VPC.
+ example: us-east
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 4
+ x-linode-filterable: true
+ subnets:
+ description: A list of subnets associated with the VPC.
+ items:
+ additionalProperties: false
+ description: An object describing a VPC Subnet.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of VPC
+ Subnet creation.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: >-
+ __Filterable__, __Read-only__ The unique ID of the
+ VPC Subnet.
+ example: 456
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ ipv4:
+ description: >-
+ IPv4 range in CIDR canonical form.
+
+
+ - The range must belong to a private address space
+ as defined in
+ [RFC1918](https://datatracker.ietf.org/doc/html/rfc1918).
+
+ - Allowed prefix lengths: 1-29.
+
+ - The range must not overlap with 192.168.128.0/17.
+
+ - The range must not overlap with other Subnets on
+ the same VPC.
+ example: 10.0.1.0/24
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: >-
+ __Filterable__ The VPC Subnet's label, for display
+ purposes only.
+
+
+ - Must be unique among the VPC's Subnets.
+
+ - Can only contain ASCII letters, numbers, and
+ hyphens (`-`). You can't use two consecutive hyphens
+ (`--`).
+ example: cool-vpc-subnet
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linodes:
+ description: >-
+ __Read-only__ An array of Linode IDs assigned to the
+ VPC Subnet.
+
+
+ A Linode is assigned to a VPC Subnet if it has a
+ Configuration Profile with a `vpc` purpose interface
+ with the subnet's `subnet_id`. Even if the
+ Configuration Profile is not active, meaning the
+ Linode does not have access to the Subnet, the
+ Linode still appears in this array.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: ID of a Linode assigned to the VPC Subnet.
+ example: 111
+ type: integer
+ interfaces:
+ description: >-
+ VPC purpose interfaces with the subnet's
+ `subnet_id` assigned to the Linode.
+ items:
+ additionalProperties: false
+ properties:
+ active:
+ description: >-
+ Returns `true` if the Interface is in
+ use, meaning that the Linode was powered
+ on using the Configuration Profile to
+ which the Interface belongs. Otherwise
+ returns `false`.
+ example: true
+ type: boolean
+ config_id:
+ description: >-
+ The globally general entity identifier
+ for the Linode configuration profile
+ that includes the VPC. If this is a VPC
+ Linode interface, the value is `null`.
+ example: 4567
+ nullable: true
+ type: integer
+ id:
+ description: ID of the interface.
+ example: 421
+ type: integer
+ type: object
+ type: array
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-display: 5
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of the
+ most recent VPC Subnet update.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vpc-subnet.yaml
+ type: array
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of the most
+ recent VPC update.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vpc.yaml
+ x-example:
+ x-ref: ../examples/get-vpc-200.json
+ description: The updated VPC.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - vpc:read_write
+ summary: Update a VPC
+ tags:
+ - VPCs
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli vpcs update $vpcId \
+ --description "A description of my VPC."
+ --label cool-vpc
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: vpc:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: update
+ x-linode-grant: read_write
+ delete:
+ description: >-
+ Delete a single VPC and all of its Subnets.
+
+
+ - The User accessing this operation must have `read_write` grants to the
+ VPC.
+
+ - A successful request triggers a `vpc_delete` event and `subnet_delete`
+ events for each deleted VPC Subnet.
+
+ - All of the VPC's Subnets must be eligible for deletion. Accordingly,
+ all Configuration Profile Interfaces that each Subnet is assigned to
+ must first be deleted. If those Interfaces are active, the associated
+ Linodes must first be shut down before they can be removed. If any
+ Subnet cannot be deleted, then neither the VPC nor any of its Subnets
+ are deleted.
+
+ - You can't delete a VPC if a NodeBalancer is attached to one of its
+ subnets.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-vpc
+ operationId: delete-vpc
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-vpc-200.json
+ description: Delete request successful.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - vpc:read_write
+ summary: Delete a VPC
+ tags:
+ - VPCs
+ x-akamai:
+ tabs:
+ - syntax: linode-cli vpcs delete $vpcId
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: vpc:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: delete
+ x-linode-grant: read_write
+ parameters:
+ - description: The `id` of the VPC.
+ example: '{{vpcId}}'
+ in: path
+ name: vpcId
+ required: true
+ schema:
+ example: 527
+ type: integer
+ x-akamai:
+ file-path: parameters/vpc-id.yaml
+ x-akamai:
+ file-path: paths/vpc.yaml
+ path-info: /{apiVersion}/vpcs/{vpcId}
+ x-linode-cli-command: vpcs
+ /vpcs/{vpcId}/ips:
+ get:
+ description: >-
+ Returns a paginated list of IP addresses for a single VPC.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-vpc-ips
+ operationId: get-vpc-ips
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - active: true
+ address: 198.51.100.42
+ address_range: null
+ config_id: 4567
+ gateway: 192.0.2.1
+ interface_id: 2435
+ linode_id: 123
+ nat_1_1: 192.0.2.110
+ prefix: 24
+ region: us-east
+ subnet_id: 101
+ subnet_mask: 192.0.2.1
+ vpc_id: 7654
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ additionalProperties: false
+ allOf:
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: >-
+ A VPC IP address that exists in Linode's system,
+ specific to the response for the [List VPC IP
+ addresses](https://techdocs.akamai.com/linode-api/reference/get-vpcs-ips)
+ operation. Returned as an empty set for Linodes that
+ are not part of a VPC.
+ properties:
+ active:
+ description: >-
+ __Filterable__, __Read-only__ Returns `true` if
+ the VPC interface is in use, meaning that the
+ Linode was powered on using the `config_id` to
+ which the interface belongs. Otherwise returns
+ `false`.
+ example: true
+ readOnly: true
+ type: boolean
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ address:
+ description: >-
+ __Read-only__ An IPv4 address configured for
+ this VPC interface. These follow the [RFC
+ 1918](https://datatracker.ietf.org/doc/html/rfc1918)
+ private address format. Displayed as `null` if
+ an `address_range`.
+ example: 192.0.2.141
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ x-linode-cli-display: 1
+ address_range:
+ description: >-
+ __Read-only__ A range of IPv4 addresses
+ configured for this VPC interface. Displayed as
+ `null` if a single `address`.
+ nullable: true
+ readOnly: true
+ type: string
+ config_id:
+ description: >-
+ __Filterable__, __Read-only__ The globally
+ general entity identifier for the Linode
+ configuration profile that includes the VPC. If
+ this is a VPC Linode interface, the value is
+ `null`.
+ example: 4567
+ nullable: true
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ gateway:
+ description: >-
+ __Read-only__ The default gateway for the VPC
+ subnet that the IP or IP range belongs to.
+ example: 192.0.2.1
+ format: ip
+ nullable: true
+ readOnly: true
+ type: string
+ interface_id:
+ description: >-
+ __Beta__, __Read-only__ The globally general API
+ entity identifier for the Linode interface.
+ example: 2435
+ readOnly: true
+ type: integer
+ x-akamai:
+ status: BETA
+ linode_id:
+ description: >-
+ __Filterable__, __Read-only__ The identifier for
+ the Linode the VPC interface currently belongs
+ to.
+ example: 123
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ nat_1_1:
+ description: >-
+ __Read-only__ The public IP address used for NAT
+ 1:1 with the VPC. This is empty if NAT 1:1 isn't
+ used.
+ example: 192.168.0.42
+ format: ip
+ readOnly: true
+ type: string
+ prefix:
+ description: >-
+ __Read-only__ The number of bits set in the
+ `subnet_mask`.
+ example: 24
+ nullable: true
+ readOnly: true
+ type: integer
+ region:
+ description: >-
+ __Filterable__, __Read-only__ The region of the
+ VPC.
+ example: us-east
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 5
+ x-linode-filterable: true
+ subnet_id:
+ description: The `id` of the VPC Subnet for this interface.
+ example: 101
+ nullable: false
+ type: integer
+ x-linode-cli-display: 7
+ subnet_mask:
+ description: >-
+ __Read-only__ The mask that separates host bits
+ from network bits for the `address` or
+ `address_range`.
+ example: 255.255.255.0
+ format: ip
+ readOnly: true
+ type: string
+ vpc_id:
+ description: >-
+ __Filterable__, __Read-only__ The unique
+ globally general API entity identifier for the
+ VPC.
+ example: 7654
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 8
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/ip-addresses-vpc.yaml
+ type: array
+ type: object
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-vpc-ips-200.yaml
+ description: The IP addresses for the requested VPC.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_only
+ summary: List a VPC's IP addresses
+ tags:
+ - IP addresses
+ x-akamai:
+ tabs:
+ - syntax: linode-cli vpcs ip-list 123
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: ips:read_only
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action:
+ - ips-list
+ - ips-ls
+ parameters:
+ - description: The `id` of the VPC.
+ example: '{{vpcId}}'
+ in: path
+ name: vpcId
+ required: true
+ schema:
+ example: 527
+ type: integer
+ x-akamai:
+ file-path: parameters/vpc-id.yaml
+ x-akamai:
+ file-path: paths/vpc-ips.yaml
+ path-info: /{apiVersion}/vpcs/{vpcId}/ips
+ x-linode-cli-command: vpcs
+ /vpcs/{vpcId}/subnets:
+ post:
+ description: >-
+ Create a VPC Subnet.
+
+
+ - The User accessing this operation must have `read_write` grants to the
+ VPC.
+
+ - A successful request triggers a `subnet_create` event.
+
+
+ Once a VPC Subnet is created, it can be attached to a Linode by
+ assigning the Subnet to one of the Linode's Configuration Profile
+ Interfaces. This step can be accomplished with the following operations:
+
+
+ - [Create a
+ Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
+
+ - [Create a config
+ profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config)
+
+ - [Update a config
+ profile](https://techdocs.akamai.com/linode-api/reference/put-linode-config)
+
+ - [Add a configuration profile
+ interface](https://techdocs.akamai.com/linode-api/reference/post-linode-config-interface)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/post-vpc-subnet
+ operationId: post-vpc-subnet
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: VPC Subnet Create request object.
+ properties:
+ ipv4:
+ description: >-
+ IPv4 range in CIDR canonical form.
+
+
+ - The range must belong to a private address space as
+ defined in
+ [RFC1918](https://datatracker.ietf.org/doc/html/rfc1918).
+
+ - Allowed prefix lengths: 1-29.
+
+ - The range must not overlap with 192.168.128.0/17.
+
+ - The range must not overlap with other Subnets on the same
+ VPC.
+ example: '{{ipv4}}'
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: >-
+ __Filterable__ The VPC Subnet's label, for display purposes
+ only.
+
+
+ - Must be unique among the VPC's Subnets.
+
+ - Can only contain ASCII letters, numbers, and hyphens
+ (`-`). You can't use two consecutive hyphens (`--`).
+ example: '{{label}}'
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ required:
+ - ipv4
+ - label
+ type: object
+ x-akamai:
+ file-path: schemas/added-post-vpc-subnet.yaml
+ x-example:
+ x-ref: ../examples/post-vpc-subnet.json
+ description: VPC Subnet Create request object.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An object describing a VPC Subnet.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of VPC Subnet
+ creation.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: >-
+ __Filterable__, __Read-only__ The unique ID of the VPC
+ Subnet.
+ example: 456
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ ipv4:
+ description: >-
+ IPv4 range in CIDR canonical form.
+
+
+ - The range must belong to a private address space as
+ defined in
+ [RFC1918](https://datatracker.ietf.org/doc/html/rfc1918).
+
+ - Allowed prefix lengths: 1-29.
+
+ - The range must not overlap with 192.168.128.0/17.
+
+ - The range must not overlap with other Subnets on the
+ same VPC.
+ example: 10.0.1.0/24
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: >-
+ __Filterable__ The VPC Subnet's label, for display
+ purposes only.
+
+
+ - Must be unique among the VPC's Subnets.
+
+ - Can only contain ASCII letters, numbers, and hyphens
+ (`-`). You can't use two consecutive hyphens (`--`).
+ example: cool-vpc-subnet
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linodes:
+ description: >-
+ __Read-only__ An array of Linode IDs assigned to the VPC
+ Subnet.
+
+
+ A Linode is assigned to a VPC Subnet if it has a
+ Configuration Profile with a `vpc` purpose interface with
+ the subnet's `subnet_id`. Even if the Configuration
+ Profile is not active, meaning the Linode does not have
+ access to the Subnet, the Linode still appears in this
+ array.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: ID of a Linode assigned to the VPC Subnet.
+ example: 111
+ type: integer
+ interfaces:
+ description: >-
+ VPC purpose interfaces with the subnet's `subnet_id`
+ assigned to the Linode.
+ items:
+ additionalProperties: false
+ properties:
+ active:
+ description: >-
+ Returns `true` if the Interface is in use,
+ meaning that the Linode was powered on using
+ the Configuration Profile to which the
+ Interface belongs. Otherwise returns `false`.
+ example: true
+ type: boolean
+ config_id:
+ description: >-
+ The globally general entity identifier for the
+ Linode configuration profile that includes the
+ VPC. If this is a VPC Linode interface, the
+ value is `null`.
+ example: 4567
+ nullable: true
+ type: integer
+ id:
+ description: ID of the interface.
+ example: 421
+ type: integer
+ type: object
+ type: array
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-display: 5
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of the most
+ recent VPC Subnet update.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vpc-subnet.yaml
+ x-example:
+ x-ref: ../examples/post-vpc-subnet-200.json
+ description: The new VPC Subnet.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - vpc:read_write
+ summary: Create a VPC subnet
+ tags:
+ - VPC subnets
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli vpcs subnet-create $vpcId \
+ --label cool-vpc-subnet \
+ --ipv4 10.0.1.0/24
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: vpc:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: subnet-create
+ x-linode-grant: read_write
+ get:
+ description: >-
+ Get information about all VPC Subnets associated with a VPC.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-vpc-subnets
+ operationId: get-vpc-subnets
+ parameters:
+ - description: The page of a collection to return.
+ example: '{{page}}'
+ in: query
+ name: page
+ required: false
+ schema:
+ default: 1
+ example: 6
+ minimum: 1
+ type: integer
+ x-akamai:
+ file-path: parameters/page-offset.yaml
+ - description: The number of items to return per page.
+ example: '{{page_size}}'
+ in: query
+ name: page_size
+ schema:
+ default: 100
+ example: 50
+ maximum: 500
+ minimum: 25
+ type: integer
+ x-akamai:
+ file-path: parameters/page-size.yaml
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - created: '2023-07-11T00:00:00'
+ id: 456
+ ipv4: 10.1.0.0/24
+ label: cool-vpc-subnet
+ linodes:
+ - id: 111
+ interfaces:
+ - active: true
+ config_id: null
+ id: 421
+ updated: '2023-09-11T00:00:00'
+ page: 1
+ pages: 1
+ results: 1
+ schema:
+ allOf:
+ - additionalProperties: false
+ description: >-
+ An envelope for paginated response. When accessing a
+ collection through a GET endpoint, the results are wrapped
+ in this envelope which includes metadata about those
+ results. Results are presented within a `data` array. See
+ [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination)
+ for more information.
+ properties:
+ page:
+ description: >-
+ __Read-only__ The current
+ [page](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ pages:
+ description: >-
+ __Read-only__ The total number of
+ [pages](https://techdocs.akamai.com/linode-api/reference/pagination).
+ example: 1
+ readOnly: true
+ type: integer
+ results:
+ description: __Read-only__ The total number of results.
+ example: 1
+ readOnly: true
+ type: integer
+ type: object
+ x-akamai:
+ file-path: schemas/pagination-envelope.yaml
+ - properties:
+ data:
+ items:
+ additionalProperties: false
+ description: An object describing a VPC Subnet.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of
+ VPC Subnet creation.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: >-
+ __Filterable__, __Read-only__ The unique ID of
+ the VPC Subnet.
+ example: 456
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ ipv4:
+ description: >-
+ IPv4 range in CIDR canonical form.
+
+
+ - The range must belong to a private address
+ space as defined in
+ [RFC1918](https://datatracker.ietf.org/doc/html/rfc1918).
+
+ - Allowed prefix lengths: 1-29.
+
+ - The range must not overlap with
+ 192.168.128.0/17.
+
+ - The range must not overlap with other Subnets
+ on the same VPC.
+ example: 10.0.1.0/24
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: >-
+ __Filterable__ The VPC Subnet's label, for
+ display purposes only.
+
+
+ - Must be unique among the VPC's Subnets.
+
+ - Can only contain ASCII letters, numbers, and
+ hyphens (`-`). You can't use two consecutive
+ hyphens (`--`).
+ example: cool-vpc-subnet
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linodes:
+ description: >-
+ __Read-only__ An array of Linode IDs assigned to
+ the VPC Subnet.
+
+
+ A Linode is assigned to a VPC Subnet if it has a
+ Configuration Profile with a `vpc` purpose
+ interface with the subnet's `subnet_id`. Even if
+ the Configuration Profile is not active, meaning
+ the Linode does not have access to the Subnet,
+ the Linode still appears in this array.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: ID of a Linode assigned to the VPC Subnet.
+ example: 111
+ type: integer
+ interfaces:
+ description: >-
+ VPC purpose interfaces with the subnet's
+ `subnet_id` assigned to the Linode.
+ items:
+ additionalProperties: false
+ properties:
+ active:
+ description: >-
+ Returns `true` if the Interface is in
+ use, meaning that the Linode was powered
+ on using the Configuration Profile to
+ which the Interface belongs. Otherwise
+ returns `false`.
+ example: true
+ type: boolean
+ config_id:
+ description: >-
+ The globally general entity identifier
+ for the Linode configuration profile
+ that includes the VPC. If this is a VPC
+ Linode interface, the value is `null`.
+ example: 4567
+ nullable: true
+ type: integer
+ id:
+ description: ID of the interface.
+ example: 421
+ type: integer
+ type: object
+ type: array
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-display: 5
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of
+ the most recent VPC Subnet update.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vpc-subnet.yaml
+ type: array
+ type: object
+ x-akamai:
+ file-path: schemas/added-get-vpc-subnets-200.yaml
+ description: A paginated list of VPC Subnet objects.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth: []
+ summary: List VPC subnets
+ tags:
+ - VPC subnets
+ x-akamai:
+ tabs:
+ - syntax: linode-cli vpcs subnets-list $vpcId
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action:
+ - subnets-list
+ - subnets-ls
+ parameters:
+ - description: The `id` of the VPC.
+ example: '{{vpcId}}'
+ in: path
+ name: vpcId
+ required: true
+ schema:
+ example: 527
+ type: integer
+ x-akamai:
+ file-path: parameters/vpc-id.yaml
+ x-akamai:
+ file-path: paths/subnets.yaml
+ path-info: /{apiVersion}/vpcs/{vpcId}/subnets
+ x-linode-cli-command: vpcs
+ /vpcs/{vpcId}/subnets/{vpcSubnetId}:
+ get:
+ description: >-
+ Get information about a single VPC Subnet.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/get-vpc-subnet
+ operationId: get-vpc-subnet
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An object describing a VPC Subnet.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of VPC Subnet
+ creation.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: >-
+ __Filterable__, __Read-only__ The unique ID of the VPC
+ Subnet.
+ example: 456
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ ipv4:
+ description: >-
+ IPv4 range in CIDR canonical form.
+
+
+ - The range must belong to a private address space as
+ defined in
+ [RFC1918](https://datatracker.ietf.org/doc/html/rfc1918).
+
+ - Allowed prefix lengths: 1-29.
+
+ - The range must not overlap with 192.168.128.0/17.
+
+ - The range must not overlap with other Subnets on the
+ same VPC.
+ example: 10.0.1.0/24
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: >-
+ __Filterable__ The VPC Subnet's label, for display
+ purposes only.
+
+
+ - Must be unique among the VPC's Subnets.
+
+ - Can only contain ASCII letters, numbers, and hyphens
+ (`-`). You can't use two consecutive hyphens (`--`).
+ example: cool-vpc-subnet
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linodes:
+ description: >-
+ __Read-only__ An array of Linode IDs assigned to the VPC
+ Subnet.
+
+
+ A Linode is assigned to a VPC Subnet if it has a
+ Configuration Profile with a `vpc` purpose interface with
+ the subnet's `subnet_id`. Even if the Configuration
+ Profile is not active, meaning the Linode does not have
+ access to the Subnet, the Linode still appears in this
+ array.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: ID of a Linode assigned to the VPC Subnet.
+ example: 111
+ type: integer
+ interfaces:
+ description: >-
+ VPC purpose interfaces with the subnet's `subnet_id`
+ assigned to the Linode.
+ items:
+ additionalProperties: false
+ properties:
+ active:
+ description: >-
+ Returns `true` if the Interface is in use,
+ meaning that the Linode was powered on using
+ the Configuration Profile to which the
+ Interface belongs. Otherwise returns `false`.
+ example: true
+ type: boolean
+ config_id:
+ description: >-
+ The globally general entity identifier for the
+ Linode configuration profile that includes the
+ VPC. If this is a VPC Linode interface, the
+ value is `null`.
+ example: 4567
+ nullable: true
+ type: integer
+ id:
+ description: ID of the interface.
+ example: 421
+ type: integer
+ type: object
+ type: array
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-display: 5
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of the most
+ recent VPC Subnet update.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vpc-subnet.yaml
+ x-example:
+ x-ref: ../examples/get-vpc-subnet-200.json
+ description: A VPC Subnet object.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth: []
+ summary: Get a VPC subnet
+ tags:
+ - VPC subnets
+ x-akamai:
+ tabs:
+ - syntax: linode-cli vpcs subnet-view $vpcId $vpcSubnetId
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ x-linode-cli-action: subnet-view
+ put:
+ description: >-
+ Update a VPC Subnet.
+
+
+ - The User accessing this operation must have `read_write` grants to the
+ VPC.
+
+ - A successful request triggers a `subnet_update` event.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/put-vpc-subnet
+ operationId: put-vpc-subnet
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: A VPC Subnet Update request object.
+ properties:
+ label:
+ description: >-
+ __Filterable__ The VPC Subnet's label, for display purposes
+ only.
+
+
+ - Must be unique among the VPC's Subnets.
+
+ - Can only contain ASCII letters, numbers, and hyphens
+ (`-`). You can't use two consecutive hyphens (`--`).
+ example: '{{label}}'
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/added-put-vpc-subnet.yaml
+ x-example:
+ x-ref: ../examples/put-vpc-subnet.json
+ description: VPC Update request object.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ description: An object describing a VPC Subnet.
+ properties:
+ created:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of VPC Subnet
+ creation.
+ example: '2023-07-11T00:00:00'
+ format: date-time
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ id:
+ description: >-
+ __Filterable__, __Read-only__ The unique ID of the VPC
+ Subnet.
+ example: 456
+ readOnly: true
+ type: integer
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 1
+ x-linode-filterable: true
+ ipv4:
+ description: >-
+ IPv4 range in CIDR canonical form.
+
+
+ - The range must belong to a private address space as
+ defined in
+ [RFC1918](https://datatracker.ietf.org/doc/html/rfc1918).
+
+ - Allowed prefix lengths: 1-29.
+
+ - The range must not overlap with 192.168.128.0/17.
+
+ - The range must not overlap with other Subnets on the
+ same VPC.
+ example: 10.0.1.0/24
+ format: ip
+ type: string
+ x-linode-cli-display: 3
+ label:
+ description: >-
+ __Filterable__ The VPC Subnet's label, for display
+ purposes only.
+
+
+ - Must be unique among the VPC's Subnets.
+
+ - Can only contain ASCII letters, numbers, and hyphens
+ (`-`). You can't use two consecutive hyphens (`--`).
+ example: cool-vpc-subnet
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-cli-display: 2
+ x-linode-filterable: true
+ linodes:
+ description: >-
+ __Read-only__ An array of Linode IDs assigned to the VPC
+ Subnet.
+
+
+ A Linode is assigned to a VPC Subnet if it has a
+ Configuration Profile with a `vpc` purpose interface with
+ the subnet's `subnet_id`. Even if the Configuration
+ Profile is not active, meaning the Linode does not have
+ access to the Subnet, the Linode still appears in this
+ array.
+ items:
+ additionalProperties: false
+ properties:
+ id:
+ description: ID of a Linode assigned to the VPC Subnet.
+ example: 111
+ type: integer
+ interfaces:
+ description: >-
+ VPC purpose interfaces with the subnet's `subnet_id`
+ assigned to the Linode.
+ items:
+ additionalProperties: false
+ properties:
+ active:
+ description: >-
+ Returns `true` if the Interface is in use,
+ meaning that the Linode was powered on using
+ the Configuration Profile to which the
+ Interface belongs. Otherwise returns `false`.
+ example: true
+ type: boolean
+ config_id:
+ description: >-
+ The globally general entity identifier for the
+ Linode configuration profile that includes the
+ VPC. If this is a VPC Linode interface, the
+ value is `null`.
+ example: 4567
+ nullable: true
+ type: integer
+ id:
+ description: ID of the interface.
+ example: 421
+ type: integer
+ type: object
+ type: array
+ type: object
+ readOnly: true
+ type: array
+ x-linode-cli-display: 5
+ updated:
+ description: >-
+ __Filterable__, __Read-only__ The date-time of the most
+ recent VPC Subnet update.
+ example: '2023-09-11T00:00:00'
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ x-akamai:
+ labels:
+ - Filterable
+ x-linode-filterable: true
+ type: object
+ x-akamai:
+ file-path: schemas/vpc-subnet.yaml
+ x-example:
+ x-ref: ../examples/get-vpc-subnet-200.json
+ description: The updated VPC Subnet.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - vpc:read_write
+ summary: Update a VPC subnet
+ tags:
+ - VPC subnets
+ x-akamai:
+ tabs:
+ - syntax: |-
+ linode-cli vpcs subnet-update $vpcId \
+ --label cool-vpc-subnet
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: vpc:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: subnet-update
+ x-linode-grant: read_write
+ delete:
+ description: >-
+ Delete a single VPC subnet.
+
+
+ The user accessing this operation must have `read_write` grants to the
+ VPC. A successful request triggers a `subnet_delete` event.
+
+
+ > 📘
+
+ >
+
+ > You need to delete all the Configuration Profile Interfaces that this
+ subnet is assigned to before you can delete it. If those interfaces are
+ active, the associated Linode needs to be shut down before they can be
+ removed.
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+
+
+ [Learn
+ more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ externalDocs:
+ description: See documentation for this operation in Akamai's Linode API
+ url: https://techdocs.akamai.com/linode-api/reference/delete-vpc-subnet
+ operationId: delete-vpc-subnet
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: The API responds with an empty object.
+ maxProperties: 0
+ type: object
+ x-akamai:
+ file-path: schemas/added-empty-obj.yaml
+ x-example:
+ x-ref: ../examples/delete-vpc-subnet-200.json
+ description: Delete request successful.
+ default:
+ content:
+ application/json:
+ schema:
+ additionalProperties: false
+ properties:
+ errors:
+ items:
+ additionalProperties: false
+ description: >-
+ An object for describing a single error that occurred
+ during the processing of a request.
+ properties:
+ field:
+ description: >-
+ The field in the request that caused this error.
+ This may be a path, separated by periods in the case
+ of nested fields. In some cases this may come back
+ as `null` if the error is not specific to any single
+ element of the request.
+ example: fieldname
+ type: string
+ reason:
+ description: >-
+ What happened to cause this error. In most cases,
+ this can be fixed immediately by changing the data
+ you sent in the request, but in some cases you will
+ be instructed to [Open a support
+ ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)
+ or perform some other action before you can complete
+ the request successfully.
+ example: fieldname must be a valid value
+ type: string
+ type: object
+ x-akamai:
+ file-path: schemas/error-object.yaml
+ type: array
+ type: object
+ description: >-
+ See
+ [Errors](https://techdocs.akamai.com/linode-api/reference/errors)
+ for the range of possible error response codes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - vpc:read_write
+ summary: Delete a VPC subnet
+ tags:
+ - VPC subnets
+ x-akamai:
+ tabs:
+ - syntax: linode-cli vpcs subnet-delete $vpcId $vpcSubnetId
+ title: CLI
+ url: >-
+ https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
+ - syntax: vpc:read_write
+ title: OAuth scopes
+ url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
+ x-linode-cli-action: subnet-delete
+ x-linode-grant: read_write
+ parameters:
+ - description: The `id` of the VPC.
+ example: '{{vpcId}}'
+ in: path
+ name: vpcId
+ required: true
+ schema:
+ example: 527
+ type: integer
+ x-akamai:
+ file-path: parameters/vpc-id.yaml
+ - description: The `id` of the VPC Subnet.
+ example: '{{vpcSubnetId}}'
+ in: path
+ name: vpcSubnetId
+ required: true
+ schema:
+ example: 627
+ type: integer
+ x-akamai:
+ file-path: parameters/vpc-subnet-id.yaml
+ x-akamai:
+ file-path: paths/vpc-subnet.yaml
+ path-info: /{apiVersion}/vpcs/{vpcId}/subnets/{vpcSubnetId}
+ x-linode-cli-command: vpcs
+components:
+ x-stackQL-resources:
+ vpcs:
+ id: linode.vpcs.vpcs
+ name: vpcs
+ title: Vpcs
+ methods:
+ post_vpc:
+ operation:
+ $ref: '#/paths/~1vpcs/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_vpcs:
+ operation:
+ $ref: '#/paths/~1vpcs/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ get_vpc:
+ operation:
+ $ref: '#/paths/~1vpcs~1{vpcId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_vpc:
+ operation:
+ $ref: '#/paths/~1vpcs~1{vpcId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_vpc:
+ operation:
+ $ref: '#/paths/~1vpcs~1{vpcId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/vpcs/methods/get_vpc'
+ - $ref: '#/components/x-stackQL-resources/vpcs/methods/get_vpcs'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/vpcs/methods/post_vpc'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/vpcs/methods/delete_vpc'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/vpcs/methods/put_vpc'
+ ip_addresses:
+ id: linode.vpcs.ip_addresses
+ name: ip_addresses
+ title: Ip Addresses
+ methods:
+ get_vpcs_ips:
+ operation:
+ $ref: '#/paths/~1vpcs~1ips/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ get_vpc_ips:
+ operation:
+ $ref: '#/paths/~1vpcs~1{vpcId}~1ips/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/ip_addresses/methods/get_vpc_ips'
+ - $ref: '#/components/x-stackQL-resources/ip_addresses/methods/get_vpcs_ips'
+ insert: []
+ update: []
+ delete: []
+ replace: []
+ subnets:
+ id: linode.vpcs.subnets
+ name: subnets
+ title: Subnets
+ methods:
+ post_vpc_subnet:
+ operation:
+ $ref: '#/paths/~1vpcs~1{vpcId}~1subnets/post'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ get_vpc_subnets:
+ operation:
+ $ref: '#/paths/~1vpcs~1{vpcId}~1subnets/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ objectKey: $.data
+ get_vpc_subnet:
+ operation:
+ $ref: '#/paths/~1vpcs~1{vpcId}~1subnets~1{vpcSubnetId}/get'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ put_vpc_subnet:
+ operation:
+ $ref: '#/paths/~1vpcs~1{vpcId}~1subnets~1{vpcSubnetId}/put'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ delete_vpc_subnet:
+ operation:
+ $ref: '#/paths/~1vpcs~1{vpcId}~1subnets~1{vpcSubnetId}/delete'
+ response:
+ mediaType: application/json
+ openAPIDocKey: '200'
+ sqlVerbs:
+ select:
+ - $ref: '#/components/x-stackQL-resources/subnets/methods/get_vpc_subnet'
+ - $ref: '#/components/x-stackQL-resources/subnets/methods/get_vpc_subnets'
+ insert:
+ - $ref: '#/components/x-stackQL-resources/subnets/methods/post_vpc_subnet'
+ update: []
+ delete:
+ - $ref: '#/components/x-stackQL-resources/subnets/methods/delete_vpc_subnet'
+ replace:
+ - $ref: '#/components/x-stackQL-resources/subnets/methods/put_vpc_subnet'
+servers:
+ - url: https://api.linode.com/v4