From 64ce35f0f1c20017e6e5c8866a55860cdfb9af8d Mon Sep 17 00:00:00 2001 From: Alban Bailly Date: Fri, 30 Aug 2019 09:42:47 -0400 Subject: [PATCH 1/9] Post deployment cleanup --- favicon.ico | Bin 1150 -> 0 bytes linode-logo-white.svg | 18 ------------- linode-logo.svg | 58 ------------------------------------------ openapi.yaml | 4 --- 4 files changed, 80 deletions(-) delete mode 100644 favicon.ico delete mode 100644 linode-logo-white.svg delete mode 100644 linode-logo.svg diff --git a/favicon.ico b/favicon.ico deleted file mode 100644 index c7eccdfb225a4b6c5a7e1643dc8dce6b0bcad7c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmZQzU<5(|0R|vYV8~!$U=RbcG=LZ+qyWT>V3L8s0VszBFoKnUlu;2YMDh#rtY%GR zxXG{{h#g5W8>rV2h~EoL=Qs+~`yYz;6JrigUq2B42Vw4YtOt?w<247UUJ!`S!}Nk^ z=JSjfvFJybgA`ss^@YfKL2Sm$j5qP<|BoCdK=ljJ_2bnG3KvxS?<4D%Eaky(_f3Y2 zF#SM%Aismd3`UDJaN+YiC=3oF=?{eI1JUx~{2v9XIJPog0;)p9A1vHpG_w9in0{#= z-os+{+>gcVxc`H&U;^h&woS|j8LlxrMKcRo|3SH6zMJ9>+~;BXu+jXv9Oqf~G96~P z!SE5;{SwYR-PqLQ5qk)fQ-t{+M1%N1TnNM)ff(#|Ec8X7SR%4MTx_7aKp - - - - - - - - - - - - - - - - - diff --git a/linode-logo.svg b/linode-logo.svg deleted file mode 100644 index 100494244..000000000 --- a/linode-logo.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/openapi.yaml b/openapi.yaml index 04c069867..cc5c73249 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -2,10 +2,6 @@ openapi: 3.0.1 info: version: 4.3.2 title: Linode API - x-logo: { - url: '/api/v4/linode-logo.svg', - backgroundColor: '#fafafa' - } description: | # Introduction The Linode API provides the ability to programmatically manage the full From 604a985b9ca75fbb72a30441ef0664acde48f37a Mon Sep 17 00:00:00 2001 From: Alban Bailly Date: Fri, 30 Aug 2019 09:49:06 -0400 Subject: [PATCH 2/9] remove old changelog directory --- changelog/changelog-style.css | 71 --- changelog/index.html | 1092 --------------------------------- 2 files changed, 1163 deletions(-) delete mode 100644 changelog/changelog-style.css delete mode 100644 changelog/index.html diff --git a/changelog/changelog-style.css b/changelog/changelog-style.css deleted file mode 100644 index 066efca5d..000000000 --- a/changelog/changelog-style.css +++ /dev/null @@ -1,71 +0,0 @@ -html { - box-sizing: border-box; -} - -body { - flex-direction: column; - flex-grow: 1; - color: #000; - background: #fff; - font-family: 'Lato',sans-serif; - font-weight: 400; - font-size: 16px; - line-height: 1.5; - padding-left: 2em; -} - -header { - background: #323232; -} - -.release-header { - display: block; - color: #ffffff; - font-weight: normal; - margin-top: 2em; - margin-bottom: 1em; - background: #3bb878; - padding: 0.2em 0.25em 0.25em 0.25em; - height: 32px; -} - -.release-header .release-version { - font-size: 0.8em; - float: right; - vertical-align: middle; - position: relative; - top: 3px; -} - -h3 { - font-size: 1.2em; -} - -.content-wrap { - max-width: 970px; - margin: 0 auto; - padding: 0 15px; -} - -.main { - flex-grow: 1; - display: flex; - flex-direction: column; -} - -.navbar { - display: flex; - justify-content: space-between; - height: 57px; -} - -.navbar-logo { - height: 46px; - padding: 6px 0; - vertical-align: middle; -} - -.navbar-wrap { - display: flex; - justify-content: space-between; -} diff --git a/changelog/index.html b/changelog/index.html deleted file mode 100644 index e05f4c936..000000000 --- a/changelog/index.html +++ /dev/null @@ -1,1092 +0,0 @@ - - - - Linode API Changelog - - - - - - - - - -
-
- -
-
-
-
-

Linode API Changelog

-

- This page describes changes made to our API, organized by - release date and version. Releases are shipped - with a corresponding changelog entry detailing updates to our - API in the following categories, when applicable: -

-
    -
  • Added
  • -
  • Changed
  • -
  • Deprecated
  • -
  • Removed
  • -
  • Fixed
  • -
  • Security
  • -
- -

- Our Changelog follows semantic versioning according to the - Semantic - Versioning 2.0.0 Guidelines. -

-

- 2018-09-24 - version 4.0.6 -

-

Added:

-
    -
  • Added closable support tickets via /support/tickets/:id/close -
      -
    • Only applies to tickets that are closeable
    • -
    -
  • -
-

- 2018-09-10 - version 4.0.5 -

-

Added:

-
    -
  • Added `backups-enabled` to /account/settings to automatically - add backups service for new Linodes.
  • -
  • Added tags for Linodes
  • -
  • Added linode/types-legacy collection, returning all Linode - types that cannot be deployed.
  • -
  • Added `successor` field to Linode Type object.
  • -
-

Fixed:

-
    -
  • Fixed issue with backup windows when a window could not - be determined.
  • -
  • Fixed bug related to reattaching volumes to another Linode - when the original Linode is deleted.
  • -
-

- 2018-08-28 - version 4.0.4 -

-

Added:

-
    -
  • Added User SSH Keys -
      -
    • Allows storage and deployment of public SSH Keys
    • -
    • Added GET /profile/sshkeys
    • -
    • Added POST /profile/sshkeys
    • -
    • Added GET /profile/sshkeys/{ssh_key_id}
    • -
    • Added PUT /profile/sshkeys/{ssh_key_id}
    • -
    • Added DELETE /profile/sshkeys/{ssh_key_id}
    • -
    • Added SSH Key labels to User object
    • -
    -
  • -
  • Allow deploying Linodes with stored SSH Keys -
      -
    • Added `authorized_users` to POST /linodes/instances/
    • -
    -
  • -
  • Allow rebuilding Linodes with stored SSH Keys -
      -
    • Added `authorized_users` to POST /linodes/instances/{linode_id}/rebuild
    • -
    -
  • -
  • Allow deploying Disks with stored SSH Keys -
      -
    • Added `authorized_users` to POST /linodes/instances/{linode_id}/disks
    • -
    -
  • -
  • NodeBalancer config rebuild -
      -
    • Allows fast track config/node rebuilding
    • -
    • POST nodebalancers/{nodebalancerId}/configs/{configId}/rebuild
    • -
    -
  • -
  • Add expires to Image map for automatic Images
  • -
-

Fixed:

-
    -
  • Removed duplicative Event for StackScript creation
  • -
  • Fixed typo in DNS error message
  • -
  • Added 'field' to StackScript errors
  • -
-

- 2018-07-12 - version 4.0.3 -

-

Added:

-
    -
  • Added POST /linode/instances/{linodeId}/migrate -
      -
    • In some circumstances, a Linode may have pending migrations scheduled that that you can initiate when convenient.
    • -
    • This endpoint initiates the scheduled migration, which will shut the Linode down, migrate it, and then bring it back to its original state.
    • -
    -
  • -
  • Added POST /domains/import -
      -
    • Imports a domain zone from a remote nameserver that allows zone transfers (AXFR).
    • -
    -
  • -
  • Added ability to create a Linode with private networking enabled. -
      -
    • POST /linode/instances now accepts a boolean "private_ip".
    • -
    • If true, the created Linode will have private networking enabled when created.
    • -
    -
  • -
  • Added optional "config_id" to POST /linode/instances/{linodeId}/reboot
  • -
-

Fixed:

-
    -
  • Fixed example response for POST /volumes/{volumeId}/attach
  • -
-

- 2018-06-20 - version 4.0.2 -

-

Added:

-
    -
  • Added fast-track NodeBalancer creation -
      -
    • POST /nodebalancers now accepts "configs", details of configs to create
    • -
    • Each config in "configs" must have at least one node in "nodes"
    • -
    -
  • -
  • Added X-Spec-Version header to API responses - -
  • -
  • Added persistent ordering to all collections -
      -
    • All collections are now returned in a predictable, consistent order
    • -
    -
  • -
  • Added watchdog_enabled to Linode object
  • -
  • Added X-Spec-Version header to all responses -
      -
    • This header describes the version of our OpenAPI spec that - describes this API
    • -
    -
  • -
-

Fixed:

-
    -
  • Require shutting down before resetting root password for a disk
  • -
  • Fixed url for Community events
  • -
-

- 2018-05-14 - version 4.0.1 -

-

Added:

-
    -
  • Added missing "resizing" Linode status.
  • -
-

Fixed:

-
    -
  • Fixed bug where Linodes got stuck in rescue mode.
  • -
  • Fixed bug when attaching a Volume to a Linode with no configs.
  • -
  • API now returns 500 when an IP Address cannot be allocated. -
      -
    • Previously, this incorrectly returned a 400.
    • -
    -
  • -
  • Fixed 500 on POST /domains/:id/records with service. -
      -
    • Bug occurred when service was sent into this endpoint without `"type": "SRV"`.
    • -
    -
  • -
  • Fixed errors caused by illegal characters in URL errors.
  • -
- -

- 2018-04-02 - version 4.0.0 -

- -

Added:

-
    -
  • Added fields to Notification object -
      -
    • Added "label" - a brief description of the notification
    • -
    • Added "severity" - one of "minor", "major", or "critical"
    • -
    • Added "until" - a datetime or null
    • -
    • Added "notice" to possible values for "type"
    • -
    -
  • -
  • Added POST /linode/instances/:id/disks/:id/clone -
      -
    • This used to be at POST /linode/instances/:id/disks/:id
    • -
    -
  • -
  • GET /linode/instances is now filterable on "id"
  • -
  • GET /account/events is now filterable on "id"
  • -
- -

Changed:

-
    -
  • Unify IPv4, IPv6 GET/POST; use "type": "public"
  • -
  • Moved /managed/linode_settings to /managed/linode-settings -
      -
    • /managed/linode_settings/:id moved to /managed/linode-settings/:id
    • -
    • This was to keep our convention of using dashes in URLs - instead of underscores
    • -
    -
  • -
  • Password no longer accepted in POST /account/users -
      -
    • You may no longer provide a password when creating a new user
    • -
    • New users will immediately receive a password reset email to - set their password
    • -
    -
  • -
  • Changed returned Region IDs -
      -
    • Slugs such as "us-east-1a" are now returned as "us-east"
    • -
    • These values had previosuly been accepted as input.
    • -
    • "us-south" was renamed "us-central"
    • -
    • Old values are still accepted (and translated) in requests
    • -
    -
  • -
  • Moved GET/PUT for range/pool v6 addresses to /networking/ips -
      -
    • GET /networking/ipv6/:address moved to GET /networking/ips/:address
    • -
    • PUT /networking/ipv6/:address moved to GET /networking/ips/:address
    • -
    -
  • -
  • /linode/instances/$id/rebuild returns a Linode
  • -
  • Fixed inconsistent responses for action endpoints -
      -
    • POST /linode/instances/:id/backups-enable now returns {} on success
    • -
    • POST /linode/instances/:id/backups-disable now returns {} on success
    • -
    -
  • -
  • Creating a payment now returns the new payment -
      -
    • POST /account/payments now returns a Payment object
    • -
    • POST /account/payments/paypal/execute now returns a Payment object
    • -
    -
  • -
  • Moved ipv4-specific networking endpoints -
      -
    • POST /networking/ip-assign moved to POST /networking/ipv4/assign
    • -
    • POST /networking/ip-sharing moved to POST /networking/ipv4/share
    • -
    • POST /networking/ipv4/assign now returns {} on success
    • -
    -
  • -
- -

Removed:

-
    -
  • Removed "addresses" from GET /linode/instances/:id/ips response -
      -
    • These addresses are now returned in GET /networking/ips
    • -
    -
  • -
  • Removed the ability to change another user's email address -
      -
    • PUT /account/users/:username no longer accepts "email"
    • -
    • PUT /profile can still be used to change your own email address
    • -
    -
  • -
- -

- 2018-03-14 -

- -

Added:

-
    -
  • Added support for refresh tokens -
      -
    • Apps with an active refresh token are returned in GET /profile/apps
    • -
    • Revoking an app's access to your account expires any refresh tokens it has
    • -
    -
  • -
- -

Changed:

-
    -
  • Removed the ability to change passwords -
      -
    • Removed POST /profile/password
    • -
    • Removed POST /account/users/:username/password
    • -
    • To reset your password, use manager.linode.com
    • -
    -
  • -
- -

Fixed:

-
    -
  • Fix output for ipv6 RDNS endpoints -
      -
    • PUT /networking/ips/:address now returns the modified v6 address
    • -
    • PUT /linode/instances/:id/ips/:address now returns the modified v6 address
    • -
    • Nothing has changed for these endpoints when :address is a v4 address
    • -
    -
  • -
  • Fixed bug setting RDNS for v6 addresses
  • -
  • Fixed bug making it impossible to provide authorized_keys when rebuilding - a Linode
  • -
- -

- 2018-02-26 -

- -

Added:

-
    -
  • Added GET /networking/ips -
      -
    • Returns all ipv4 and ipv6 addresses on your account
    • -
    -
  • -
  • Added support for short region slugs -
      -
    • Omitting the suffix of a region slug picks a default
    • -
    • For example, "us-east" is treated as "us-east-1a"
    • -
    -
  • -
  • Support tickets ordered by status, update date
  • -
- -

Changed:

-
    -
  • Unified IPv4 and IPv6 Objects -
      -
    • Removed "range" from IPv6 object
    • -
    • Added "linode_id" to IPv6 object
    • -
    • Added "region" to IPv6 object
    • -
    -
  • -
  • Removed GET /networking/ipv4
  • -
  • Separated /networking/ipv6 into /pools and /ranges -
      -
    • Added GET /networking/ipv6/pools
    • -
    • Added GET /networking/ipv6/ranges
    • -
    • Removed GET /networking/ipv6
    • -
    -
  • -
  • Changed GET /linode/instances/:id/ips response -
      -
    • ipv6.link_local is now a full IPAddress object
    • -
    -
  • -
  • Improved response for unrestricted user's grants -
      -
    • Changed GET /profile/grants and GET /account/users/:username/grants
    • -
    • Now returns a 204 with no content when getting grants for unrestricted users
    • -
    -
  • -
  • Moved /linode/instances/:id/ips/sharing to /networking/ip-sharing -
      -
    • linode_id must now be passed in, along with existing ips list
    • -
    -
  • -
  • Removed deprecated "distribution" fields and endpoints -
      -
    • Removed GET /linode/distributions
    • -
    • Removed GET /linode/distributions/:id
    • -
    • These fields or endpoints had been deprecated since 2017-12-11
    • -
    -
  • -
  • Changed POST /managed/contacts -
      -
    • "phone" is an object containing primary and secondary numbers
    • -
    • phone_primary -> phone.primary
    • -
    • phone_secondary -> phone.secondary
    • -
    -
  • -
  • Changed account/notifications -
      -
    • Removed xsa notification type
    • -
    • Renamed balance_outstanding to payment_due
    • -
    -
  • -
  • Changed error response -
      -
    • "field" changed to represent nesting with x.x
    • -
    -
  • -
  • Changed GET/PUT /account -
      -
    • Renamed "vat_number" to "tax_id"
    • -
    -
  • -
  • Removed managed_issue from POST /support/tickets
  • -
- -

Fixed:

-
    -
  • Cloned linodes now copy original Linode's image
  • -
  • Fixed bug parsing OAuth Scopes when creating token
  • -
- -

- 2018-01-24 -

- -

Added:

-
    -
  • Added POST /images to create an image from a disk
  • -
  • Added "message" to Notification object -
      -
    • Described the notification in a human-readable manner
    • -
    -
  • -
  • Added ability to enroll in Managed -
      -
    • POST /account/settings/managed-enable
    • -
    -
  • -
  • Added "uid" to Profile response
  • -
  • Added ssl to PUT /nodebalancers/$id/configs/$id
  • -
- -

Changed:

-
    -
  • Removed "token" Authorization scheme -
      -
    • The same value is accepted as "Bearer"
    • -
    • No longer accepted: "Authorization: token $TOKEN"
    • -
    • Please send as: "Authorization: Bearer $TOKEN"
    • -
    -
  • -
  • Changed POST support/tickets -
      -
    • Now accepts "managed_issue" (boolean) instead of "managed_issue_type"
    • -
    -
  • -
  • Reworked backups response -
      -
    • Removed "daily" and "weekly"
    • -
    • Added "automatic"
    • -
    • Removed "availability" from Backup object
    • -
    • Removed "service" object
    • -
    -
  • -
  • Removed /linode/instance/:id/disk/:id/imagize -
      -
    • Functionality moved to POST /images
    • -
    -
  • -
  • Reworked /account/settings into two endpoints -
      -
    • Changed /account/settings endpoint to /account
    • -
    • network_helper and longview_subscription remain in /account/settings
    • -
    -
  • -
  • Removed 'max' from /account/transfer
  • -
  • Removed /nodebalancers/$id/configs/$id/ssl
  • -
  • Removed zonefile object from Domain
  • -
  • Changed Notification types -
      -
    • scheduled_migration -> migration_scheduled
    • -
    • pending_migration -> migration_pending
    • -
    • scheduled_reboot -> reboot_scheduled
    • -
    • outstanding_balance -> balance_outstanding
    • -
    • important_ticket -> ticket_important
    • -
    • abuse_ticket -> ticket_abuse
    • -
    -
  • -
- -

Fixed:

-
    -
  • Fix Transfer Pool return values
  • -
  • Stopped returning default backups window for Linodes -
      -
    • This impacted Linodes that were still scheduling backups only
    • -
    -
  • -
  • Don't set cancel_account grant when it's not requested
  • -
  • Suppresses shutdown event notification for rebuild
  • -
  • Send emails for TFA to the acting user
  • -
- -

- 2018-01-08 -

- -

Added:

-
    -
  • Added enable, disable managed service endpoints -
      -
    • Added POST /managed/services/:id/enable
    • -
    • Added POST /managed/services/:id/disable
    • -
    • Added status to managed service JSON response object
    • -
    -
  • -
  • Added GET /managed/stats endpoint
  • -
  • Added PUT /managed/linode_settings
  • -
  • Added PUT endpoints to managed service
  • -
  • Add managed_issue_type to support/tickets/ -
      -
    • GET /support/tickets returns new managed_issue_type key
    • -
    • POST /support/tickets now accepts this key if the account has - Managed Services enabled
    • -
    -
  • -
  • Added GET /managed/issues and GET /managed/issues/:id -
      -
    • GET /managed/issues returns all issues, including relevant history
    • -
    • GET /managed/issues/:id returns a single issue
    • -
    • Since managed issues are backed by support tickets, uses the ticket ID
    • -
    -
  • -
  • Added vat_number to /account/settings -
      -
    • Can be viewed and updated
    • -
    -
  • -
  • Sends emails when enabling/disabling TFA
  • -
  • Rendered zone file returned in Domain object
  • -
  • Added DELETE /managed/services/:id endpoint
  • -
  • Added DELETE /managed/contacts/:id
  • -
- -

Changed:

-
    -
  • Update /linode/distributions and /image responses -
      -
    • remove status key
    • -
    • remove filesystem key
    • -
    • remove last_used key
    • -
    • rename creator -> created_by (string)
    • -
    • rename min_deploy_size -> size (int)
    • -
    -
  • -
- -

Fixed:

-
    -
  • Allow filtering of GET /images
  • -
- -

- 2017-12-11 -

- -

Added:

-
    -
  • Added POST account/payments/paypal -
      -
    • Stages a PayPal payment and returns the payment_id
    • -
    -
  • -
  • Added POST account/payments/paypal/execute -
      -
    • Execute a PayPal payment that has been authorized in PayPal
    • -
    • This is required for Linode to capture funds and credit your account
    • -
    -
  • -
  • Added POST /domains/$id/clone -
      -
    • New endpoint can be reached at POST domains/:domain_id/clone
    • -
    • Requires a new domain be provided in the post body
    • -
    -
  • -
- -

Changed:

-
    -
  • Unify Distributions and Images -
      -
    • Removes Distribution.architecture
    • -
    • Renames Distribution.updated to last_used (Datetime)
    • -
    • Renames Distribution.disk_minimum to min_deploy_size (Integer)
    • -
    • Adds Distribution.filesystem (String)
    • -
    • Adds Distribution.created (Datetime)
    • -
    • Adds Distribution.description (String)
    • -
    • Adds Distribution.status (String)
    • -
    • Adds Distribution.type (String)
    • -
    • Adds Distribution.is_public (Boolean)
    • -
    • Adds Distribution.creator (String)
    • -
    • Adds Image.deprecated (Boolean)
    • -
    -
  • -
  • Renamed "distribution" to "image" -
      -
    • POST /linode/instances takes "image" instead of "distribution"
    • -
    • POST /linode/instances/:id/disks takes "image" instead of "distribution"
    • -
    • POST /linode/instances/:id/rebuild takes "image" instead of "distribution"
    • -
    • Linode object returns "image" instead of "distribution"
    • -
    • StackScript object returns "images" instead of "distributions"
    • -
    -
  • -
  • Change Image IDs to Slugs -
      -
    • slugs match the format private/:image_id
    • -
    -
  • -
  • Moved volumes to top level -
      -
    • Changed all references from /linode/volumes to /volumes
    • -
    -
  • -
- -

Fixed:

-
    -
  • Ensure POST domain/records accepts and honors ttl_sec
  • -
  • Fixed Linode create from a Stackscript using UDFs
  • -
- -

- 2017-11-20 -

- -

Changed:

-
    -
  • Reworked UserGrant system -
      -
    • Three Grant levels are now enforced: No grants, read_only, and read_write
    • -
    • read_only allows access to GET endpoints
    • -
    • read_write is equivalent to legacy "all" grant
    • -
    • Legacy "all" or "access" grants are treated as read_write
    • -
    -
  • -
  • Changed GET /account/users/:username/grants -
      -
    • Grants response objects now always include "id", "label" and "permissions"
    • -
    • "permissions" can be null or an enum of either "read_only" or "read_write"
    • -
    -
  • -
  • Changed PUT /account/users/:username/grants -
      -
    • Grants now accepted in the new format detailed above
    • -
    -
  • -
  • Changed GET /profile/grants -
      -
    • Grants returned in new format detailed above
    • -
    -
  • -
  • Added support for CAA Domain records
  • -
  • Changed POST /linode/instances/:id/disks -
      -
    • Now accepts "image" - an image ID to deploy from
    • -
    -
  • -
- -

- 2017-10-23 -

- -

Changed:

-
    -
  • Changed POST /account/payments -
      -
    • Now accepts "usd" as a string representing a dollar amount, including cents
    • -
    • Valid values include "0.10", "10.00", "100.20", and "$1.00"
    • -
    • Invalid values include 10, 10.01, "10", "10.001", and "10.0"
    • -
    -
  • -
  • Added GET /account/notifications -
      -
    • Read-only collection of Notification objects
    • -
    • Returns important information about your account that may require action
    • -
    -
  • -
  • Added GET /images -
      -
    • Lists images on your account
    • -
    -
  • -
  • Added GET /images/:id -
      -
    • View a single image on your account
    • -
    -
  • -
  • Added PUT /images/:id -
      -
    • Update an image on your account
    • -
    -
  • -
  • Added DELETE /images/:id -
      -
    • Deleted an image you own
    • -
    -
  • -
  • Added POST /linode/instances/:id/disks/:id/imagize -
      -
    • Creates a new image from a disk you own
    • -
    -
  • -
  • Added GET /longview/clients -
      -
    • Returns a list of Longview clients on your account
    • -
    -
  • -
  • Added POST /longview/clients -
      -
    • Creates a new Longview client on your account
    • -
    -
  • -
  • Added GET /longview/clients/:id -
      -
    • Returns information on a single Longview client
    • -
    -
  • -
  • Added PUT /longview/clients/:id -
      -
    • Update a single Longview client
    • -
    -
  • -
  • Added DELETE /longview/clients/:id -
      -
    • Removes a longview client from your account
    • -
    -
  • -
  • Added GET /longview/subscriptions -
      -
    • Returns all available longview subscription tiers
    • -
    -
  • -
  • Added GET /longview/subscriptions/:id -
      -
    • Returns information one longview subscription tier
    • -
    -
  • -
  • Changed GET /account/settings -
      -
    • Added "longview_subscription" - the tier at which you are subscribed - to longview
    • -
    -
  • -
  • Changed PUT /account/settings -
      -
    • Sending in "null" or an id to "longview_subscription" changes your longview - subscription tier.
    • -
    -
  • -
  • Change POST /linode/instances -
      -
    • Now accepts image - the ID of an image to deploy the linode with
    • -
    • Only one source attribute may be provided
    • -
    -
  • -
  • Changed POST /linode/instances/:id/rebuild -
      -
    • Now accepts image - the ID of an image to rebuild the linode with
    • -
    • Only one source attribute may be provided
    • -
    -
  • -
  • Added events for enabling/disabling TFA
  • -
  • Added Longview and Image grants to GET /users/:id/grants and GET /profile/grants -
      -
    • Response now includes "longview" attribute whose value is an array of - grants your user has that relate to longview clients
    • -
    • Response now includes an "images" attribute whose value is an array of - grants your user has that relate to images
    • -
    • Only applies to restricted users
    • -
    -
  • -
  • Event objects may now have Longview clients or Images as their entities
  • -
- -

- 2017-10-04 -

- -

Changed:

-
    -
  • EventType has changed from "blockstorage_*" to "volume_*"
  • -
  • Changed POST linode/instances/:id/configs -
      -
    • Removed root_device_ro
    • -
    • Now accepts "helpers", a dict accepting any/all of "updatedb_disabled", - "distro", "modules_dep", "network", and "devtmpfs_automount"
    • -
    • Removed devtmpfs_automount (now in helpers envelope)
    • -
    -
  • -
  • Changed POST linode/instances/:id/disks -
      -
    • root_ssh_key changed to "authorized_keys", now accepts a list of keys instead - of a single string key
    • -
    -
  • -
  • Changed POST linode/instances -
      -
    • root_ssh_key changed to "authorized_keys", now accepts a list of keys instead - of a single string key
    • -
    -
  • -
  • Changed POST linode/instances/:id/rebuild -
      -
    • root_ssh_key changed to "authorized_keys", now accepts a list of keys instead - of a single string key
    • -
    -
  • -
  • Changed POST linode/instances/:id/rescue -
      -
    • disks changed to "devices", now accepts device mappings in the same format - as POST linode/instances/:id/configs
    • -
    -
  • -
  • Changed Linode object -
      -
    • Moved "disk", "memory", "storage", "transfer_total", and "vcpus" into a - "specs" envelope
    • -
    • transfer_total => transfer in linode specs
    • -
    • transfer_in => network_in
    • -
    • transfer_out => network_out
    • -
    -
  • -
  • Changed LinodeConfig object -
      -
    • Removed root_device_ro
    • -
    -
  • -
  • Changed LinodeType object -
      -
    • Moved backups_option.price_hourly to addons.backups.price.hourly
    • -
    • Moved backups_option.price_monthly to addons.backups.price.monthly
    • -
    • Moved price_hourly to price.hourly
    • -
    • Moved price_monthly to price.monthly
    • -
    -
  • -
  • Changed OAuthToken -
      -
    • Removed client envelope
    • -
    • Removed type
    • -
    -
  • -
  • Changed account/tokens -
      -
    • Endpoint moved to profile/tokens
    • -
    • GET now only returns Personal Access Tokens
    • -
    -
  • -
  • Changed account/clients -
      -
    • Endpoint moved to account/oauth-clients
    • -
    • Collection now allows access to all clients for all users on your account - if you are an unrestricted user
    • -
    -
  • -
  • Added profile/apps -
      -
    • Collection of authorized third-party applications
    • -
    -
  • -
  • OAuthClient now has a "public" attribute -
      -
    • "public" is an optional argument to POST account/clients that - defaults to False
    • -
    -
  • -
  • Added POST account/credit-card -
      -
    • Updates current payment method on file
    • -
    -
  • -
  • Added GET account/payments -
      -
    • Returns a list of all payments made for your account
    • -
    -
  • -
  • Added GET account/payments/:id -
      -
    • Returns information about a single payment made for your account
    • -
    -
  • -
  • Added POST linode/volumes/:id/clone
  • -
  • Changed Disk Status -
      -
    • Now always one of "ready", "not ready", or "deleting"
    • -
    -
  • -
- -

- 2017-09-18 -

- -

Changed:

-
    -
  • Pagination envelope has changed -
      -
    • total_pages => pages
    • -
    • total_results => results
    • -
    • endpoint-specific key is now always "data"
    • -
    -
  • -
  • Region, Distribution, Type, and Kernel objects are now returned as slugs -
      -
    • Previously, entire object was returned as part of other responses
    • -
    -
  • -
  • POST linode/instances and POST linode/rebuild automatically issue a boot job -
      -
    • This behavior can be suppressed by sending "boot": false in the request
    • -
    -
  • -
  • Changed POST linode/instances -
      -
    • with_backups => backups_enabled
    • -
    • Now accepts "booted" - defaults to true if distribution is provided
    • -
    -
  • -
  • Changed POST linode/instances/:id/clone -
      -
    • with_backups => backups_enabled
    • -
    -
  • -
  • Changed POST linode/instances/:id/rebuild -
      -
    • Now accepts "booted" - defaults to true
    • -
    -
  • -
  • Changed LinodeNetworkingResponse -
      -
    • region is now a slug instead of a nested object
    • -
    -
  • -
  • Changed IPv6 object -
      -
    • region is now a slug instead of a nested object
    • -
    -
  • -
  • Changed Invoice object -
      -
    • Removed "paid"
    • -
    • Removed "overdue"
    • -
    -
  • -
  • Changed Region object -
      -
    • Removed "label"
    • -
    -
  • -
  • Changed Backup object -
      -
    • regions is now a slug instead of a nested object
    • -
    -
  • -
  • Changed Distribution object -
      -
    • Removed "created"
    • -
    • Added "updated"
    • -
    • minimum_storage_size => disk_minimum
    • -
    • x64 => architecture. architecture is an enum returning either - "x86_64" or "i386"
    • -
    -
  • -
  • Changed IPAddress object -
      -
    • region is now a slug instead of a nested object
    • -
    -
  • -
  • Changed Kernel object -
      -
    • x64 => architecture. architecture is an enum returning either - "x86_64" or "i386"
    • -
    -
  • -
  • Changed Linode object -
      -
    • storage => disk
    • -
    • total_transfer => transfer_total
    • -
    • distribution is now a slug instead of a nested object
    • -
    • region is now a slug instead of a nested object
    • -
    • nested alert objects have been streamlined
    • -
    • "enabled" and "threshold" have been removed
    • -
    • a value of 0 now represents "disabled", any other value is "enabled" with - that threshold
    • -
    -
  • -
  • Changed LinodeConfig object -
      -
    • disable_updatedb => updatedb_disabled
    • -
    • enable_distro_helper => distro
    • -
    • enable_modules_dep_helper => modules_dep
    • -
    • enable_network_helper => network
    • -
    • ram_limit => memory_limit
    • -
    • devtmpfs_autocommit moved into "helpers" envelope
    • -
    -
  • -
  • Changed Nodebalancer object -
      -
    • region is now a slug instead of a nested object
    • -
    -
  • -
  • Changed Type object -
      -
    • hourly_price => price_hourly
    • -
    • monthly_price => price_monthly
    • -
    • ram => memory
    • -
    • storage => disk
    • -
    • mbits_out => network_out
    • -
    • backups_price is now a nested object containing "price_hourly" and - "price_monthly"
    • -
    -
  • -
  • Changed StackScript object -
      -
    • Removed "customer_id"
    • -
    • distributions is now a list of slugs instead of a list of nested objects
    • -
    • Removed "user_id"
    • -
    • Added "username"
    • -
    • Added "user_gravatar_id"
    • -
    -
  • -
  • Changed Volume object -
      -
    • "status" can no longer contain "contact_support" - will return "offline" - in that case
    • -
    • region is now a slug instead of a nested object
    • -
    -
  • -
  • Changes SupportTicket -
      -
    • Removed "closed_by"
    • -
    -
  • -
  • IP Whitelist may not be enabled in PUT profile if it is already disabled
  • -
  • Default page size increased to 100 -
      -
    • Any page size between 25 and 100 may be requested in the url with ?page_size=
    • -
    -
  • -
  • Linode configs now accept deprecated kernels
  • -
  • Linode configs now default kernel to latest, no longer required on POST
  • -
  • Added /profile/whitelist -
      -
    • GET - list all IPs on user's whitelist
    • -
    • POST - add IP to user's whitelist
    • -
    • Endpoint return a 400 if IP Whitelist is disabled
    • -
    -
  • -
  • Added /profile/whitelist/:id -
      -
    • GET - return one entry on whitelist
    • -
    • DELETE - remove address from whitelist
    • -
    • Endpoints return a 400 if IP Whitelist if disabled
    • -
    -
  • -
  • Disk filesystems now default to ext4, no longer required on POST
  • -
-
-
- - From 154a80f99678cca41c43664247c48b4dd468a0ad Mon Sep 17 00:00:00 2001 From: Will Smith Date: Tue, 27 Aug 2019 12:46:17 -0400 Subject: [PATCH 3/9] Changed the linter in Travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5204c6d66..e262f9a09 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,4 +3,4 @@ language: python python: - 3.7 script: - - python ./bin/lint openapi.yaml + - python -m openapi3 openapi.yaml From 42e853fc6553cf2817c65231db15c6dadf9102eb Mon Sep 17 00:00:00 2001 From: Will Smith Date: Tue, 27 Aug 2019 12:48:40 -0400 Subject: [PATCH 4/9] Updated requirements.txt --- bin/lint | 48 ------------------------------------------------ requirements.txt | 2 +- 2 files changed, 1 insertion(+), 49 deletions(-) delete mode 100755 bin/lint diff --git a/bin/lint b/bin/lint deleted file mode 100755 index 57155d3cc..000000000 --- a/bin/lint +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/local/bin/python3 -# -# OpenAPI Spec Linter -# -# Usage: -# ./openapi-linter.py openapi.yaml -# -# Scans the provided openapi 3 spec file and outputs and errors found. The -# provided file is expected to be a yaml representation of the openapi spec, -# and formatting/errors are provided by the openapi_v3_spec_validator package - -import os -import sys -import yaml - -from jsonschema.exceptions import RefResolutionError -from openapi_spec_validator import openapi_v3_spec_validator - - -target = sys.argv[1] -pretty = len(sys.argv) > 2 and sys.argv[2] == 'pretty' - -error_symbol = '❌ ' if pretty else '!!!' -ok_symbol = '✅ ' if pretty else '' - -if not os.path.isfile(target): - print("File not found: {}".format(target)) - sys.exit(2) - -with open(target) as f: - spec = yaml.safe_load(f.read()) - -has_errors=False -errors = openapi_v3_spec_validator.iter_errors(spec) - -try: - for e in errors: - has_errors=True - print("{} {path}: {message}".format(error_symbol, path='.'.join(e.path), message=e.message)) -except RefResolutionError as e: - print("{} {}".format(error_symbol, e)) - has_errors=True - - -if has_errors: - sys.exit(1) - -print("{} OK".format(ok_symbol)) diff --git a/requirements.txt b/requirements.txt index 1752c1e52..754f70259 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -openapi_spec_validator +openapi3 From e318d6dd32f17ca59783f41bd04a1571af18ee81 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Fri, 6 Sep 2019 13:18:26 -0400 Subject: [PATCH 5/9] [Update] POST /linode/instances/{linodeId}/migrate (#119) * Add more details about /linode/instances/{linodeId}/migrate * Add region parameter to CLI example * Add changes requested by reviewer --- openapi.yaml | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index cc5c73249..ed9d903cf 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -4937,13 +4937,26 @@ paths: x-linode-cli-command: linodes post: x-linode-grant: read_write - summary: Initiate Pending Migration + summary: Initiate Pending Host Migration/DC Migration description: > - In some circumstances, a Linode may have pending migrations scheduled that - you can initiate when convenient. In these cases, a Notification - will be returned from [GET /account/notifications](#getNotifications). - This endpoint initiates the scheduled migration, which will shut the Linode - down, migrate it, and then bring it back to its original state. + 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](/api/v4/account-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 [GET /regions](/api/v4/regions). 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. NGN data centers include Toronto and Mumbai. tags: - Linode Instances operationId: migrateLinodeInstance @@ -4963,8 +4976,10 @@ paths: 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](/api/v4/regions) endpoint. - A cross-region migration will cancel a pending migration + 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 responses: '200': @@ -4975,6 +4990,18 @@ paths: 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 /linode/instances/{linodeId}/mutate: parameters: - name: linodeId From 1d25ccb3c81f06702935c1e4914954a876ed8eb7 Mon Sep 17 00:00:00 2001 From: hzoppetti <50596820+hzoppetti@users.noreply.github.com> Date: Fri, 6 Sep 2019 13:19:39 -0400 Subject: [PATCH 6/9] [Update] PUT /managed/contacts/{contactId} (#120) * Updating Managed Contact schema object to allow nullable group and remove deprecated flag * Removed deprecated from `consultation_group` for ManagedService obj --- openapi.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index ed9d903cf..3d278d9dd 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -14273,7 +14273,7 @@ components: example: null group: x-linode-filterable: true - deprecated: true + nullable: true type: string minLength: 2 maxLength: 50 @@ -14523,7 +14523,6 @@ components: considered up. example: it worked consultation_group: - deprecated: true type: string minLength: 0 maxLength: 50 From 5d7f54b2e8ef317eef1f5ee0218ea8e1de67539f Mon Sep 17 00:00:00 2001 From: William Smith Date: Fri, 6 Sep 2019 14:41:23 -0400 Subject: [PATCH 7/9] new: Added documentation for the object-storage/buckets endpoints (#121) * new: Added documentation for the object-storage/buckets endpoints This is a draft; please review carefully and do not merge without populating placeholder links. These endpoints have existed for some time, but are finally being documented (the last two are shipping on Monday). I _do not_ advise actual users to use these endpoints; they're mostly for the benefit for cloud. In keeping with API philosophy, they _are_ available to all customers, but the s3 API will almost certainly be more useful in all cases, which is why using these endpoints is discouraged. * updated to add curl, links to ceph, and minor copy edits * Copy Edits and link updates. Add missing query parameter for Get Object Storage Bucket Contents Add required to various endpoint properties. * Update GET endpoint summaries to follow List, View convention * added content-type json to curl samples * small copy edit change for spacing --- openapi.yaml | 655 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 629 insertions(+), 26 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 3d278d9dd..aca83e9b1 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -8738,6 +8738,531 @@ paths: $ref: '#/components/schemas/NodeBalancerStats' default: $ref: '#/components/responses/ErrorResponse' + /object-storage/buckets: + get: + operationId: getObjectStorageBuckets + x-linode-cli-skip: true + servers: + - url: https://api.linode.com/v4beta + summary: List Object Storage Buckets + description: | + Returns a paginated list of all Object Storage Buckets that you own. + + + This endpoint is available for convenience. It is recommended that instead you + use the more [fully-featured S3 API](https://docs.ceph.com/docs/mimic/radosgw/s3/serviceops/) directly. + + + **Beta**: This endpoint is in beta. Please make sure to prepend all requests with + `/v4beta` instead of `/v4`, and be aware that this endpoint may receive breaking + updates in the future. This notice will be removed when this endpoint is out of + beta. + tags: + - Object Storage + security: + - personalAccessToken: [] + - oauth: + - object_storage:read_only + responses: + '200': + description: A paginated list of buckets you own. + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/ObjectStorageBucket' + page: + $ref: '#/components/schemas/PaginationEnvelope/properties/page' + pages: + $ref: '#/components/schemas/PaginationEnvelope/properties/pages' + results: + $ref: '#/components/schemas/PaginationEnvelope/properties/results' + default: + $ref: '#/components/responses/ErrorResponse' + x-code-samples: + - lang: Shell + source: > + curl -H "Authorization: Bearer $TOKEN" \ + https://api.linode.com/v4beta/object-storage/buckets/ + post: + operationId: createObjectStorageBucket + x-linode-cli-skip: true + servers: + - url: https://api.linode.com/v4beta + summary: Create Object Storage Bucket + description: | + Creates an Object Storage Bucket in the cluster specified. If the + bucket already exists and is owned by you, this endpoint will return a + `200` response with that bucket as if it had just been created. + + + This endpoint is available for convenience. It is recommended that instead you + use the more [fully-featured S3 API](https://docs.ceph.com/docs/mimic/radosgw/s3/bucketops/#put-bucket) directly. + + + **Beta**: This endpoint is in beta. Please make sure to prepend all requests with + `/v4beta` instead of `/v4`, and be aware that this endpoint may receive breaking + updates in the future. This notice will be removed when this endpoint is out of + beta. + tags: + - Object Storage + security: + - personalAccessToken: [] + - oauth: + - object_storage:read_write + requestBody: + description: > + Information about the bucket you want to create. + content: + application/json: + schema: + type: object + required: + - label + - cluster + properties: + label: + type: string + description: > + The name for this bucket. Must be unique in the cluster you + are creating the bucket in, or an error will be returned. + pattern: ^[a-z0-09][a-z0-9-]*[a-z0-9]?$ + example: example-bucket + cluster: + type: string + description: > + The ID of the Object Storage Cluster where this bucket should + be created. + example: us-east-1 + cors_enabled: + type: boolean + description: > + If true, the bucket will be created with CORS enabled for all + origins. For more fine-grained controls of CORS, use the S3 + API directly. + example: true + default: false + acl: + type: string + enum: + - private + - public-read + - authenticated-read + - public-read-write + description: > + The Access Control Level of the bucket using a canned ACL string. + For more fine-grained control of ACLs, use the S3 API directly. + default: private + example: private + responses: + '200': + description: The bucket created successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectStorageBucket' + default: + $ref: '#/components/responses/ErrorResponse' + x-code-samples: + - lang: Shell + source: > + curl -H "Content-Type: application/json" \ + -H "Authorization: Bearer $TOKEN" \ + -X POST -d '{ + "label": "example-bucket", + "cluster": "us-east-1", + "cors_enabled": true, + "acl": "private", + }' \ + https://api.linode.com/v4beta/object-storage/buckets/ + /object-storage/buckets/{clusterId}/{bucket}: + parameters: + - name: clusterId + in: path + description: The ID of the cluster this bucket exists in. + required: true + schema: + type: string + - name: bucket + in: path + description: The bucket name. + required: true + schema: + type: string + get: + operationId: getObjectStorageBucket + x-linode-cli-skip: true + servers: + - url: https://api.linode.com/v4beta + summary: View Object Storage Bucket + 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/docs/mimic/radosgw/s3/bucketops/#get-bucket) directly. + + + **Beta**: This endpoint is in beta. Please make sure to prepend all requests with + `/v4beta` instead of `/v4`, and be aware that this endpoint may receive breaking + updates in the future. This notice will be removed when this endpoint is out of + beta. + 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/v4beta/object-storage/buckets/us-east-1/example-bucket + delete: + operationId: deleteObjectStorageBucket + x-linode-cli-skip: true + servers: + - url: https://api.linode.com/v4beta + summary: Remove Object Storage Bucket + description: > + Removes a single bucket. While buckets containing objects _may_ be + deleted by including the `force` option in the request, such operations + will 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/docs/master/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/docs/mimic/radosgw/s3/bucketops/#delete-bucket) directly. + + + **Beta**: This endpoint is in beta. Please make sure to prepend all requests with + `/v4beta` instead of `/v4`, and be aware that this endpoint may receive breaking + updates in the future. This notice will be removed when this endpoint is out of + beta. + tags: + - Object Storage + security: + - personalAccessToken: [] + - oauth: + - object_storage:read_write + parameters: + - name: force + in: query + required: false + description: > + If false, this operation will fail if the bucket is not empty. If true, this operation + will attempt to remove the bucket and its contents; very large buckets + may still return an error and require object deletion manually or through + object lifecycle management. See [the S3 API docs](https://docs.ceph.com/docs/mimic/radosgw/s3/bucketops/#delete-bucket) for details. + schema: + type: integer + default: false + responses: + '200': + description: Bucket 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/v4beta/object-storage/buckets/us-east-1/example-bucket + /object-storage/buckets/{clusterId}/{bucket}/access: + parameters: + - name: clusterId + in: path + description: The ID of the cluster this bucket exists in. + required: true + schema: + type: string + - name: bucket + in: path + description: The bucket name. + required: true + schema: + type: string + post: + operationId: modifyObjectStorageBucketAccess + x-linode-cli-skip: true + servers: + - url: https://api.linode.com/v4beta + summary: Modify Object Storage Bucket Access + 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 S3 API directly. + + + This endpoint is available for convenience. It is recommended that instead you + use the more more [fully-featured S3 API](https://docs.ceph.com/docs/mimic/radosgw/s3/bucketops/#put-bucket-acl) directly. + + + **Beta**: This endpoint is in beta. Please make sure to prepend all requests with + `/v4beta` instead of `/v4`, and be aware that this endpoint may receive breaking + updates in the future. This notice will be removed when this endpoint is out of + beta. + tags: + - Object Storage + 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 + description: > + The Access Control Level of the bucket, as a canned ACL string. + For more fine-grained control of ACLs, use the S3 API directly. + example: private + responses: + '200': + description: Access controls updated. + content: + application/json: + schema: + type: object + default: + $ref: '#/components/responses/ErrorResponse' + x-code-samples: + - lang: Shell + source: > + curl -H "Content-Type: application/json" \ + -H "Authorization: Bearer $TOKEN" \ + -X POST -d '{ + "cors_enabled": true, + "acl": "private" + }' \ + https://api.linode.com/v4beta/object-storage/buckets/us-east-1/example-bucket/access + /object-storage/buckets/{clusterId}/{bucket}/object-list: + parameters: + - name: clusterId + in: path + description: The ID of the cluster this bucket exists in. + required: true + schema: + type: string + - name: bucket + in: path + description: The bucket name. + required: true + schema: + type: string + get: + operationId: getObjectStorageBucketContent + x-linode-cli-skip: true + servers: + - url: https://api.linode.com/v4beta + summary: List Object Storage Bucket Contents + 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/docs/luminous/radosgw/s3/bucketops/#get-bucket) directly. + + + **Beta**: This endpoint is in beta. Please make sure to prepend all requests with + `/v4beta` instead of `/v4`, and be aware that this endpoint may receive breaking + updates in the future. This notice will be removed when this endpoint is out of + beta. + tags: + - Object Storage + security: + - personalAccessToken: [] + - oauth: + - object_storage:read_only + parameters: + - name: marker + in: query + required: false + description: > + The "marker" for this request, which can be used to paginate through large buckets. + This should be the name of the last object on the last page of results. Listing + bucket contents *does not* support arbitrary page access. + schema: + type: string + - name: delimiter + in: query + required: false + description: > + The delimiter for object names; if given, object names will be returned + up to the first occurrence of this character. This is most commonly used + with the `/` character to allow bucket transversal in a manner similar to + a filesystem, however any delimiter may be used. Use in conjunction with + `prefix` to see object names past the first occurrence of the delimiter. + schema: + type: string + - name: prefix + in: query + required: false + description: > + Filters objects returned to only those whose name start with the given + prefix. Commonly used in conjunction with `delimiter` to allow transversal + of bucket contents in a manner similar to a filesystem. + schema: + type: string + - $ref: '#/components/parameters/pageSize' + responses: + '200': + description: One page of the requested bucket's contents. + content: + application/json: + schema: + properties: + data: + type: array + description: This page of objects in the bucket. + items: + $ref: '#/components/schemas/ObjectStorageObject' + default: + $ref: '#/components/responses/ErrorResponse' + x-code-samples: + - lang: Shell + source: > + curl -H "Authorization: Bearer $TOKEN" \ + https://api.linode.com/v4beta/object-storage/buckets/us-east-1/example-bucket/object-list + /object-storage/buckets/{clusterId}/{bucket}/object-url: + parameters: + - name: clusterId + in: path + description: The ID of the cluster this bucket exists in. + required: true + schema: + type: string + - name: bucket + in: path + description: The bucket name. + required: true + schema: + type: string + post: + operationId: createObjectStorageObjectURL + x-linode-cli-skip: true + servers: + - url: https://api.linode.com/v4beta + summary: Create Object Storage Object URL + 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/docs/mimic/radosgw/s3/) + directly. + + + **Beta**: This endpoint is in beta. Please make sure to prepend all requests with + `/v4beta` instead of `/v4`, and be aware that this endpoint may receive breaking + updates in the future. This notice will be removed when this endpoint is out of + beta. + tags: + - Object Storage + security: + - personalAccessToken: [] + - oauth: + - object_storage:read_write + 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: 68400 + default: 3600 + description: > + How long this signed URL will be valid for, in seconds. If + omitted, the URL will be valid for 3600 seconds (1 hour). + example: null + responses: + '200': + description: The URL with which to access your object. + content: + application/json: + schema: + properties: + url: + type: string + description: The signed URL to perform the request at. + example: https://us-east-1.linodeobjects.com/example-bucket/example?Signature=qr98TEucCntPgEG%2BsZQGDsJg93c%3D&Expires=1567609905&AWSAccessKeyId=G4YAF81XWY61DQM94SE0 + default: + $ref: '#/components/responses/ErrorResponse' + x-code-samples: + - lang: Shell + source: > + curl -H "Content-Type: application/json" \ + -H "Authorization: Bearer $TOKEN" \ + -X POST -d '{ + "method": "GET", + "name": "example" + }' \ + https://api.linode.com/v4beta/object-storage/buckets/us-east-1/example-bucket/object-url /object-storage/clusters: x-linode-cli-command: object-storage get: @@ -8746,20 +9271,18 @@ paths: servers: - url: https://api.linode.com/v4beta summary: List Clusters - description: > + 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. -

+ + **Beta**: This endpoint is in beta. Please make sure to prepend all requests with `/v4beta` instead of `/v4`, and be aware that this endpoint may receiving breaking updates in the future. This notice will be removed when this endpoint is out of beta. tags: - Object Storage - security: - - personalAccessToken: [] - - oauth: [] responses: '200': description: A paginated list of available clusters. @@ -8803,9 +9326,10 @@ paths: servers: - url: https://api.linode.com/v4beta summary: View Cluster - description: > + description: | Returns a single Object Storage Cluster. -

+ + **Beta**: This endpoint is in beta. Please make sure to prepend all requests with `/v4beta` instead of `/v4`, and be aware that this endpoint may receiving breaking updates in the future. This notice will be removed when this endpoint is out of @@ -8839,10 +9363,11 @@ paths: tags: - Object Storage summary: List Object Storage Keys - description: > + description: | Returns a paginated list of Object Storage Keys for authenticating to the Object Storage S3 API. -

+ + **Beta**: This endpoint is in beta. Please make sure to prepend all requests with `/v4beta` instead of `/v4`, and be aware that this endpoint may receiving breaking updates in the future. This notice will be removed when this endpoint is out of @@ -8885,9 +9410,10 @@ paths: servers: - url: https://api.linode.com/v4beta summary: Create an Object Storage Key - description: > + description: | Provisions a new Object Storage Key on your account. -

+ + **Beta**: This endpoint is in beta. Please make sure to prepend all requests with `/v4beta` instead of `/v4`, and be aware that this endpoint may receiving breaking updates in the future. This notice will be removed when this endpoint is out of @@ -8927,7 +9453,8 @@ paths: x-code-samples: - lang: Shell source: > - curl -H "Authorization: Bearer $TOKEN" \ + curl -H "Content-Type: application/json" \ + -H "Authorization: Bearer $TOKEN" \ -X POST -d '{ "label": "my-object-storage-key" }' \ @@ -8951,12 +9478,13 @@ paths: servers: - url: https://api.linode.com/v4beta summary: View Object Storage Key - description: > + description: | Returns a single Object Storage Key provisioned for your account. -

+ + **Beta**: This endpoint is in beta. Please make sure to prepend all requests with `/v4beta` instead of `/v4`, and be aware that this endpoint may receiving breaking - updates in the future. This notice will be removed when this endpoint is out of + updates in the future. This notice will be removed when this endpoint is out of beta. security: - personalAccessToken: [] @@ -8988,12 +9516,13 @@ paths: servers: - url: https://api.linode.com/v4beta summary: Update an Object Storage Key - description: > + description: | Updates an Object Storage Key on your account. -

+ + **Beta**: This endpoint is in beta. Please make sure to prepend all requests with `/v4beta` instead of `/v4`, and be aware that this endpoint may receiving breaking - updates in the future. This notice will be removed when this endpoint is out of + updates in the future. This notice will be removed when this endpoint is out of beta. security: - personalAccessToken: [] @@ -9019,7 +9548,8 @@ paths: x-code-samples: - lang: Shell source: > - curl -H "Authorization: Bearer $TOKEN" \ + curl -H "Content-Type: application/json" \ + -H "Authorization: Bearer $TOKEN" \ -x PUT -d '{ "label": "my-object-storage-key" }' \ @@ -9035,12 +9565,13 @@ paths: servers: - url: https://api.linode.com/v4beta summary: Revoke Object Storage Key - description: > + description: | Revokes an Object Storage Key. This keypair will no longer be usable by third-party clients. -

+ + **Beta**: This endpoint is in beta. Please make sure to prepend all requests with `/v4beta` instead of `/v4`, and be aware that this endpoint may receiving breaking - updates in the future. This notice will be removed when this endpoint is out of + updates in the future. This notice will be removed when this endpoint is out of beta. security: - personalAccessToken: [] @@ -15245,6 +15776,78 @@ components: example: false readOnly: true x-linode-cli-display: 4 + 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/docs/mimic/radosgw/s3/#api). + properties: + created: + type: string + format: date-time + description: When this bucket was created. + example: 2019-01-01T01:23:45 + 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 + region: + type: string + description: The ID of the Region this bucket exists in. + example: us-east + size: + type: integer + description: The size of this bucket, in bytes. + example: 123 + objects: + type: integer + description: The number of objects in this bucket. + example: 4 + 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 + 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 ObjectStorageCluster: type: object description: An Object Storage Cluster @@ -15266,7 +15869,7 @@ components: example: available region: type: string - description: The region this cluster is located in. + description: The region where this cluster is located. example: us-east static_site_domain: type: string @@ -15283,16 +15886,16 @@ components: readOnly: true label: type: string - description: The label given to this key. For display purposes only. + 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. + 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**. + description: This keypair's secret key. **Only returned on key creation**. example: '[REDACTED]' readOnly: true PaginationEnvelope: From 0424230e3dcf212e59c4321a119e6206d05a1c0e Mon Sep 17 00:00:00 2001 From: hzoppetti <50596820+hzoppetti@users.noreply.github.com> Date: Fri, 6 Sep 2019 15:34:14 -0400 Subject: [PATCH 8/9] [Update] GET /account/events and GET /account/events/{eventId} (#116) * Updated Event schema object added secondary_entity object * added filterable tag to properties id and created per map * updated type to enum and description. also updated cli display order. * removed enum from type, made id a string, made label non-changing, allow for possibility of more event actions --- openapi.yaml | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index aca83e9b1..5cb90c1e1 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -12830,6 +12830,7 @@ components: description: The unique ID of this Event. example: 123 x-linode-cli-display: 1 + x-linode-filterable: true action: type: string enum: @@ -12945,7 +12946,8 @@ components: format: date-time description: When this Event was created. example: '2018-01-01T00:01:01' - x-linode-cli-display: 5 + x-linode-cli-display: 6 + x-linode-filterable: true entity: type: object readOnly: true @@ -13007,7 +13009,7 @@ components: - volume readOnly: true description: > - The type of entity this Event is related to. + The type of entity that is being referenced by the Event. example: ticket x-linode-filterable: true url: @@ -13017,6 +13019,37 @@ components: 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_create`, and `linode_clone` Event actions. + x-linode-cli-display: 5 + 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 @@ -13037,13 +13070,13 @@ components: readOnly: true description: If this Event has been read. example: true - x-linode-cli-display: 8 + x-linode-cli-display: 9 seen: type: boolean readOnly: true description: If this Event has been seen. example: true - x-linode-cli-display: 7 + x-linode-cli-display: 8 status: type: string readOnly: true @@ -13054,7 +13087,7 @@ components: - notification - scheduled - started - x-linode-cli-display: 6 + x-linode-cli-display: 7 x-linode-cli-color: failed: red finished: green From d51e575a35a5e25328f458a95708bbdf11e44966 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Fri, 6 Sep 2019 17:15:39 -0400 Subject: [PATCH 9/9] Bump version to 4.4.0 --- openapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index 5cb90c1e1..b0fc56bd3 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -1,6 +1,6 @@ openapi: 3.0.1 info: - version: 4.3.2 + version: 4.4.0 title: Linode API description: | # Introduction