diff --git a/openapi.json b/openapi.json index a767360..14ee643 100644 --- a/openapi.json +++ b/openapi.json @@ -239,6 +239,9 @@ "description": "Specifies the `X-Filter` header JSON object's filtering and sort criteria.", "oneOf": [ { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -250,7 +253,6 @@ } }, { - "additionalProperties": false, "example": { "+or": [ { @@ -265,6 +267,9 @@ "+and": { "description": "All conditions need to be true.", "items": { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -304,6 +309,9 @@ "+or": { "description": "At least one condition needs to be true.", "items": { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -353,6 +361,13 @@ "409": { "content": { "application/json": { + "example": { + "errors": [ + { + "reason": "We were unable to charge your credit card for services rendered. We cannot cancel this account until the balance has been paid." + } + ] + }, "schema": { "additionalProperties": false, "properties": { @@ -373,11 +388,8 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-post-cancel-account-409.yaml" + "file-path": "schemas/post-cancel-account-409.yaml" } - }, - "x-example": { - "x-ref": "../examples/tbd.json" } } }, @@ -389,6 +401,13 @@ "504-account-cancel": { "content": { "application/json": { + "example": { + "errors": [ + { + "reason": "Cancellation is taking longer than expected. It may have been successful. Contact customer support to confirm." + } + ] + }, "schema": { "additionalProperties": false, "properties": { @@ -409,11 +428,8 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-post-cancel-account-504.yaml" + "file-path": "schemas/post-cancel-account-504.yaml" } - }, - "x-example": { - "x-ref": "../examples/tbd.json" } } }, @@ -422,78 +438,6 @@ "file-path": "errors/504-account-cancel.yaml" } }, - "accepted-response": { - "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.\n\nA warnings array is included with the standard 200 response body." - }, - "deprecated-response": { - "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.\n\nA warnings array is included with the standard 200 response body." - }, "error-response": { "content": { "application/json": { @@ -508,6 +452,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -577,7 +522,7 @@ "type": "string" }, "service_type": { - "description": "The service to which this promotion applies.", + "description": "The service to which this promotion applies, either a specific service or `all` for any service. Specific services include `linode`, `longview`, `nodebalancer`, `objectstorage`, `blockstorage`, `db_mysql`, `ip_v4`, `linode_disk`, `linode_memory`, `managed`, `placement_group`, and `transfer_tx`.", "enum": [ "all", "backup", @@ -725,7 +670,6 @@ "euuid": { "description": "__Read-only__ An external unique identifier for this account.", "example": "E1AF5EEC-526F-487D-B317EBEB34C87D71", - "format": "uuid", "readOnly": true, "type": "string" }, @@ -868,7 +812,7 @@ }, "object_storage": { "default": "disabled", - "description": "__Read-only__ A string describing the status of this account's Object Storage service enrollment.", + "description": "__Read-only__ The status of this account's Object Storage service enrollment, either `active`, `disabled`, `suspended`. If the status is `suspended`, contact Support for more information.", "enum": [ "disabled", "suspended", @@ -904,7 +848,6 @@ "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 @@ -932,7 +875,7 @@ "x-linode-cli-display": 6 }, "status": { - "description": "__Read-only__ Whether the login attempt succeeded or failed.", + "description": "__Read-only__ Whether the login attempt was `successful` or if it `failed`.", "enum": [ "successful", "failed" @@ -1035,7 +978,6 @@ "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": { @@ -1212,7 +1154,6 @@ "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" }, @@ -1372,7 +1313,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The status of this application. `active` by default.", + "description": "__Read-only__ The status of this application, either `active` (default), `disabled`, or `suspended`.", "enum": [ "active", "disabled", @@ -1430,7 +1371,6 @@ "added-get-enrolled-beta-programs-200": { "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": { @@ -1475,7 +1415,6 @@ "ended": { "description": "__Filterable__, __Read-only__ The date-time that the Beta program ended. A value of `null` indicates that the Beta program is ongoing.", "example": null, - "format": "date-time", "nullable": true, "readOnly": true, "type": "string", @@ -1523,7 +1462,6 @@ "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": { @@ -1553,7 +1491,6 @@ "added-get-entity-transfers-200": { "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": { @@ -1945,6 +1882,7 @@ "additionalProperties": false, "properties": { "data": { + "description": "A list of objects returned for a response.", "items": { "additionalProperties": false, "description": "An important, often time-sensitive item related to your account.", @@ -2016,7 +1954,7 @@ "x-linode-cli-display": 2 }, "severity": { - "description": "The severity of this notification. This field determines how prominently the notification is displayed and the color of the display text.", + "description": "The severity of this notification, either `minor`, `major`, or `critical`. This field determines how prominently the notification is displayed and the color of the display text.", "enum": [ "minor", "major", @@ -2032,7 +1970,7 @@ "x-linode-cli-display": 3 }, "type": { - "description": "__Filterable__ The type of notification.\n\n> \ud83d\udcd8\n>\n> A `security_reboot_maintenance_scheduled` event is a global notice that a Linode needs to be rebooted for QEMU upgrade maintenance. Have a look at [this workflow](https://techdocs.akamai.com/linode-api/reference/reboot-your-linodes-for-qemu-maintenance) for guidance on reboooting your Linodes for this maintenance.", + "description": "__Filterable__ The type of notification, either `migration_scheduled`, `migration_imminent`, `migration_pending`, `reboot_scheduled`, `outage`, `payment_due`, `ticket_important`, `ticket_abuse`, `notice`, `maintenance`, `maintenance_scheduled`, `promotion`, `security_reboot_maintenance_scheduled`, or `tax_id_verifying`.\n\n> \ud83d\udcd8\n>\n> A `security_reboot_maintenance_scheduled` event is a global notice that a Linode needs to be rebooted for QEMU upgrade maintenance. Have a look at [this workflow](https://techdocs.akamai.com/linode-api/reference/reboot-your-linodes-for-qemu-maintenance) for guidance on reboooting your Linodes for this maintenance.", "enum": [ "migration_scheduled", "migration_imminent", @@ -2238,7 +2176,7 @@ "x-linode-cli-display": 3 }, "type": { - "description": "The type of Payment Method.", + "description": "The type of Payment Method, either `credit_card`, `google_pay`, or `paypal`.", "enum": [ "credit_card", "google_pay", @@ -2359,6 +2297,7 @@ "additionalProperties": false, "properties": { "data": { + "description": "A list of objects returned for a response.", "items": { "additionalProperties": false, "description": "An object representing a Service Transfer.", @@ -2507,7 +2446,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", + "description": "__Read-only__ The result of this user's most recent login attempt, either `successful` or `failed`.", "enum": [ "successful", "failed" @@ -2612,6 +2551,7 @@ "additionalProperties": false, "properties": { "data": { + "description": "A list of objects returned for a response.", "items": { "allOf": [ { @@ -2638,7 +2578,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", + "description": "__Read-only__ The result of this user's most recent login attempt, either `successful` or `failed`.", "enum": [ "successful", "failed" @@ -2811,52 +2751,6 @@ "file-path": "schemas/added-post-cancel-account-200.yaml" } }, - "added-post-cancel-account-409": { - "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" - } - }, - "added-post-cancel-account-504": { - "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" - } - }, "added-post-client": { "allOf": [ { @@ -2911,7 +2805,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The status of this application. `active` by default.", + "description": "__Read-only__ The status of this application, either `active` (default), `disabled`, or `suspended`.", "enum": [ "active", "disabled", @@ -2945,6 +2839,7 @@ "label", "redirect_uri" ], + "type": "object", "x-akamai": { "file-path": "schemas/added-post-client.yaml" } @@ -3037,7 +2932,7 @@ "type": "string" }, "cvv": { - "description": "CVV (Card Verification Value) of the credit card, typically found on the back of the card.", + "description": "The card verification value (CVV) of the credit card, typically found on the back of the card.", "example": "123", "format": "digits", "maxLength": 4, @@ -3045,17 +2940,17 @@ "type": "string" }, "expiry_month": { - "description": "A value from 1-12 representing the expiration month of your credit card.\n\n - 1 = January\n - 2 = February\n - 3 = March\n - Etc.", + "description": "A value from 1-12 representing the expiration month of your credit card, for example `1` indicates January, `2` indicates February, and `5` indicates May.", "example": 12, "maximum": 12, "minimum": 1, "type": "integer" }, "expiry_year": { - "description": "A four-digit integer representing the expiration year of your credit card.\n\nThe 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.", + "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, + "maximum": 2050, + "minimum": 2026, "type": "integer" } }, @@ -3170,7 +3065,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", + "description": "__Read-only__ The result of this user's most recent login attempt, either `successful` or `failed`.", "enum": [ "successful", "failed" @@ -3249,6 +3144,7 @@ "username", "email" ], + "type": "object", "x-akamai": { "file-path": "schemas/added-post-user.yaml" } @@ -3279,7 +3175,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", + "description": "__Read-only__ The result of this user's most recent login attempt, either `successful` or `failed`.", "enum": [ "successful", "failed" @@ -3424,7 +3320,6 @@ "ended": { "description": "__Filterable__, __Read-only__ The date-time that the Beta program ended. A value of `null` indicates that the Beta program is ongoing.", "example": null, - "format": "date-time", "nullable": true, "readOnly": true, "type": "string", @@ -3472,7 +3367,6 @@ "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": { @@ -3630,7 +3524,6 @@ "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" }, @@ -3721,7 +3614,7 @@ "type": "string" }, "cvv": { - "description": "CVV (Card Verification Value) of the credit card, typically found on the back of the card.", + "description": "The card verification value (CVV) of the credit card, typically found on the back of the card.", "example": "123", "format": "digits", "maxLength": 4, @@ -3729,17 +3622,17 @@ "type": "string" }, "expiry_month": { - "description": "A value from 1-12 representing the expiration month of your credit card.\n\n - 1 = January\n - 2 = February\n - 3 = March\n - Etc.", + "description": "A value from 1-12 representing the expiration month of your credit card, for example `1` indicates January, `2` indicates February, and `5` indicates May.", "example": 12, "maximum": 12, "minimum": 1, "type": "integer" }, "expiry_year": { - "description": "A four-digit integer representing the expiration year of your credit card.\n\nThe 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.", + "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, + "maximum": 2050, + "minimum": 2026, "type": "integer" } }, @@ -3795,7 +3688,6 @@ "ended": { "description": "__Filterable__, __Read-only__ The date-time that the Beta program ended. A value of `null` indicates that the Beta program is ongoing.", "example": null, - "format": "date-time", "nullable": true, "readOnly": true, "type": "string", @@ -3947,7 +3839,7 @@ "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.", + "description": "__Filterable__, __Read-only__ The action that caused this event. New actions may be added in the future.", "enum": [ "account_agreement_eu_model", "account_promo_apply", @@ -3963,8 +3855,6 @@ "database_create", "database_delete", "database_update", - "database_failed", - "database_degraded", "database_create_failed", "database_update_failed", "database_backup_create", @@ -4043,14 +3933,14 @@ "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_control_plane_acl_create", + "lke_control_plane_acl_update", + "lke_control_plane_acl_delete", "lke_node_create", "lke_node_delete", "lke_node_recycle", @@ -4093,6 +3983,11 @@ "placement_group_unassign", "placement_group_update", "profile_update", + "reserved_ip_assign", + "reserved_ip_create", + "reserved_ip_delete", + "reserved_ip_unassign", + "reserved_ip_update", "stackscript_create", "stackscript_delete", "stackscript_update", @@ -4138,60 +4033,108 @@ "example": "ticket_create", "readOnly": true, "type": "string", - "x-linode-cli-display": 3 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true }, "created": { - "description": "__Read-only__ When the system created this event.", + "description": "__Filterable__, __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 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 6, + "x-linode-filterable": true }, "details": { "additionalProperties": false, "description": "__Beta__, __Read-only__ Maintenance details for this event, if any.", "properties": { "complete_time": { - "description": "The time the maintenance completed. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "description": "__Filterable__ The time the maintenance completed. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", "example": "2020-07-09T00:01:01", "format": "date-time", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "description": { - "description": "Differentiates between scheduled and emergency maintenance.", + "description": "__Filterable__ Indicates either `scheduled` maintenance events or `emergency` maintenance.", "enum": [ "scheduled", "emergency" ], "example": "scheduled", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "maintenance_policy_set": { - "description": "The maintenance policy the user configures for this event.", + "description": "__Filterable__ The maintenance policy the user configures for this event.", "example": "linode/migrate", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "not_before": { - "description": "The scheduled start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "description": "__Filterable__ The scheduled start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", "example": "2020-07-09T00:01:01", "format": "date-time", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "source": { - "description": "The origin of the event. A `platform` source indicates that the event was initiated by Akamai. A `user` source indicates that the event was initiated by the user.", + "description": "__Filterable__ The origin of the event. A `platform` source indicates that the event was initiated by Akamai. A `user` source indicates that the event was initiated by the user.", "enum": [ "platform", "user" ], "example": "platform", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "start_time": { - "description": "The actual start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "description": "__Filterable__ The actual start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", "example": "2020-07-09T00:01:01", "format": "date-time", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true } }, "readOnly": true, @@ -4201,8 +4144,9 @@ } }, "duration": { - "description": "__Read-only__ The number of seconds that it takes for the event to complete.", + "description": "__Read-only__ The number of seconds that it takes for the event to complete. Displayed as `null` for an event that doesn't have a duration.", "example": 300.56, + "nullable": true, "readOnly": true, "type": "number", "x-linode-cli-display": 7 @@ -4211,10 +4155,26 @@ "additionalProperties": false, "description": "__Read-only__ Detailed information about the entity that triggered this event.", "properties": { + "cpc": { + "deprecated": true, + "description": "__Deprecated__ This field is deprecated.", + "example": null, + "nullable": true, + "type": "integer", + "x-akamai": { + "status": "DEPRECATED" + } + }, "id": { - "description": "The unique identifier assigned to the entity.", + "description": "__Filterable__ The unique identifier assigned to the entity.\n\n> \ud83d\udcd8\n>\n> Consider these points when filtering by `id`:\n>\n> - The `disks` and `backups` entities use the `id` of their parent Linode when filtering for events.\n>\n> - The `account` and `profile` entities don't have an `id`. To filter these entities, use the `type` object instead.\n>\n> - 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" + "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.", @@ -4222,8 +4182,20 @@ "type": "string", "x-linode-cli-display": 5 }, + "node": { + "description": "The ID of the node referenced by the event. This field is only returned for events with an entity type of `lkecluster`.", + "example": "123456-03aaf8b30000", + "nullable": true, + "type": "string" + }, + "pool": { + "description": "The ID of the node pool referenced by the event. This field is only returned for events with an entity type of `lkecluster`.", + "example": 123456, + "nullable": true, + "type": "integer" + }, "type": { - "description": "__Read-only__ The type of entity that is being referenced by the event.", + "description": "__Filterable__, __Read-only__ The type of entity that is being referenced by the event. Values include `account`, `backups`, `community`, `database`, `disks`, `domain`, `entity_transfer`, `firewall`, `image`, `ipaddress`, `linode`, `lkecluster`, `longview`, `loadbalancer`, `managed_service`, `nodebalancer`, `oauth_client`, `placement_group`, `profile`, `stackscript`, `subnet`, `tag`, `ticket`, `token`, `user`, `user_ssh_key`, `volume`, and `vpc`. New entity types may be added in the future.", "enum": [ "account", "backups", @@ -4256,7 +4228,13 @@ ], "example": "ticket", "readOnly": true, - "type": "string" + "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.", @@ -4268,11 +4246,17 @@ "type": "object" }, "id": { - "description": "__Read-only__ The unique ID of this event.", + "description": "__Filterable__, __Read-only__ The unique ID of this event.", "example": 123, "readOnly": true, "type": "integer", - "x-linode-cli-display": 1 + "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.", @@ -4295,6 +4279,15 @@ "readOnly": true, "type": "string" }, + "read": { + "deprecated": true, + "description": "__Deprecated__ The operation that applied to this field has been decommissioned. It's always displayed as `false` in responses.", + "example": false, + "type": "boolean", + "x-akamai": { + "status": "DEPRECATED" + } + }, "secondary_entity": { "additionalProperties": false, "description": "__Read-only__ Detailed information about the event's secondary entity, if applicable.", @@ -4331,20 +4324,24 @@ "type": "boolean" }, "status": { - "description": "__Read-only__ The current status of this event.", + "description": "__Read-only__ The current status of this event, either `scheduled`, `notification`, `started`, `in_progress`, `completed`, `finished`, or `failed`.", "enum": [ - "failed", - "finished", - "notification", "scheduled", - "started" + "notification", + "started", + "in_progress", + "completed", + "finished", + "failed" ], "readOnly": true, "type": "string", "x-linode-cli-color": { + "completed": "green", "default_": "white", "failed": "red", "finished": "green", + "in_progress": "yellow", "started": "yellow" }, "x-linode-cli-display": 8 @@ -4376,9 +4373,10 @@ "data": { "items": { "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": "__Filterable__ The action that caused this event. New actions may be added in the future.", + "description": "__Filterable__, __Read-only__ The action that caused this event. New actions may be added in the future.", "enum": [ "account_agreement_eu_model", "account_promo_apply", @@ -4394,8 +4392,6 @@ "database_create", "database_delete", "database_update", - "database_failed", - "database_degraded", "database_create_failed", "database_update_failed", "database_backup_create", @@ -4524,6 +4520,11 @@ "placement_group_unassign", "placement_group_update", "profile_update", + "reserved_ip_assign", + "reserved_ip_create", + "reserved_ip_delete", + "reserved_ip_unassign", + "reserved_ip_update", "stackscript_create", "stackscript_delete", "stackscript_update", @@ -4567,6 +4568,7 @@ "vpc_update" ], "example": "ticket_create", + "readOnly": true, "type": "string", "x-akamai": { "labels": [ @@ -4577,9 +4579,10 @@ "x-linode-filterable": true }, "created": { - "description": "__Filterable__ When the system created this event.", + "description": "__Filterable__, __Read-only__ When the system created this event.", "example": "2018-01-01T00:01:01", "format": "date-time", + "readOnly": true, "type": "string", "x-akamai": { "labels": [ @@ -4591,7 +4594,7 @@ }, "details": { "additionalProperties": false, - "description": "__Beta__ Maintenance details for this event, if any.", + "description": "__Beta__, __Read-only__ Maintenance details for this event, if any.", "properties": { "complete_time": { "description": "__Filterable__ The time the maintenance completed. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", @@ -4606,7 +4609,7 @@ "x-linode-filterable": true }, "description": { - "description": "__Filterable__ Differentiates between scheduled and emergency maintenance.", + "description": "__Filterable__ Indicates either `scheduled` maintenance events or `emergency` maintenance.", "enum": [ "scheduled", "emergency" @@ -4671,21 +4674,34 @@ "x-linode-filterable": true } }, + "readOnly": true, "type": "object", "x-akamai": { "status": "BETA" } }, "duration": { - "description": "The number of seconds that it takes for the event to complete.", + "description": "__Read-only__ The number of seconds that it takes for the event to complete. Displayed as `null` for an event that doesn't have a duration.", "example": 300.56, + "nullable": true, + "readOnly": true, "type": "number", "x-linode-cli-display": 7 }, "entity": { "additionalProperties": false, - "description": "Detailed information about the entity that triggered this event.", + "description": "__Read-only__ Detailed information about the entity that triggered this event.", "properties": { + "cpc": { + "deprecated": true, + "description": "__Deprecated__ This field is deprecated.", + "example": null, + "nullable": true, + "type": "integer", + "x-akamai": { + "status": "DEPRECATED" + } + }, "id": { "description": "__Filterable__ The unique identifier assigned to the entity.\n\n> \ud83d\udcd8\n>\n> Consider these points when filtering by `id`:\n>\n> - The `disks` and `backups` entities use the `id` of their parent Linode when filtering for events.\n>\n> - The `account` and `profile` entities don't have an `id`. To filter these entities, use the `type` object instead.\n>\n> - The `tag` entity uses the tag's name as its `id`. Set this value to the tag's name to filter.", "example": 11111, @@ -4703,8 +4719,20 @@ "type": "string", "x-linode-cli-display": 5 }, + "node": { + "description": "The ID of the node referenced by the event. This field is only returned for events with an entity type of `lkecluster`.", + "example": "123456-03aaf8b30000", + "nullable": true, + "type": "string" + }, + "pool": { + "description": "The ID of the node pool referenced by the event. This field is only returned for events with an entity type of `lkecluster`.", + "example": 123456, + "nullable": true, + "type": "integer" + }, "type": { - "description": "__Filterable__ The type of entity that is being referenced by the event.", + "description": "__Filterable__, __Read-only__ The type of entity that is being referenced by the event. Values include `account`, `backups`, `community`, `database`, `disks`, `domain`, `entity_transfer`, `firewall`, `image`, `ipaddress`, `linode`, `lkecluster`, `longview`, `loadbalancer`, `managed_service`, `nodebalancer`, `oauth_client`, `placement_group`, `profile`, `stackscript`, `subnet`, `tag`, `ticket`, `token`, `user`, `user_ssh_key`, `volume`, and `vpc`. New entity types may be added in the future.", "enum": [ "account", "backups", @@ -4736,6 +4764,7 @@ "vpc" ], "example": "ticket", + "readOnly": true, "type": "string", "x-akamai": { "labels": [ @@ -4750,11 +4779,13 @@ "type": "string" } }, + "readOnly": true, "type": "object" }, "id": { - "description": "__Filterable__ The unique ID of this event.", + "description": "__Filterable__, __Read-only__ The unique ID of this event.", "example": 123, + "readOnly": true, "type": "integer", "x-akamai": { "labels": [ @@ -4772,20 +4803,31 @@ "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.", + "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": "The rate of completion of the event. Only some events return a `rate`, such as the `migration` and `resize` events.", + "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": { + "deprecated": true, + "description": "__Deprecated__ The operation that applied to this field has been decommissioned. It's always displayed as `false` in responses.", + "example": false, + "type": "boolean", + "x-akamai": { + "status": "DEPRECATED" + } + }, "secondary_entity": { "additionalProperties": false, - "description": "Detailed information about the event's secondary entity, if applicable.", + "description": "__Read-only__ Detailed information about the event's secondary entity, if applicable.", "properties": { "id": { "description": "The identifier for the secondary entity object.", @@ -4798,8 +4840,9 @@ "type": "string" }, "type": { - "description": "The type of secondary entity object that's being referenced by the event.", + "description": "__Read-only__ The type of secondary entity object that's being referenced by the event.", "example": "linode", + "readOnly": true, "type": "string" }, "url": { @@ -4808,24 +4851,27 @@ "type": "string" } }, + "readOnly": true, "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).", + "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": "The current status of this event.", + "description": "__Read-only__ The current status of this event, either `scheduled`, `notification`, `started`, `in_progress`, `completed`, `finished`, or `failed`.", "enum": [ + "scheduled", + "notification", + "started", + "in_progress", "completed", - "failed", "finished", - "in_progress", - "notification", - "scheduled", - "started" + "failed" ], + "readOnly": true, "type": "string", "x-linode-cli-color": { "completed": "green", @@ -4838,36 +4884,44 @@ "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.", + "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": "The name of the user whose action caused the event.", + "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" + "type": "object", + "x-akamai": { + "file-path": "schemas/event.yaml" + } }, "type": "array" }, "page": { - "description": "The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", + "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", "example": 1, + "readOnly": true, "type": "integer" }, "pages": { - "description": "The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", + "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", "example": 1, + "readOnly": true, "type": "integer" }, "results": { - "description": "The total number of results.", + "description": "__Read-only__ The total number of results.", "example": 1, + "readOnly": true, "type": "integer" } }, @@ -4898,7 +4952,7 @@ "x-linode-filterable": true }, "description": { - "description": "Differentiates between scheduled and emergency maintenance.", + "description": "Indicates either `scheduled` maintenance events or `emergency` maintenance.", "enum": [ "scheduled", "emergency" @@ -5002,7 +5056,7 @@ "x-linode-filterable": true }, "type": { - "description": "__Filterable__ The type of maintenance.", + "description": "__Filterable__ The type of maintenance, either `reboot`, `cold_migration`, `live_migration`, `migrate`, or `power_off_on`.", "enum": [ "reboot", "cold_migration", @@ -5109,7 +5163,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -5145,7 +5199,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -5180,7 +5234,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -5215,7 +5269,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -5337,7 +5391,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -5372,7 +5426,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -5407,7 +5461,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -5442,7 +5496,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -5477,7 +5531,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -5512,7 +5566,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -5547,7 +5601,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -5795,7 +5849,6 @@ "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 @@ -5823,7 +5876,7 @@ "x-linode-cli-display": 6 }, "status": { - "description": "__Read-only__ Whether the login attempt succeeded or failed.", + "description": "__Read-only__ Whether the login attempt was `successful` or if it `failed`.", "enum": [ "successful", "failed" @@ -5863,7 +5916,7 @@ "x-linode-filterable": true }, "description": { - "description": "Differentiates between scheduled and emergency maintenance.", + "description": "Indicates either `scheduled` maintenance events or `emergency` maintenance.", "enum": [ "scheduled", "emergency" @@ -5967,7 +6020,7 @@ "x-linode-filterable": true }, "type": { - "description": "__Filterable__ The type of maintenance.", + "description": "__Filterable__ The type of maintenance, either `reboot`, `cold_migration`, `live_migration`, `migrate`, or `power_off_on`.", "enum": [ "reboot", "cold_migration", @@ -6073,7 +6126,7 @@ "x-linode-cli-display": 2 }, "severity": { - "description": "The severity of this notification. This field determines how prominently the notification is displayed and the color of the display text.", + "description": "The severity of this notification, either `minor`, `major`, or `critical`. This field determines how prominently the notification is displayed and the color of the display text.", "enum": [ "minor", "major", @@ -6089,7 +6142,7 @@ "x-linode-cli-display": 3 }, "type": { - "description": "__Filterable__ The type of notification.\n\n> \ud83d\udcd8\n>\n> A `security_reboot_maintenance_scheduled` event is a global notice that a Linode needs to be rebooted for QEMU upgrade maintenance. Have a look at [this workflow](https://techdocs.akamai.com/linode-api/reference/reboot-your-linodes-for-qemu-maintenance) for guidance on reboooting your Linodes for this maintenance.", + "description": "__Filterable__ The type of notification, either `migration_scheduled`, `migration_imminent`, `migration_pending`, `reboot_scheduled`, `outage`, `payment_due`, `ticket_important`, `ticket_abuse`, `notice`, `maintenance`, `maintenance_scheduled`, `promotion`, `security_reboot_maintenance_scheduled`, or `tax_id_verifying`.\n\n> \ud83d\udcd8\n>\n> A `security_reboot_maintenance_scheduled` event is a global notice that a Linode needs to be rebooted for QEMU upgrade maintenance. Have a look at [this workflow](https://techdocs.akamai.com/linode-api/reference/reboot-your-linodes-for-qemu-maintenance) for guidance on reboooting your Linodes for this maintenance.", "enum": [ "migration_scheduled", "migration_imminent", @@ -6197,7 +6250,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The status of this application. `active` by default.", + "description": "__Read-only__ The status of this application, either `active` (default), `disabled`, or `suspended`.", "enum": [ "active", "disabled", @@ -6239,7 +6292,6 @@ "type": "integer" }, "pagination-envelope": { - "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": { @@ -6429,7 +6481,7 @@ "x-linode-cli-display": 3 }, "type": { - "description": "The type of Payment Method.", + "description": "The type of Payment Method, either `credit_card`, `google_pay`, or `paypal`.", "enum": [ "credit_card", "google_pay", @@ -6522,6 +6574,52 @@ "file-path": "schemas/paypal-execute.yaml" } }, + "post-cancel-account-409": { + "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/post-cancel-account-409.yaml" + } + }, + "post-cancel-account-504": { + "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/post-cancel-account-504.yaml" + } + }, "promotion": { "additionalProperties": false, "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.\n\nSimply 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.", @@ -6555,7 +6653,7 @@ "type": "string" }, "service_type": { - "description": "The service to which this promotion applies.", + "description": "The service to which this promotion applies, either a specific service or `all` for any service. Specific services include `linode`, `longview`, `nodebalancer`, `objectstorage`, `blockstorage`, `db_mysql`, `ip_v4`, `linode_disk`, `linode_memory`, `managed`, `placement_group`, and `transfer_tx`.", "enum": [ "all", "backup", @@ -6786,7 +6884,6 @@ "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": { @@ -6884,7 +6981,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", + "description": "__Read-only__ The result of this user's most recent login attempt, either `successful` or `failed`.", "enum": [ "successful", "failed" @@ -6980,30 +7077,13 @@ "file-path": "schemas/user-type.yaml" } }, - "warning-object": { - "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" - } - }, "x-filter": { "description": "Specifies the `X-Filter` header JSON object's filtering and sort criteria.", "oneOf": [ { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -7015,7 +7095,6 @@ } }, { - "additionalProperties": false, "example": { "+or": [ { @@ -7030,6 +7109,9 @@ "+and": { "description": "All conditions need to be true.", "items": { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -7069,6 +7151,9 @@ "+or": { "description": "At least one condition needs to be true.", "items": { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -7104,6 +7189,9 @@ } }, "x-filter-criteria": { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -7123,6 +7211,10 @@ "scopes": { "account:read_only": "Allows access to GET information about your account.", "account:read_write": "Allows access to all endpoints related to your account.", + "child_account:read_only": "Allows access to GET information about deprecated parent/child operations.", + "child_account:read_write": "Allows access to deprecated parent/child operations.", + "databases:read_only": "Allows access to GET information about databases.", + "databases:read_write": "Allows access to all endpoints related to databases.", "domains:read_only": "Allows access to GET Domains on your account.", "domains:read_write": "Allows access to all Domain endpoints.", "events:read_only": "Allows access to GET your Events.", @@ -7139,8 +7231,8 @@ "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.", - "monitor:read-write": "Allows access to all Monitor (Akamai Cloud Pulse) endpoints.", "monitor:read_only": "Allows access to Monitor (Akamai Cloud Pulse) data.", + "monitor:read_write": "Allows access to GET Monitor (Akamai Cloud Pulse) data.", "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.", @@ -7173,13 +7265,13 @@ "url": "https://www.apache.org/licenses/LICENSE-2.0.html" }, "title": "Akamai: Linode API", - "version": "4.229.1" + "version": "4.234.0" }, "openapi": "3.0.1", "paths": { "/{apiVersion}/account": { "get": { - "description": "Returns the contact and billing information related to your account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_account`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account view\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns the contact and billing information related to your account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_account`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account view\n```\n\n[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-account" @@ -7270,7 +7362,7 @@ "type": "string" }, "service_type": { - "description": "The service to which this promotion applies.", + "description": "The service to which this promotion applies, either a specific service or `all` for any service. Specific services include `linode`, `longview`, `nodebalancer`, `objectstorage`, `blockstorage`, `db_mysql`, `ip_v4`, `linode_disk`, `linode_memory`, `managed`, `placement_group`, and `transfer_tx`.", "enum": [ "all", "backup", @@ -7418,7 +7510,6 @@ "euuid": { "description": "__Read-only__ An external unique identifier for this account.", "example": "E1AF5EEC-526F-487D-B317EBEB34C87D71", - "format": "uuid", "readOnly": true, "type": "string" }, @@ -7483,6 +7574,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -7547,7 +7639,7 @@ ] }, "put": { - "description": "Updates contact and billing information related to your account. If you exclude any properties from the request, the operation leaves them unchanged.\n\n> \ud83d\udcd8\n>\n> 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.\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature:\n\n- You can't change the company for a parent account.\n\n- Child account users can't run this operation.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `update_account`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account update \\\n --address_1 \"123 Main St.\" \\\n --address_2 \"Suite 101\" \\\n --city Philadelphia \\\n --company My Company \\ LLC \\\n --country US \\\n --email jsmith@mycompany.com \\\n --first_name John \\\n --last_name Smith \\\n --phone 555-555-1212 \\\n --state PA \\\n --tax_id ATU99999999 \\\n --zip 19102\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Updates contact and billing information related to your account. If you exclude any properties from the request, the operation leaves them unchanged.\n\n> \ud83d\udcd8\n>\n> 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.\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature:\n\n- You can't change the company for a parent account.\n\n- Child account users can't run this operation.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `update_account`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account update \\\n --address_1 \"123 Main St.\" \\\n --address_2 \"Suite 101\" \\\n --city Philadelphia \\\n --company My Company \\ LLC \\\n --country US \\\n --email jsmith@mycompany.com \\\n --first_name John \\\n --last_name Smith \\\n --phone 555-555-1212 \\\n --state PA \\\n --tax_id ATU99999999 \\\n --zip 19102\n```\n\n[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-account" @@ -7601,7 +7693,7 @@ "type": "string" }, "service_type": { - "description": "The service to which this promotion applies.", + "description": "The service to which this promotion applies, either a specific service or `all` for any service. Specific services include `linode`, `longview`, `nodebalancer`, `objectstorage`, `blockstorage`, `db_mysql`, `ip_v4`, `linode_disk`, `linode_memory`, `managed`, `placement_group`, and `transfer_tx`.", "enum": [ "all", "backup", @@ -7749,7 +7841,6 @@ "euuid": { "description": "__Read-only__ An external unique identifier for this account.", "example": "{{euuid}}", - "format": "uuid", "readOnly": true, "type": "string" }, @@ -7885,7 +7976,7 @@ "type": "string" }, "service_type": { - "description": "The service to which this promotion applies.", + "description": "The service to which this promotion applies, either a specific service or `all` for any service. Specific services include `linode`, `longview`, `nodebalancer`, `objectstorage`, `blockstorage`, `db_mysql`, `ip_v4`, `linode_disk`, `linode_memory`, `managed`, `placement_group`, and `transfer_tx`.", "enum": [ "all", "backup", @@ -8033,7 +8124,6 @@ "euuid": { "description": "__Read-only__ An external unique identifier for this account.", "example": "E1AF5EEC-526F-487D-B317EBEB34C87D71", - "format": "uuid", "readOnly": true, "type": "string" }, @@ -8098,6 +8188,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -8189,7 +8280,7 @@ }, "/{apiVersion}/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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `acknowledge_account_agreement`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`", + "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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `acknowledge_account_agreement`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-account-agreements" @@ -8269,6 +8360,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -8325,7 +8417,7 @@ ] }, "get": { - "description": "Returns all agreements and their acceptance status for your account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_account_agreements`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`", + "description": "Returns all agreements and their acceptance status for your account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_account_agreements`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-account-agreements" @@ -8388,6 +8480,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -8471,7 +8564,7 @@ }, "/{apiVersion}/account/availability": { "get": { - "description": "Returns a paginated list of the services available to you, for all Akamai Cloud Computing regions.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_available_services`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account get-availability\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns a paginated list of the services available to you, for all Akamai Cloud Computing regions.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_available_services`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account get-availability\n```\n\n[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-availability" @@ -8587,7 +8680,6 @@ "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": { @@ -8637,6 +8729,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -8728,7 +8821,7 @@ }, "/{apiVersion}/account/availability/{regionId}": { "get": { - "description": "View the available services for your account, in a specific region.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_region_available_service`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account get-account-availability us-east\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "View the available services for your account, in a specific region.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_region_available_service`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account get-account-availability us-east\n```\n\n[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-account-availability" @@ -8808,6 +8901,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -8913,7 +9007,7 @@ }, "/{apiVersion}/account/betas": { "post": { - "description": "Enroll your account in an active Beta program.\n\nWhen running this operation, consider these points:\n\n- To view active Beta programs, run the [List beta programs](https://techdocs.akamai.com/linode-api/reference/get-beta-programs) operation.\n\n- Active Beta programs may have a limited number of enrollments. If a program has reached its maximum number of enrollments, you'll get an error even though the request is successful.\n\n- Beta programs with `\"greenlight_only\": true` can only be enrolled in by an accounts that participates in the [Greenlight](https://www.linode.com/green-light/) program.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `enroll_beta_program`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli betas enroll --id example_open\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Enroll your account in an active Beta program.\n\nWhen running this operation, consider these points:\n\n- To view active Beta programs, run the [List beta programs](https://techdocs.akamai.com/linode-api/reference/get-beta-programs) operation.\n\n- Active Beta programs may have a limited number of enrollments. If a program has reached its maximum number of enrollments, you'll get an error even though the request is successful.\n\n- Beta programs with `\"greenlight_only\": true` can only be enrolled in by an accounts that participates in the [Greenlight](https://www.linode.com/green-light/) program.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `enroll_beta_program`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli betas enroll --id example_open\n```\n\n[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-beta-program" @@ -8979,6 +9073,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -9043,7 +9138,7 @@ ] }, "get": { - "description": "Display all enrolled Beta programs for your account. This includes both inactive and active programs.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_enrolled_beta_programs`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli betas enrolled\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Display all enrolled Beta programs for your account. This includes both inactive and active programs.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_enrolled_beta_programs`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli betas enrolled\n```\n\n[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-enrolled-beta-programs" @@ -9105,7 +9200,6 @@ "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": { @@ -9150,7 +9244,6 @@ "ended": { "description": "__Filterable__, __Read-only__ The date-time that the Beta program ended. A value of `null` indicates that the Beta program is ongoing.", "example": null, - "format": "date-time", "nullable": true, "readOnly": true, "type": "string", @@ -9198,7 +9291,6 @@ "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": { @@ -9243,6 +9335,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -9334,7 +9427,7 @@ }, "/{apiVersion}/account/betas/{betaId}": { "get": { - "description": "Display an enrolled Beta program for your account. The Beta program may be inactive.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_enrolled_beta_program`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli betas enrolled-view $betaId\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Display an enrolled Beta program for your account. The Beta program may be inactive.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_enrolled_beta_program`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli betas enrolled-view $betaId\n```\n\n[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-enrolled-beta-program" @@ -9367,7 +9460,6 @@ "ended": { "description": "__Filterable__, __Read-only__ The date-time that the Beta program ended. A value of `null` indicates that the Beta program is ongoing.", "example": null, - "format": "date-time", "nullable": true, "readOnly": true, "type": "string", @@ -9415,7 +9507,6 @@ "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": { @@ -9450,6 +9541,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -9555,7 +9647,7 @@ }, "/{apiVersion}/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.\n\n> \ud83d\udea7\n>\n> This operation permanently deletes your account, which _can't_ be recovered. Also, there is no warning prompt after you execute this operation.\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature, you need to contact your Akamai account team to delete a child or parent account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `cancel_account`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account cancel \\\n --comments \"I'm consolidating my accounts\"\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n> \ud83d\udea7\n>\n> This operation permanently deletes your account, which _can't_ be recovered. Also, there is no warning prompt after you execute this operation.\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature, you need to contact your Akamai account team to delete a child or parent account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `cancel_account`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account cancel \\\n --comments \"I'm consolidating my accounts\"\n```\n\n[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-cancel-account" @@ -9615,6 +9707,13 @@ "409": { "content": { "application/json": { + "example": { + "errors": [ + { + "reason": "We were unable to charge your credit card for services rendered. We cannot cancel this account until the balance has been paid." + } + ] + }, "schema": { "additionalProperties": false, "properties": { @@ -9635,11 +9734,8 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-post-cancel-account-409.yaml" + "file-path": "schemas/post-cancel-account-409.yaml" } - }, - "x-example": { - "x-ref": "../examples/tbd.json" } } }, @@ -9651,6 +9747,13 @@ "504": { "content": { "application/json": { + "example": { + "errors": [ + { + "reason": "Cancellation is taking longer than expected. It may have been successful. Contact customer support to confirm." + } + ] + }, "schema": { "additionalProperties": false, "properties": { @@ -9671,11 +9774,8 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-post-cancel-account-504.yaml" + "file-path": "schemas/post-cancel-account-504.yaml" } - }, - "x-example": { - "x-ref": "../examples/tbd.json" } } }, @@ -9698,6 +9798,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -9790,7 +9891,7 @@ "/{apiVersion}/account/child-accounts": { "get": { "deprecated": true, - "description": "__Deprecated__ Returns a paginated list of child accounts you're part of the account delegations for.\n\n> \ud83d\udea7 Parent and child accounts feature in Identity and Access\n>\n> With the introduction of Identity and Access, the parent and child accounts feature has changed. This operation is now deprecated, so use the [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-iam-delegation-all-child-accounts) operation instead. To learn more about the changes, see [Changes to the parent and child accounts feature for migrated partners](https://techdocs.akamai.com/cloud-computing/docs/parent-child-migration-partner).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `child_account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli child-account list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "__Deprecated__ Returns a paginated list of child accounts you're part of the account delegations for.\n\n> \ud83d\udea7 Parent and child accounts feature in Identity and Access\n>\n> With the introduction of Identity and Access, the parent and child accounts feature has changed. This operation is now deprecated, so use the [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-iam-delegation-all-child-accounts) operation instead. To learn more about the changes, see [Changes to the parent and child accounts feature for migrated partners](https://techdocs.akamai.com/cloud-computing/docs/parent-child-migration-partner).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `child_account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli child-account list\n```\n\n[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-child-accounts" @@ -10015,7 +10116,6 @@ "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" }, @@ -10137,6 +10237,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -10231,7 +10332,7 @@ "/{apiVersion}/account/child-accounts/{euuId}": { "get": { "deprecated": true, - "description": "__Deprecated__ Returns details of a specific child account that you're part of the account delegation for.\n\n> \ud83d\udea7 Parent and child accounts feature in Identity and Access\n>\n> With the introduction of Identity and Access, the parent and child accounts feature has changed. This operation is now deprecated, so use the [Get a child account](https://techdocs.akamai.com/linode-api/reference/get-delegation-profile-child-account) operation instead. To learn more about the changes to the parent and child accounts feature, see [Changes for migrated partners](https://techdocs.akamai.com/cloud-computing/docs/parent-child-migration-partner).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `child_account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli child-account view A1BC2DEF-34GH-567I-J890KLMN12O34P56\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "__Deprecated__ Returns details of a specific child account that you're part of the account delegation for.\n\n> \ud83d\udea7 Parent and child accounts feature in Identity and Access\n>\n> With the introduction of Identity and Access, the parent and child accounts feature has changed. This operation is now deprecated, so use the [Get a child account](https://techdocs.akamai.com/linode-api/reference/get-delegation-profile-child-account) operation instead. To learn more about the changes to the parent and child accounts feature, see [Changes for migrated partners](https://techdocs.akamai.com/cloud-computing/docs/parent-child-migration-partner).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `child_account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli child-account view A1BC2DEF-34GH-567I-J890KLMN12O34P56\n```\n\n[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-child-account" @@ -10411,7 +10512,6 @@ "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" }, @@ -10507,6 +10607,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -10614,7 +10715,7 @@ "/{apiVersion}/account/child-accounts/{euuId}/token": { "post": { "deprecated": true, - "description": "__Deprecated__ Creates a short-lived bearer token for a parent user on a specific child account.\n\n> \ud83d\udea7 Parent and child accounts feature in Identity and Access\n>\n> With the introduction of Identity and Access, the parent and child accounts feature has changed. This operation is no longer available. Use the [Create a delegate user token](https://techdocs.akamai.com/linode-api/reference/post-iam-delegation-profile-child-account-token) operation instead. To learn more about the changes to the parent and child accounts feature, see [Changes for migrated partners](https://techdocs.akamai.com/cloud-computing/docs/parent-child-migration-partner).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `child_account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli child-account create A1BC2DEF-34GH-567I-J890KLMN12O34P56\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "__Deprecated__ Creates a short-lived bearer token for a parent user on a specific child account.\n\n> \ud83d\udea7 Parent and child accounts feature in Identity and Access\n>\n> With the introduction of Identity and Access, the parent and child accounts feature has changed. This operation is no longer available. Use the [Create a delegate user token](https://techdocs.akamai.com/linode-api/reference/post-iam-delegation-profile-child-account-token) operation instead. To learn more about the changes to the parent and child accounts feature, see [Changes for migrated partners](https://techdocs.akamai.com/cloud-computing/docs/parent-child-migration-partner).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `child_account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli child-account create A1BC2DEF-34GH-567I-J890KLMN12O34P56\n```\n\n[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-child-account-token" @@ -10718,6 +10819,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -10825,7 +10927,7 @@ "/{apiVersion}/account/credit-card": { "post": { "deprecated": true, - "description": "__Deprecated__ Please run [Add a payment method](https://techdocs.akamai.com/linode-api/reference/post-payment-method).\n\nAdds or edits a credit card to your account and sets it as the default payment method.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`", + "description": "__Deprecated__ Please run [Add a payment method](https://techdocs.akamai.com/linode-api/reference/post-payment-method).\n\nAdds or edits a credit card to your account and sets it as the default payment method.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-credit-card" @@ -10853,7 +10955,7 @@ "type": "string" }, "cvv": { - "description": "CVV (Card Verification Value) of the credit card, typically found on the back of the card.", + "description": "The card verification value (CVV) of the credit card, typically found on the back of the card.", "example": "{{cvv}}", "format": "digits", "maxLength": 4, @@ -10861,17 +10963,17 @@ "type": "string" }, "expiry_month": { - "description": "A value from 1-12 representing the expiration month of your credit card.\n\n - 1 = January\n - 2 = February\n - 3 = March\n - Etc.", + "description": "A value from 1-12 representing the expiration month of your credit card, for example `1` indicates January, `2` indicates February, and `5` indicates May.", "example": "{{expiry_month}}", "maximum": 12, "minimum": 1, "type": "integer" }, "expiry_year": { - "description": "A four-digit integer representing the expiration year of your credit card.\n\nThe 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.", + "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, + "maximum": 2050, + "minimum": 2026, "type": "integer" } }, @@ -10921,6 +11023,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -11008,7 +11111,7 @@ "/{apiVersion}/account/entity-transfers": { "post": { "deprecated": true, - "description": "__Deprecated__ Run the [Request a service transfer](https://techdocs.akamai.com/linode-api/reference/post-service-transfer) operation instead.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`", + "description": "__Deprecated__ Run the [Request a service transfer](https://techdocs.akamai.com/linode-api/reference/post-service-transfer) operation instead.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-entity-transfer" @@ -11190,6 +11293,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -11249,7 +11353,7 @@ }, "get": { "deprecated": true, - "description": "__Deprecated__ Run the [List service transfers](https://techdocs.akamai.com/linode-api/reference/get-service-transfers) operation instead.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`", + "description": "__Deprecated__ Run the [List service transfers](https://techdocs.akamai.com/linode-api/reference/get-service-transfers) operation instead.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-entity-transfers" @@ -11317,7 +11421,6 @@ "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": { @@ -11470,6 +11573,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -11555,7 +11659,7 @@ "/{apiVersion}/account/entity-transfers/{token}": { "get": { "deprecated": true, - "description": "__Deprecated__ Run the [Get a service transfer request](https://techdocs.akamai.com/linode-api/reference/get-service-transfer) operation instead.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`", + "description": "__Deprecated__ Run the [Get a service transfer request](https://techdocs.akamai.com/linode-api/reference/get-service-transfer) operation instead.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-entity-transfer" @@ -11693,6 +11797,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -11752,7 +11857,7 @@ }, "delete": { "deprecated": true, - "description": "__Deprecated__ Run the [Cancel a service transfer](https://techdocs.akamai.com/linode-api/reference/delete-service-transfer) operation instead.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`", + "description": "__Deprecated__ Run the [Cancel a service transfer](https://techdocs.akamai.com/linode-api/reference/delete-service-transfer) operation instead.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/delete-entity-transfer" @@ -11789,6 +11894,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -11889,7 +11995,7 @@ "/{apiVersion}/account/entity-transfers/{token}/accept": { "post": { "deprecated": true, - "description": "__Deprecated__ Run the [Accept a service transfer](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer) operation instead.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`", + "description": "__Deprecated__ Run the [Accept a service transfer](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer) operation instead.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-accept-entity-transfer" @@ -11926,6 +12032,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -12025,7 +12132,7 @@ }, "/{apiVersion}/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 permissions.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_events`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `events:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli events list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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 permissions.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_events`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `events:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli events list\n```\n\n[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-events" @@ -12039,6 +12146,9 @@ "description": "Specifies the `X-Filter` header JSON object's filtering and sort criteria.", "oneOf": [ { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -12050,7 +12160,6 @@ } }, { - "additionalProperties": false, "example": { "+or": [ { @@ -12065,6 +12174,9 @@ "+and": { "description": "All conditions need to be true.", "items": { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -12104,6 +12216,9 @@ "+or": { "description": "At least one condition needs to be true.", "items": { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -12202,6 +12317,7 @@ "message": "None", "percent_complete": null, "rate": null, + "read": false, "secondary_entity": { "id": "linode/debian13", "label": "linode1234", @@ -12224,9 +12340,10 @@ "data": { "items": { "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": "__Filterable__ The action that caused this event. New actions may be added in the future.", + "description": "__Filterable__, __Read-only__ The action that caused this event. New actions may be added in the future.", "enum": [ "account_agreement_eu_model", "account_promo_apply", @@ -12242,8 +12359,6 @@ "database_create", "database_delete", "database_update", - "database_failed", - "database_degraded", "database_create_failed", "database_update_failed", "database_backup_create", @@ -12372,6 +12487,11 @@ "placement_group_unassign", "placement_group_update", "profile_update", + "reserved_ip_assign", + "reserved_ip_create", + "reserved_ip_delete", + "reserved_ip_unassign", + "reserved_ip_update", "stackscript_create", "stackscript_delete", "stackscript_update", @@ -12415,6 +12535,7 @@ "vpc_update" ], "example": "ticket_create", + "readOnly": true, "type": "string", "x-akamai": { "labels": [ @@ -12425,9 +12546,10 @@ "x-linode-filterable": true }, "created": { - "description": "__Filterable__ When the system created this event.", + "description": "__Filterable__, __Read-only__ When the system created this event.", "example": "2018-01-01T00:01:01", "format": "date-time", + "readOnly": true, "type": "string", "x-akamai": { "labels": [ @@ -12439,7 +12561,7 @@ }, "details": { "additionalProperties": false, - "description": "__Beta__ Maintenance details for this event, if any.", + "description": "__Beta__, __Read-only__ Maintenance details for this event, if any.", "properties": { "complete_time": { "description": "__Filterable__ The time the maintenance completed. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", @@ -12454,7 +12576,7 @@ "x-linode-filterable": true }, "description": { - "description": "__Filterable__ Differentiates between scheduled and emergency maintenance.", + "description": "__Filterable__ Indicates either `scheduled` maintenance events or `emergency` maintenance.", "enum": [ "scheduled", "emergency" @@ -12519,21 +12641,34 @@ "x-linode-filterable": true } }, + "readOnly": true, "type": "object", "x-akamai": { "status": "BETA" } }, "duration": { - "description": "The number of seconds that it takes for the event to complete.", + "description": "__Read-only__ The number of seconds that it takes for the event to complete. Displayed as `null` for an event that doesn't have a duration.", "example": 300.56, + "nullable": true, + "readOnly": true, "type": "number", "x-linode-cli-display": 7 }, "entity": { "additionalProperties": false, - "description": "Detailed information about the entity that triggered this event.", + "description": "__Read-only__ Detailed information about the entity that triggered this event.", "properties": { + "cpc": { + "deprecated": true, + "description": "__Deprecated__ This field is deprecated.", + "example": null, + "nullable": true, + "type": "integer", + "x-akamai": { + "status": "DEPRECATED" + } + }, "id": { "description": "__Filterable__ The unique identifier assigned to the entity.\n\n> \ud83d\udcd8\n>\n> Consider these points when filtering by `id`:\n>\n> - The `disks` and `backups` entities use the `id` of their parent Linode when filtering for events.\n>\n> - The `account` and `profile` entities don't have an `id`. To filter these entities, use the `type` object instead.\n>\n> - The `tag` entity uses the tag's name as its `id`. Set this value to the tag's name to filter.", "example": 11111, @@ -12551,8 +12686,20 @@ "type": "string", "x-linode-cli-display": 5 }, + "node": { + "description": "The ID of the node referenced by the event. This field is only returned for events with an entity type of `lkecluster`.", + "example": "123456-03aaf8b30000", + "nullable": true, + "type": "string" + }, + "pool": { + "description": "The ID of the node pool referenced by the event. This field is only returned for events with an entity type of `lkecluster`.", + "example": 123456, + "nullable": true, + "type": "integer" + }, "type": { - "description": "__Filterable__ The type of entity that is being referenced by the event.", + "description": "__Filterable__, __Read-only__ The type of entity that is being referenced by the event. Values include `account`, `backups`, `community`, `database`, `disks`, `domain`, `entity_transfer`, `firewall`, `image`, `ipaddress`, `linode`, `lkecluster`, `longview`, `loadbalancer`, `managed_service`, `nodebalancer`, `oauth_client`, `placement_group`, `profile`, `stackscript`, `subnet`, `tag`, `ticket`, `token`, `user`, `user_ssh_key`, `volume`, and `vpc`. New entity types may be added in the future.", "enum": [ "account", "backups", @@ -12584,6 +12731,7 @@ "vpc" ], "example": "ticket", + "readOnly": true, "type": "string", "x-akamai": { "labels": [ @@ -12598,11 +12746,13 @@ "type": "string" } }, + "readOnly": true, "type": "object" }, "id": { - "description": "__Filterable__ The unique ID of this event.", + "description": "__Filterable__, __Read-only__ The unique ID of this event.", "example": 123, + "readOnly": true, "type": "integer", "x-akamai": { "labels": [ @@ -12620,20 +12770,31 @@ "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.", + "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": "The rate of completion of the event. Only some events return a `rate`, such as the `migration` and `resize` events.", + "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": { + "deprecated": true, + "description": "__Deprecated__ The operation that applied to this field has been decommissioned. It's always displayed as `false` in responses.", + "example": false, + "type": "boolean", + "x-akamai": { + "status": "DEPRECATED" + } + }, "secondary_entity": { "additionalProperties": false, - "description": "Detailed information about the event's secondary entity, if applicable.", + "description": "__Read-only__ Detailed information about the event's secondary entity, if applicable.", "properties": { "id": { "description": "The identifier for the secondary entity object.", @@ -12646,8 +12807,9 @@ "type": "string" }, "type": { - "description": "The type of secondary entity object that's being referenced by the event.", + "description": "__Read-only__ The type of secondary entity object that's being referenced by the event.", "example": "linode", + "readOnly": true, "type": "string" }, "url": { @@ -12656,24 +12818,27 @@ "type": "string" } }, + "readOnly": true, "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).", + "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": "The current status of this event.", + "description": "__Read-only__ The current status of this event, either `scheduled`, `notification`, `started`, `in_progress`, `completed`, `finished`, or `failed`.", "enum": [ + "scheduled", + "notification", + "started", + "in_progress", "completed", - "failed", "finished", - "in_progress", - "notification", - "scheduled", - "started" + "failed" ], + "readOnly": true, "type": "string", "x-linode-cli-color": { "completed": "green", @@ -12686,36 +12851,44 @@ "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.", + "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": "The name of the user whose action caused the event.", + "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" + "type": "object", + "x-akamai": { + "file-path": "schemas/event.yaml" + } }, "type": "array" }, "page": { - "description": "The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", + "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", "example": 1, + "readOnly": true, "type": "integer" }, "pages": { - "description": "The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", + "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", "example": 1, + "readOnly": true, "type": "integer" }, "results": { - "description": "The total number of results.", + "description": "__Read-only__ The total number of results.", "example": 1, + "readOnly": true, "type": "integer" } }, @@ -12742,6 +12915,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -12836,7 +13010,7 @@ }, "/{apiVersion}/account/events/{eventId}": { "get": { - "description": "Returns a single event object.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_event`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `events:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli events view 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns a single event object.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_event`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `events:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli events view 123\n```\n\n[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-event" @@ -12860,6 +13034,7 @@ "message": "None", "percent_complete": null, "rate": null, + "read": false, "secondary_entity": { "id": "linode/debian13", "label": "linode1234", @@ -12876,7 +13051,7 @@ "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.", + "description": "__Filterable__, __Read-only__ The action that caused this event. New actions may be added in the future.", "enum": [ "account_agreement_eu_model", "account_promo_apply", @@ -12892,8 +13067,6 @@ "database_create", "database_delete", "database_update", - "database_failed", - "database_degraded", "database_create_failed", "database_update_failed", "database_backup_create", @@ -12972,14 +13145,14 @@ "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_control_plane_acl_create", + "lke_control_plane_acl_update", + "lke_control_plane_acl_delete", "lke_node_create", "lke_node_delete", "lke_node_recycle", @@ -13022,6 +13195,11 @@ "placement_group_unassign", "placement_group_update", "profile_update", + "reserved_ip_assign", + "reserved_ip_create", + "reserved_ip_delete", + "reserved_ip_unassign", + "reserved_ip_update", "stackscript_create", "stackscript_delete", "stackscript_update", @@ -13067,60 +13245,108 @@ "example": "ticket_create", "readOnly": true, "type": "string", - "x-linode-cli-display": 3 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true }, "created": { - "description": "__Read-only__ When the system created this event.", + "description": "__Filterable__, __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 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 6, + "x-linode-filterable": true }, "details": { "additionalProperties": false, "description": "__Beta__, __Read-only__ Maintenance details for this event, if any.", "properties": { "complete_time": { - "description": "The time the maintenance completed. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "description": "__Filterable__ The time the maintenance completed. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", "example": "2020-07-09T00:01:01", "format": "date-time", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "description": { - "description": "Differentiates between scheduled and emergency maintenance.", + "description": "__Filterable__ Indicates either `scheduled` maintenance events or `emergency` maintenance.", "enum": [ "scheduled", "emergency" ], "example": "scheduled", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "maintenance_policy_set": { - "description": "The maintenance policy the user configures for this event.", + "description": "__Filterable__ The maintenance policy the user configures for this event.", "example": "linode/migrate", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "not_before": { - "description": "The scheduled start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "description": "__Filterable__ The scheduled start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", "example": "2020-07-09T00:01:01", "format": "date-time", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "source": { - "description": "The origin of the event. A `platform` source indicates that the event was initiated by Akamai. A `user` source indicates that the event was initiated by the user.", + "description": "__Filterable__ The origin of the event. A `platform` source indicates that the event was initiated by Akamai. A `user` source indicates that the event was initiated by the user.", "enum": [ "platform", "user" ], "example": "platform", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "start_time": { - "description": "The actual start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "description": "__Filterable__ The actual start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", "example": "2020-07-09T00:01:01", "format": "date-time", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true } }, "readOnly": true, @@ -13130,8 +13356,9 @@ } }, "duration": { - "description": "__Read-only__ The number of seconds that it takes for the event to complete.", + "description": "__Read-only__ The number of seconds that it takes for the event to complete. Displayed as `null` for an event that doesn't have a duration.", "example": 300.56, + "nullable": true, "readOnly": true, "type": "number", "x-linode-cli-display": 7 @@ -13140,10 +13367,26 @@ "additionalProperties": false, "description": "__Read-only__ Detailed information about the entity that triggered this event.", "properties": { + "cpc": { + "deprecated": true, + "description": "__Deprecated__ This field is deprecated.", + "example": null, + "nullable": true, + "type": "integer", + "x-akamai": { + "status": "DEPRECATED" + } + }, "id": { - "description": "The unique identifier assigned to the entity.", + "description": "__Filterable__ The unique identifier assigned to the entity.\n\n> \ud83d\udcd8\n>\n> Consider these points when filtering by `id`:\n>\n> - The `disks` and `backups` entities use the `id` of their parent Linode when filtering for events.\n>\n> - The `account` and `profile` entities don't have an `id`. To filter these entities, use the `type` object instead.\n>\n> - 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" + "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.", @@ -13151,8 +13394,20 @@ "type": "string", "x-linode-cli-display": 5 }, + "node": { + "description": "The ID of the node referenced by the event. This field is only returned for events with an entity type of `lkecluster`.", + "example": "123456-03aaf8b30000", + "nullable": true, + "type": "string" + }, + "pool": { + "description": "The ID of the node pool referenced by the event. This field is only returned for events with an entity type of `lkecluster`.", + "example": 123456, + "nullable": true, + "type": "integer" + }, "type": { - "description": "__Read-only__ The type of entity that is being referenced by the event.", + "description": "__Filterable__, __Read-only__ The type of entity that is being referenced by the event. Values include `account`, `backups`, `community`, `database`, `disks`, `domain`, `entity_transfer`, `firewall`, `image`, `ipaddress`, `linode`, `lkecluster`, `longview`, `loadbalancer`, `managed_service`, `nodebalancer`, `oauth_client`, `placement_group`, `profile`, `stackscript`, `subnet`, `tag`, `ticket`, `token`, `user`, `user_ssh_key`, `volume`, and `vpc`. New entity types may be added in the future.", "enum": [ "account", "backups", @@ -13185,7 +13440,13 @@ ], "example": "ticket", "readOnly": true, - "type": "string" + "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.", @@ -13197,11 +13458,17 @@ "type": "object" }, "id": { - "description": "__Read-only__ The unique ID of this event.", + "description": "__Filterable__, __Read-only__ The unique ID of this event.", "example": 123, "readOnly": true, "type": "integer", - "x-linode-cli-display": 1 + "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.", @@ -13224,6 +13491,15 @@ "readOnly": true, "type": "string" }, + "read": { + "deprecated": true, + "description": "__Deprecated__ The operation that applied to this field has been decommissioned. It's always displayed as `false` in responses.", + "example": false, + "type": "boolean", + "x-akamai": { + "status": "DEPRECATED" + } + }, "secondary_entity": { "additionalProperties": false, "description": "__Read-only__ Detailed information about the event's secondary entity, if applicable.", @@ -13260,20 +13536,24 @@ "type": "boolean" }, "status": { - "description": "__Read-only__ The current status of this event.", + "description": "__Read-only__ The current status of this event, either `scheduled`, `notification`, `started`, `in_progress`, `completed`, `finished`, or `failed`.", "enum": [ - "failed", - "finished", - "notification", "scheduled", - "started" + "notification", + "started", + "in_progress", + "completed", + "finished", + "failed" ], "readOnly": true, "type": "string", "x-linode-cli-color": { + "completed": "green", "default_": "white", "failed": "red", "finished": "green", + "in_progress": "yellow", "started": "yellow" }, "x-linode-cli-display": 8 @@ -13317,6 +13597,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -13422,7 +13703,7 @@ }, "/{apiVersion}/account/events/{eventId}/seen": { "post": { - "description": "Acknowledge an event by marking it as seen.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `mark_event_seen`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `events:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli events mark-seen 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Acknowledge an event by marking it as seen.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `mark_event_seen`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `events:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli events mark-seen 123\n```\n\n[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-event-seen" @@ -13459,6 +13740,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -13564,7 +13846,7 @@ }, "/{apiVersion}/account/invoices": { "get": { - "description": "Returns a paginated list of invoices against your account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_billing_invoices`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account invoices-list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns a paginated list of invoices against your account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_billing_invoices`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account invoices-list\n```\n\n[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-invoices" @@ -13578,6 +13860,9 @@ "description": "Specifies the `X-Filter` header JSON object's filtering and sort criteria.", "oneOf": [ { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -13589,7 +13874,6 @@ } }, { - "additionalProperties": false, "example": { "+or": [ { @@ -13604,6 +13888,9 @@ "+and": { "description": "All conditions need to be true.", "items": { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -13643,6 +13930,9 @@ "+or": { "description": "At least one condition needs to be true.", "items": { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -13904,6 +14194,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -13995,7 +14286,7 @@ }, "/{apiVersion}/account/invoices/{invoiceId}": { "get": { - "description": "Returns a single Invoice object.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_billing_invoice`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account invoice-view 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns a single Invoice object.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_billing_invoice`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account invoice-view 123\n```\n\n[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-invoice" @@ -14147,6 +14438,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -14252,7 +14544,7 @@ }, "/{apiVersion}/account/invoices/{invoiceId}/items": { "get": { - "description": "Returns a paginated list of Invoice items.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_invoice_items`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account invoice-items 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns a paginated list of Invoice items.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_invoice_items`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account invoice-items 123\n```\n\n[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-invoice-items" @@ -14447,6 +14739,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -14552,7 +14845,7 @@ }, "/{apiVersion}/account/logins": { "get": { - "description": "Returns a collection of successful logins for all users on the account during the last 90 days.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_profile_logins`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account logins-list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns a collection of successful logins for all users on the account during the last 90 days.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_profile_logins`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account logins-list\n```\n\n[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-account-logins" @@ -14588,7 +14881,6 @@ "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 @@ -14616,7 +14908,7 @@ "x-linode-cli-display": 6 }, "status": { - "description": "__Read-only__ Whether the login attempt succeeded or failed.", + "description": "__Read-only__ Whether the login attempt was `successful` or if it `failed`.", "enum": [ "successful", "failed" @@ -14683,6 +14975,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -14773,7 +15066,7 @@ }, "/{apiVersion}/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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_account_login`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account login-view 1234\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_account_login`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account login-view 1234\n```\n\n[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-account-login" @@ -14798,7 +15091,6 @@ "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 @@ -14826,7 +15118,7 @@ "x-linode-cli-display": 6 }, "status": { - "description": "__Read-only__ Whether the login attempt succeeded or failed.", + "description": "__Read-only__ Whether the login attempt was `successful` or if it `failed`.", "enum": [ "successful", "failed" @@ -14867,6 +15159,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -14971,7 +15264,7 @@ }, "/{apiVersion}/account/maintenance": { "get": { - "description": "Returns maintenance information for any entity your user has permissions to view. If a maintenance object has been canceled, it's not returned.\n\n> \ud83d\udcd8\n>\n> Currently, only Linodes are included as entities for viewing.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_maintenances`\n\n\n**CLI**\n\n```shell\nlinode-cli account maintenance-list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns maintenance information for any entity your user has permissions to view. If a maintenance object has been canceled, it's not returned.\n\n> \ud83d\udcd8\n>\n> Currently, only Linodes are included as entities for viewing.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_maintenances`\n\n\n**CLI**\n\n```shell\nlinode-cli account maintenance-list\n```\n\n[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" @@ -15027,7 +15320,7 @@ "x-linode-filterable": true }, "description": { - "description": "Differentiates between scheduled and emergency maintenance.", + "description": "Indicates either `scheduled` maintenance events or `emergency` maintenance.", "enum": [ "scheduled", "emergency" @@ -15131,7 +15424,7 @@ "x-linode-filterable": true }, "type": { - "description": "__Filterable__ The type of maintenance.", + "description": "__Filterable__ The type of maintenance, either `reboot`, `cold_migration`, `live_migration`, `migrate`, or `power_off_on`.", "enum": [ "reboot", "cold_migration", @@ -15210,6 +15503,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -15299,7 +15593,7 @@ }, "/{apiVersion}/account/notifications": { "get": { - "description": "Returns notifications that represent important, often time-sensitive details about your account. You can't interact directly with notifications, and a notification disappears when you've resolved its cause. For example, if you have an important ticket open, you can respond to that ticket to dismiss its notification.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_notifications`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account notifications-list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns notifications that represent important, often time-sensitive details about your account. You can't interact directly with notifications, and a notification disappears when you've resolved its cause. For example, if you have an important ticket open, you can respond to that ticket to dismiss its notification.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_notifications`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account notifications-list\n```\n\n[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-notifications" @@ -15335,6 +15629,7 @@ "additionalProperties": false, "properties": { "data": { + "description": "A list of objects returned for a response.", "items": { "additionalProperties": false, "description": "An important, often time-sensitive item related to your account.", @@ -15406,7 +15701,7 @@ "x-linode-cli-display": 2 }, "severity": { - "description": "The severity of this notification. This field determines how prominently the notification is displayed and the color of the display text.", + "description": "The severity of this notification, either `minor`, `major`, or `critical`. This field determines how prominently the notification is displayed and the color of the display text.", "enum": [ "minor", "major", @@ -15422,7 +15717,7 @@ "x-linode-cli-display": 3 }, "type": { - "description": "__Filterable__ The type of notification.\n\n> \ud83d\udcd8\n>\n> A `security_reboot_maintenance_scheduled` event is a global notice that a Linode needs to be rebooted for QEMU upgrade maintenance. Have a look at [this workflow](https://techdocs.akamai.com/linode-api/reference/reboot-your-linodes-for-qemu-maintenance) for guidance on reboooting your Linodes for this maintenance.", + "description": "__Filterable__ The type of notification, either `migration_scheduled`, `migration_imminent`, `migration_pending`, `reboot_scheduled`, `outage`, `payment_due`, `ticket_important`, `ticket_abuse`, `notice`, `maintenance`, `maintenance_scheduled`, `promotion`, `security_reboot_maintenance_scheduled`, or `tax_id_verifying`.\n\n> \ud83d\udcd8\n>\n> A `security_reboot_maintenance_scheduled` event is a global notice that a Linode needs to be rebooted for QEMU upgrade maintenance. Have a look at [this workflow](https://techdocs.akamai.com/linode-api/reference/reboot-your-linodes-for-qemu-maintenance) for guidance on reboooting your Linodes for this maintenance.", "enum": [ "migration_scheduled", "migration_imminent", @@ -15522,6 +15817,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -15613,7 +15909,7 @@ }, "/{apiVersion}/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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `create_oauth_client`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account client-create \\\n --label Test_Client_1 \\\n --redirect_uri https://example.org/callback\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `create_oauth_client`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account client-create \\\n --label Test_Client_1 \\\n --redirect_uri https://example.org/callback\n```\n\n[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-client" @@ -15681,7 +15977,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The status of this application. `active` by default.", + "description": "__Read-only__ The status of this application, either `active` (default), `disabled`, or `suspended`.", "enum": [ "active", "disabled", @@ -15715,6 +16011,7 @@ "label", "redirect_uri" ], + "type": "object", "x-akamai": { "file-path": "schemas/added-post-client.yaml" } @@ -15787,7 +16084,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The status of this application. `active` by default.", + "description": "__Read-only__ The status of this application, either `active` (default), `disabled`, or `suspended`.", "enum": [ "active", "disabled", @@ -15834,6 +16131,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -15897,7 +16195,7 @@ ] }, "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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_oauth_clients`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account clients-list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_oauth_clients`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account clients-list\n```\n\n[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-clients" @@ -16013,7 +16311,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The status of this application. `active` by default.", + "description": "__Read-only__ The status of this application, either `active` (default), `disabled`, or `suspended`.", "enum": [ "active", "disabled", @@ -16086,6 +16384,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -16177,7 +16476,7 @@ }, "/{apiVersion}/account/oauth-clients/{clientId}": { "get": { - "description": "Returns information about a single OAuth client.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_oauth_client`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account client-view \\\n edc6790ea9db4d224c5c\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns information about a single OAuth client.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_oauth_client`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account client-view \\\n edc6790ea9db4d224c5c\n```\n\n[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-client" @@ -16248,7 +16547,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The status of this application. `active` by default.", + "description": "__Read-only__ The status of this application, either `active` (default), `disabled`, or `suspended`.", "enum": [ "active", "disabled", @@ -16295,6 +16594,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -16358,7 +16658,7 @@ ] }, "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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `update_oauth_client`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account client-update \\\n edc6790ea9db4d224c5c \\\n --label Test_Client_1\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `update_oauth_client`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account client-update \\\n edc6790ea9db4d224c5c \\\n --label Test_Client_1\n```\n\n[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-client" @@ -16424,7 +16724,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The status of this application. `active` by default.", + "description": "__Read-only__ The status of this application, either `active` (default), `disabled`, or `suspended`.", "enum": [ "active", "disabled", @@ -16521,7 +16821,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The status of this application. `active` by default.", + "description": "__Read-only__ The status of this application, either `active` (default), `disabled`, or `suspended`.", "enum": [ "active", "disabled", @@ -16568,6 +16868,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -16631,7 +16932,7 @@ ] }, "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).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `delete_oauth_client`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account client-delete \\\n edc6790ea9db4d224c5c\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `delete_oauth_client`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account client-delete \\\n edc6790ea9db4d224c5c\n```\n\n[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/delete-client" @@ -16668,6 +16969,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -16772,7 +17074,7 @@ }, "/{apiVersion}/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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `reset_oauth_client_secret`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account client-reset-secret \\\n edc6790ea9db4d224c5c\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `reset_oauth_client_secret`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account client-reset-secret \\\n edc6790ea9db4d224c5c\n```\n\n[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-reset-client-secret" @@ -16782,6 +17084,15 @@ "200": { "content": { "application/json": { + "example": { + "id": "2737bf16b39ab5d7b4a1", + "label": "Client", + "public": false, + "redirect_uri": "https://example.org/oauth/callback", + "secret": "", + "status": "active", + "thumbnail_url": "https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail" + }, "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.", @@ -16834,7 +17145,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The status of this application. `active` by default.", + "description": "__Read-only__ The status of this application, either `active` (default), `disabled`, or `suspended`.", "enum": [ "active", "disabled", @@ -16862,9 +17173,6 @@ "x-akamai": { "file-path": "schemas/oauth-client.yaml" } - }, - "x-example": { - "x-ref": "../examples/post-reset-client-secret-200.json" } } }, @@ -16884,6 +17192,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -16988,7 +17297,7 @@ }, "/{apiVersion}/account/oauth-clients/{clientId}/thumbnail": { "get": { - "description": "Returns the PNG thumbnail for this OAuth client. This is a publicly viewable operation, and you can access it without authentication.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `Internet facing, no permission`", + "description": "Returns the PNG thumbnail for this OAuth client. This is a publicly viewable operation, and you can access it without authentication.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. This operation is internet-facing. No permissions are required.", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-client-thumbnail" @@ -17020,6 +17329,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -17058,15 +17368,12 @@ "x-linode-cli-skip": true, "x-linode-iam": [ { - "permissions": [ - "Internet facing", - "no permission" - ] + "permissions": [] } ] }, "put": { - "description": "Upload a thumbnail for a client you own. You need to upload a PNG image file that the Linode API returns when the thumbnail is retrieved. This image is publicly viewable.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `update_oauth_client_thumbnail`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`", + "description": "Upload a thumbnail for a client you own. You need to upload a PNG image file that the Linode API returns when the thumbnail is retrieved. This image is publicly viewable.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `update_oauth_client_thumbnail`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/put-client-thumbnail" @@ -17114,6 +17421,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -17210,7 +17518,7 @@ }, "/{apiVersion}/account/payment-methods": { "post": { - "description": "Adds a Payment Method to your Account with the option to set it as the default method.\n\n- Adding a default Payment Method removes the default status from any other Payment Method.\n\n- An Account can have up to 6 active Payment Methods.\n\n- Up to 60 Payment Methods can be added each day.\n\n- 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.\n\n- A `payment_method_add` event is generated when a payment is successfully submitted.\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature, this operation isn't available for child account users.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `create_payment_method`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli payment-methods add \\\n --type credit_card \\\n --is_default true \\\n --data.card_number 4111111111111111 \\\n --data.expiry_month 11 \\\n --data.expiry_year 2020 \\\n --data.cvv 111\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Adds a Payment Method to your Account with the option to set it as the default method.\n\n- Adding a default Payment Method removes the default status from any other Payment Method.\n\n- An Account can have up to 6 active Payment Methods.\n\n- Up to 60 Payment Methods can be added each day.\n\n- 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.\n\n- A `payment_method_add` event is generated when a payment is successfully submitted.\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature, this operation isn't available for child account users.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `create_payment_method`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli payment-methods add \\\n --type credit_card \\\n --is_default true \\\n --data.card_number 4111111111111111 \\\n --data.expiry_month 11 \\\n --data.expiry_year 2020 \\\n --data.cvv 111\n```\n\n[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-payment-method" @@ -17246,7 +17554,7 @@ "type": "string" }, "cvv": { - "description": "CVV (Card Verification Value) of the credit card, typically found on the back of the card.", + "description": "The card verification value (CVV) of the credit card, typically found on the back of the card.", "example": "123", "format": "digits", "maxLength": 4, @@ -17254,17 +17562,17 @@ "type": "string" }, "expiry_month": { - "description": "A value from 1-12 representing the expiration month of your credit card.\n\n - 1 = January\n - 2 = February\n - 3 = March\n - Etc.", + "description": "A value from 1-12 representing the expiration month of your credit card, for example `1` indicates January, `2` indicates February, and `5` indicates May.", "example": 12, "maximum": 12, "minimum": 1, "type": "integer" }, "expiry_year": { - "description": "A four-digit integer representing the expiration year of your credit card.\n\nThe 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.", + "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, + "maximum": 2050, + "minimum": 2026, "type": "integer" } }, @@ -17339,6 +17647,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -17403,7 +17712,7 @@ ] }, "get": { - "description": "Returns a paginated list of Payment Methods for this Account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_payment_methods`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli payment-methods list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns a paginated list of Payment Methods for this Account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_payment_methods`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli payment-methods list\n```\n\n[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-payment-methods" @@ -17589,7 +17898,7 @@ "x-linode-cli-display": 3 }, "type": { - "description": "The type of Payment Method.", + "description": "The type of Payment Method, either `credit_card`, `google_pay`, or `paypal`.", "enum": [ "credit_card", "google_pay", @@ -17649,6 +17958,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -17743,7 +18053,7 @@ }, "/{apiVersion}/account/payment-methods/{paymentMethodId}": { "get": { - "description": "View the details of the specified Payment Method.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_payment_method`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli payment-methods view 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "View the details of the specified Payment Method.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_payment_method`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli payment-methods view 123\n```\n\n[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-payment-method" @@ -17883,7 +18193,7 @@ "x-linode-cli-display": 3 }, "type": { - "description": "The type of Payment Method.", + "description": "The type of Payment Method, either `credit_card`, `google_pay`, or `paypal`.", "enum": [ "credit_card", "google_pay", @@ -17917,6 +18227,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -17981,7 +18292,7 @@ ] }, "delete": { - "description": "Deactivate the specified Payment Method.\n\nThe 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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `delete_payment_method`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli payment-methods delete 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Deactivate the specified Payment Method.\n\nThe 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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `delete_payment_method`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli payment-methods delete 123\n```\n\n[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/delete-payment-method" @@ -18018,6 +18329,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -18126,7 +18438,7 @@ }, "/{apiVersion}/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.\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature, this operation isn't available for child account users.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `set_default_payment_method`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli payment-methods default 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Make the specified Payment Method the default method for automatically processing payments. Removes the default status from any other Payment Method.\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature, this operation isn't available for child account users.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `set_default_payment_method`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli payment-methods default 123\n```\n\n[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-make-payment-method-default" @@ -18163,6 +18475,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -18268,7 +18581,7 @@ }, "/{apiVersion}/account/payments": { "post": { - "description": "Makes a payment to your account.\n\n- The requested amount is charged to the default payment method if no `payment_method_id` is specified.\n\n- A `payment_submitted` event is generated when a payment is successfully submitted.\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature, this operation isn't available for child account users.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `make_billing_payment`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account payment-create \\\n --usd 120.50 \\\n --payment_method_id 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Makes a payment to your account.\n\n- The requested amount is charged to the default payment method if no `payment_method_id` is specified.\n\n- A `payment_submitted` event is generated when a payment is successfully submitted.\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature, this operation isn't available for child account users.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `make_billing_payment`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account payment-create \\\n --usd 120.50 \\\n --payment_method_id 123\n```\n\n[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-payment" @@ -18362,42 +18675,6 @@ }, "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.\n\nA warnings array is included with the standard 200 response body." - }, "default": { "content": { "application/json": { @@ -18412,6 +18689,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -18476,7 +18754,7 @@ ] }, "get": { - "description": "Returns a paginated list of payments made on this Account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_billing_payments`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account payments-list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns a paginated list of payments made on this Account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_billing_payments`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account payments-list\n```\n\n[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-payments" @@ -18490,6 +18768,9 @@ "description": "Specifies the `X-Filter` header JSON object's filtering and sort criteria.", "oneOf": [ { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -18501,7 +18782,6 @@ } }, { - "additionalProperties": false, "example": { "+or": [ { @@ -18516,6 +18796,9 @@ "+and": { "description": "All conditions need to be true.", "items": { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -18555,6 +18838,9 @@ "+or": { "description": "At least one condition needs to be true.", "items": { + "additionalProperties": { + "type": "string" + }, "description": "Specify the name of the data field and the accompanying value.", "example": { "region": "us-east" @@ -18742,6 +19028,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -18834,7 +19121,7 @@ "/{apiVersion}/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/).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`", + "description": "__Deprecated__ This operation is disabled and no longer accessible. PayPal can be designated as a payment method for automated payments using Cloud Manager. See [Manage Payment Methods](https://www.linode.com/docs/products/platform/billing/guides/payment-methods/).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-pay-pal-payment" @@ -18914,42 +19201,6 @@ }, "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.\n\nA warnings array is included with the standard 200 response body." - }, "default": { "content": { "application/json": { @@ -18964,6 +19215,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -19051,7 +19303,7 @@ "/{apiVersion}/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/).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`", + "description": "__Deprecated__ This operation is disabled and no longer accessible. PayPal can be designated as a payment method for automated payments using Cloud Manager. See [Manage Payment Methods](https://www.linode.com/docs/products/platform/billing/guides/payment-methods/).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`", "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" @@ -19109,31 +19361,39 @@ }, "description": "PayPal Payment executed." }, - "202": { + "default": { "content": { "application/json": { + "example": { + "errors": [ + { + "reason": "Invalid JSON" + } + ] + }, "schema": { "additionalProperties": false, "properties": { - "warnings": { + "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, - "description": "An object for describing a single warning associated with a response.", + "description": "An object for describing a single error that occurred during the processing of a request.", "properties": { - "details": { - "description": "Specific information related to the warning.", - "example": "Linode 123 could not be rebooted.", + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", "type": "string" }, - "title": { - "description": "The general warning message.", - "example": "Unable to reboot Linode.", + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", "type": "string" } }, "type": "object", "x-akamai": { - "file-path": "schemas/warning-object.yaml" + "file-path": "schemas/error-object.yaml" } }, "type": "array" @@ -19143,206 +19403,127 @@ } } }, - "description": "Accepted with warning.\n\nA warnings array is included with the standard 200 response body." + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] }, - "299": { + { + "oauth": [ + "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": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "example": "v4", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/payment-paypal-execute.yaml", + "path-info": "/{apiVersion}/account/payments/paypal/execute" + }, + "x-linode-cli-command": "account" + }, + "/{apiVersion}/account/payments/{paymentId}": { + "get": { + "description": "Returns information about a specific Payment.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_billing_payment`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account payment-view 123\n```\n\n[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-payment" + }, + "operationId": "get-payment", + "responses": { + "200": { "content": { "application/json": { + "example": { + "date": "2018-01-15T00:01:01", + "id": 123, + "usd": "120.50" + }, "schema": { "additionalProperties": false, + "description": "Payment object response.", "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" - } + "date": { + "description": "__Filterable__, __Read-only__ When the payment was made.", + "example": "2018-01-15T00:01:01", + "format": "date-time", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] }, - "type": "array" + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "id": { + "description": "__Read-only__ The unique ID of the payment.", + "example": 123, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 1 + }, + "usd": { + "description": "__Filterable__, __Read-only__ The amount, in US dollars, of the payment.", + "example": "120.50", + "readOnly": true, + "type": "integer", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true } }, - "type": "object" + "type": "object", + "x-akamai": { + "file-path": "schemas/payment.yaml" + } } } }, - "description": "Request successful. This operation is deprecated and may be removed in a future release.\n\nA warnings array is included with the standard 200 response body." - }, - "default": { - "content": { - "application/json": { - "example": { - "errors": [ - { - "reason": "Invalid JSON" - } - ] - }, - "schema": { - "additionalProperties": false, - "properties": { - "errors": { - "items": { - "additionalProperties": false, - "description": "An object for describing a single error that occurred during the processing of a request.", - "properties": { - "field": { - "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", - "example": "fieldname", - "type": "string" - }, - "reason": { - "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", - "example": "fieldname must be a valid value", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/error-object.yaml" - } - }, - "type": "array" - } - }, - "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": "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": [ - { - "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", - "example": "{{apiVersion}}", - "in": "path", - "name": "apiVersion", - "required": true, - "schema": { - "enum": [ - "v4", - "v4beta" - ], - "example": "v4", - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/api-version-path.yaml" - } - } - ], - "x-akamai": { - "file-path": "paths/payment-paypal-execute.yaml", - "path-info": "/{apiVersion}/account/payments/paypal/execute" - }, - "x-linode-cli-command": "account" - }, - "/{apiVersion}/account/payments/{paymentId}": { - "get": { - "description": "Returns information about a specific Payment.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_billing_payment`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account payment-view 123\n```\n\n[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-payment" - }, - "operationId": "get-payment", - "responses": { - "200": { - "content": { - "application/json": { - "example": { - "date": "2018-01-15T00:01:01", - "id": 123, - "usd": "120.50" - }, - "schema": { - "additionalProperties": false, - "description": "Payment object response.", - "properties": { - "date": { - "description": "__Filterable__, __Read-only__ When the payment was made.", - "example": "2018-01-15T00: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 unique ID of the payment.", - "example": 123, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 - }, - "usd": { - "description": "__Filterable__, __Read-only__ The amount, in US dollars, of the payment.", - "example": "120.50", - "readOnly": true, - "type": "integer", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 3, - "x-linode-filterable": true - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/payment.yaml" - } - } - } - }, - "description": "A Payment object." + "description": "A Payment object." }, "default": { "content": { @@ -19358,6 +19539,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -19463,7 +19645,7 @@ }, "/{apiVersion}/account/promo-codes": { "post": { - "description": "Adds an expiring Promo Credit to your account. The following restrictions apply:\n\n- Your account needs to be less than 90 days old.\n\n- You can't already have a Promo Credit on your account.\n\n- The `promo_code` needs to be valid and unexpired.\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature, this operation isn't available for child account users.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `create_promo_code`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account \\\n promo-add \\\n --promo-code abcdefABCDEF1234567890\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Adds an expiring Promo Credit to your account. The following restrictions apply:\n\n- Your account needs to be less than 90 days old.\n\n- You can't already have a Promo Credit on your account.\n\n- The `promo_code` needs to be valid and unexpired.\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature, this operation isn't available for child account users.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `create_promo_code`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account \\\n promo-add \\\n --promo-code abcdefABCDEF1234567890\n```\n\n[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-promo-credit" @@ -19544,7 +19726,7 @@ "type": "string" }, "service_type": { - "description": "The service to which this promotion applies.", + "description": "The service to which this promotion applies, either a specific service or `all` for any service. Specific services include `linode`, `longview`, `nodebalancer`, `objectstorage`, `blockstorage`, `db_mysql`, `ip_v4`, `linode_disk`, `linode_memory`, `managed`, `placement_group`, and `transfer_tx`.", "enum": [ "all", "backup", @@ -19601,6 +19783,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -19692,7 +19875,7 @@ }, "/{apiVersion}/account/service-transfers": { "post": { - "description": "Creates a transfer request for one or more services you specify. A request can contain any of the eligible service types and any number of each service type. Currently, you can only transfer your Linode instances.\n\n**Create the service transfer**\n\nDNS records assigned to requested services _aren't_ transferred or updated. Ensure that you update any applicable DNS records or communicate them to the recipient before transfer.\n\nWhen creating a service transfer, consider these points:\n\n- Your account can't have a past due balance or other limitations. It also can't have any active terms of service violations.\n\n- On your account, you need to have access to any transferred service.\n\n- The service can't be assigned to another pending service transfer request or a request that's been [accepted](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer), but is incomplete.\n\n- Linodes _can't_:\n\n - be assigned to a NodeBalancer, Firewall, VLAN, or Managed Service.\n\n - have any attached Block Storage volumes.\n\n - have any shared IP addresses.\n\n - have any assigned `/32`, `/56`, `/64`, or `/116` IPv6 ranges.\n\n - have a [resource lock](https://techdocs.akamai.com/linode-api/reference/post-resource-lock) set. You need to unlock the Linode by deleting the lock.\n\nAfter you create a service transfer request, the email address assigned to your account will receive a message. The message also contains a transfer token you need to store, and instructions to complete the transfer.\n\n> \ud83d\udcd8\n>\n> A requested transfer expires 24 hours after creation.\n\n**Accept a service transfer**\n\nYou [accept](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer) a transfer using a separate operation. Once you do, the requested services are moved to the target account. Your Akamai Cloud services aren't interrupted due to a transfer. Backups for Linode instances are transferred as well.\n\nA transfer can take up to three hours to complete once accepted. Once the transfer completes, billing for transferred services ends for your account, and begins for the account that accepted the request.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `create_service_transfer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli service-transfers \\\n create \\\n --entities.linodes 111 \\\n --entities.linodes 222\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Creates a transfer request for one or more services you specify. A request can contain any of the eligible service types and any number of each service type. Currently, you can only transfer your Linode instances.\n\n**Create the service transfer**\n\nDNS records assigned to requested services _aren't_ transferred or updated. Ensure that you update any applicable DNS records or communicate them to the recipient before transfer.\n\nWhen creating a service transfer, consider these points:\n\n- Your account can't have a past due balance or other limitations. It also can't have any active terms of service violations.\n\n- On your account, you need to have access to any transferred service.\n\n- The service can't be assigned to another pending service transfer request or a request that's been [accepted](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer), but is incomplete.\n\n- Linodes _can't_:\n\n - be assigned to a NodeBalancer, Firewall, VLAN, or Managed Service.\n\n - have a Reserved IPv4 address assigned to them. To transfer a Linode with a reserved IP, you must first convert the address to an ephemeral IP or unassign it.\n\n - have any attached Block Storage volumes.\n\n - have any shared IP addresses.\n\n - have any assigned `/32`, `/56`, `/64`, or `/116` IPv6 ranges.\n\n - have a [resource lock](https://techdocs.akamai.com/linode-api/reference/post-resource-lock) set. You need to unlock the Linode by deleting the lock.\n\nAfter you create a service transfer request, the email address assigned to your account will receive a message. The message also contains a transfer token you need to store, and instructions to complete the transfer.\n\n> \ud83d\udcd8\n>\n> A requested transfer expires 24 hours after creation.\n\n**Accept a service transfer**\n\nYou [accept](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer) a transfer using a separate operation. Once you do, the requested services are moved to the target account. Your Akamai Cloud services aren't interrupted due to a transfer. Backups for Linode instances are transferred as well.\n\nA transfer can take up to three hours to complete once accepted. Once the transfer completes, billing for transferred services ends for your account, and begins for the account that accepted the request.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `create_service_transfer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli service-transfers \\\n create \\\n --entities.linodes 111 \\\n --entities.linodes 222\n```\n\n[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-service-transfer" @@ -19874,6 +20057,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -19938,7 +20122,7 @@ ] }, "get": { - "description": "Returns all [requested](https://techdocs.akamai.com/linode-api/reference/post-service-transfer) and [accepted](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer) service transfers for this account, regardless of the user who requested or accepted the transfer.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_service_transfers`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli service-transfers \\\n list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns all [requested](https://techdocs.akamai.com/linode-api/reference/post-service-transfer) and [accepted](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer) service transfers for this account, regardless of the user who requested or accepted the transfer.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_service_transfers`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli service-transfers \\\n list\n```\n\n[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-service-transfers" @@ -20007,6 +20191,7 @@ "additionalProperties": false, "properties": { "data": { + "description": "A list of objects returned for a response.", "items": { "additionalProperties": false, "description": "An object representing a Service Transfer.", @@ -20147,6 +20332,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -20241,7 +20427,7 @@ }, "/{apiVersion}/account/service-transfers/{token}": { "get": { - "description": "Returns details for the service transfer for the provided `token`.\n\n- After a transfer has been [accepted](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer), it can only be viewed by users on the accounts that [requested](https://techdocs.akamai.com/linode-api/reference/post-service-transfer) and [accepted](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer) the transfer and have the corresponding permissions.\n\n- If [canceled](https://techdocs.akamai.com/linode-api/reference/delete-service-transfer) or expired, only users of the account that requested the transfer can view it and have the required permission.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_service_transfer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli service-transfers \\\n view 123E4567-E89B-12D3-A456-426614174000\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns details for the service transfer for the provided `token`.\n\n- After a transfer has been [accepted](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer), it can only be viewed by users on the accounts that [requested](https://techdocs.akamai.com/linode-api/reference/post-service-transfer) and [accepted](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer) the transfer and have the corresponding permissions.\n\n- If [canceled](https://techdocs.akamai.com/linode-api/reference/delete-service-transfer) or expired, only users of the account that requested the transfer can view it and have the required permission.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_service_transfer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli service-transfers \\\n view 123E4567-E89B-12D3-A456-426614174000\n```\n\n[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-service-transfer" @@ -20379,6 +20565,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -20443,7 +20630,7 @@ ] }, "delete": { - "description": "Cancels the service transfer for the provided `token`.\n\nThese points apply to canceling a service transfer:\n\n- An cancellation notification is sent to the email address that's assigned to the account that requested the transfer.\n\n- Once canceled, the transfer can't be accepted or acted on in any way. If you cancel by mistake, you need to [create](https://techdocs.akamai.com/linode-api/reference/post-service-transfer) a new service transfer.\n\n- You can't cancel a service transfer if it's expired or it's been [accepted](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `cancel_service_transfer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli service-transfers \\\n cancel 123E4567-E89B-12D3-A456-426614174000\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Cancels the service transfer for the provided `token`.\n\nThese points apply to canceling a service transfer:\n\n- An cancellation notification is sent to the email address that's assigned to the account that requested the transfer.\n\n- Once canceled, the transfer can't be accepted or acted on in any way. If you cancel by mistake, you need to [create](https://techdocs.akamai.com/linode-api/reference/post-service-transfer) a new service transfer.\n\n- You can't cancel a service transfer if it's expired or it's been [accepted](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `cancel_service_transfer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli service-transfers \\\n cancel 123E4567-E89B-12D3-A456-426614174000\n```\n\n[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/delete-service-transfer" @@ -20480,6 +20667,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -20586,7 +20774,7 @@ }, "/{apiVersion}/account/service-transfers/{token}/accept": { "post": { - "description": "After you [request a service transfer](https://techdocs.akamai.com/linode-api/reference/post-service-transfer) to another account, use this operation along with the `token` from the transfer request email, to accept it for the target account. Currently, you can only transfer your Linode instances.\n\nAfter you accept a transfer, the email address assigned to your account will receive a message. The same message is sent to the email address assigned to the account that requested the transfer. Once the transfer completes, billing for transferred services ends for the account that made the request, and begins for your account.\n\nThere are several conditions that need to be met to accept a transfer request:\n\n- Only transfers with a `pending` status can be accepted.\n\n- To accept a transfer, your account needs to have a registered payment method, and it can't have a past due balance or other limitations. It also can't have any active terms of service violations.\n\n- Any transferred service needs to be owned by the account that requested the transfer.\n\n- Linodes _can't_:\n\n - be assigned to a NodeBalancer, Firewall, VLAN, or Managed Service.\n\n - have any attached Block Storage volumes.\n\n - have any shared IP addresses.\n\n - have any assigned /56, /64, or /116 IPv6 ranges.\n\n - have a [resource lock](https://techdocs.akamai.com/linode-api/reference/post-resource-lock) set. You need to unlock the Linode by deleting the lock.\n\n> \ud83d\udcd8\n>\n> A requested transfer expires 24 hours after creation. You need to meet all of these conditions before this expiration to allow the transfer. Otherwise, you need to [request a service transfer](https://techdocs.akamai.com/linode-api/reference/post-service-transfer) again.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `accept_service_transfer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli service-transfers \\\n accept 123E4567-E89B-12D3-A456-426614174000\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "After you [request a service transfer](https://techdocs.akamai.com/linode-api/reference/post-service-transfer) to another account, use this operation along with the `token` from the transfer request email, to accept it for the target account. Currently, you can only transfer your Linode instances.\n\nAfter you accept a transfer, the email address assigned to your account will receive a message. The same message is sent to the email address assigned to the account that requested the transfer. Once the transfer completes, billing for transferred services ends for the account that made the request, and begins for your account.\n\nThere are several conditions that need to be met to accept a transfer request:\n\n- Only transfers with a `pending` status can be accepted.\n\n- To accept a transfer, your account needs to have a registered payment method, and it can't have a past due balance or other limitations. It also can't have any active terms of service violations.\n\n- Any transferred service needs to be owned by the account that requested the transfer.\n\n- Linodes _can't_:\n\n - be assigned to a NodeBalancer, Firewall, VLAN, or Managed Service.\n\n - have a Reserved IPv4 address assigned to them. The initiating account must convert the address to an ephemeral IP or unassign it before the transfer can be completed.\n\n - have any attached Block Storage volumes.\n\n - have any shared IP addresses.\n\n - have any assigned /56, /64, or /116 IPv6 ranges.\n\n - have a [resource lock](https://techdocs.akamai.com/linode-api/reference/post-resource-lock) set. You need to unlock the Linode by deleting the lock.\n\n> \ud83d\udcd8\n>\n> A requested transfer expires 24 hours after creation. You need to meet all of these conditions before this expiration to allow the transfer. Otherwise, you need to [request a service transfer](https://techdocs.akamai.com/linode-api/reference/post-service-transfer) again.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `accept_service_transfer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli service-transfers \\\n accept 123E4567-E89B-12D3-A456-426614174000\n```\n\n[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-accept-service-transfer" @@ -20623,6 +20811,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -20729,7 +20918,7 @@ }, "/{apiVersion}/account/settings": { "get": { - "description": "Returns information related to your Account settings: Managed service subscription, interface settings for new Linodes, Longview subscription, and Network Helper.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_account_settings`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account settings\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns information related to your Account settings: Managed service subscription, interface settings for new Linodes, Longview subscription, and Network Helper.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_account_settings`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account settings\n```\n\n[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-account-settings" @@ -20802,7 +20991,7 @@ }, "object_storage": { "default": "disabled", - "description": "__Read-only__ A string describing the status of this account's Object Storage service enrollment.", + "description": "__Read-only__ The status of this account's Object Storage service enrollment, either `active`, `disabled`, `suspended`. If the status is `suspended`, contact Support for more information.", "enum": [ "disabled", "suspended", @@ -20837,6 +21026,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -20901,7 +21091,7 @@ ] }, "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).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `update_account_settings`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account settings-update \\\n --network_helper false\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `update_account_settings`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account settings-update \\\n --network_helper false\n```\n\n[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-account-settings" @@ -20970,7 +21160,7 @@ }, "object_storage": { "default": "disabled", - "description": "__Read-only__ A string describing the status of this account's Object Storage service enrollment.", + "description": "__Read-only__ The status of this account's Object Storage service enrollment, either `active`, `disabled`, `suspended`. If the status is `suspended`, contact Support for more information.", "enum": [ "disabled", "suspended", @@ -21058,7 +21248,7 @@ }, "object_storage": { "default": "disabled", - "description": "__Read-only__ A string describing the status of this account's Object Storage service enrollment.", + "description": "__Read-only__ The status of this account's Object Storage service enrollment, either `active`, `disabled`, `suspended`. If the status is `suspended`, contact Support for more information.", "enum": [ "disabled", "suspended", @@ -21093,6 +21283,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -21184,7 +21375,7 @@ }, "/{apiVersion}/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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `enable_managed`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account enable-managed\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `enable_managed`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli account enable-managed\n```\n\n[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-enable-account-managed" @@ -21221,6 +21412,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -21312,7 +21504,7 @@ }, "/{apiVersion}/account/transfer": { "get": { - "description": "Returns a Transfer object showing your network utilization, in GB, for the current month.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_network_usage`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account transfer\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns a Transfer object showing your network utilization, in GB, for the current month.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_network_usage`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli account transfer\n```\n\n[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-transfer" @@ -21419,6 +21611,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -21510,7 +21703,7 @@ }, "/{apiVersion}/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:\n\n- **Unrestricted access**. These users can access everything on an account.\n\n- **Restricted access**. These users can only access entities or perform actions they've been given specific grants to.\n\nAfter completion, the API sends a confirmation message containing password creation and login instructions to the user's `email` address.\n\n> \ud83d\udea7 RBAC Identity and Access\n>\n> If Identity and Access is enabled on your account, the *restricted* user is assigned the `account_admin` role and for *restricted* users you need follow this operation with [assigning roles to the user](https://techdocs.akamai.com/linode-api/reference/put-iam-users-role-permissions). To learn more, see [Identity and Access for Akamai Cloud](https://techdocs.akamai.com/cloud-computing/docs/identity-and-access-cm).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `create_user`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli users create \\\n --username example_user \\\n --email example_user@linode.com \\\n --restricted true\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Creates a user on your account. You determine the new user's account access by setting it to restricted or unrestricted:\n\n- **Unrestricted access**. These users can access everything on an account.\n\n- **Restricted access**. These users can only access entities or perform actions they've been given specific grants to.\n\nAfter completion, the API sends a confirmation message containing password creation and login instructions to the user's `email` address.\n\n> \ud83d\udea7 RBAC Identity and Access\n>\n> If Identity and Access is enabled on your account, the *restricted* user is assigned the `account_admin` role and for *restricted* users you need follow this operation with [assigning roles to the user](https://techdocs.akamai.com/linode-api/reference/put-iam-users-role-permissions). To learn more, see [Identity and Access for Akamai Cloud](https://techdocs.akamai.com/cloud-computing/docs/identity-and-access-cm).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `create_user`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli users create \\\n --username example_user \\\n --email example_user@linode.com \\\n --restricted true\n```\n\n[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-user" @@ -21550,7 +21743,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", + "description": "__Read-only__ The result of this user's most recent login attempt, either `successful` or `failed`.", "enum": [ "successful", "failed" @@ -21629,6 +21822,7 @@ "username", "email" ], + "type": "object", "x-akamai": { "file-path": "schemas/added-post-user.yaml" } @@ -21680,7 +21874,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", + "description": "__Read-only__ The result of this user's most recent login attempt, either `successful` or `failed`.", "enum": [ "successful", "failed" @@ -21772,6 +21966,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -21836,7 +22031,7 @@ ] }, "get": { - "description": "Returns a paginated list of all users on your account. A user can access all or part of an account based on their role assignment:\n\n- **Unrestricted access**. These users can access everything on an account.\n\n- **Restricted access**. These users can only access entities or perform actions they've been given specific grants to.\n\n> \ud83d\udea7 RBAC Identity and Access\n>\n> If Identity and Access is enabled on your account, the *restricted* users have the `account_admin` role and *restricted* users have [specific roles assigned to them](https://techdocs.akamai.com/linode-api/reference/get-iam-users-role-permissions). To learn more, see [Identity and Access for Akamai Cloud](https://techdocs.akamai.com/cloud-computing/docs/identity-and-access-cm).\n\ntabs:\n- syntax: |\n linode-cli users list\n title: CLI\n url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_user`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`", + "description": "Returns a paginated list of all users on your account. A user can access all or part of an account based on their role assignment:\n\n- **Unrestricted access**. These users can access everything on an account.\n\n- **Restricted access**. These users can only access entities or perform actions they've been given specific grants to.\n\n> \ud83d\udea7 RBAC Identity and Access\n>\n> If Identity and Access is enabled on your account, the *restricted* users have the `account_admin` role and *restricted* users have [specific roles assigned to them](https://techdocs.akamai.com/linode-api/reference/get-iam-users-role-permissions). To learn more, see [Identity and Access for Akamai Cloud](https://techdocs.akamai.com/cloud-computing/docs/identity-and-access-cm).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_user`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli users list\n```\n\n[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-users" @@ -21908,6 +22103,7 @@ "additionalProperties": false, "properties": { "data": { + "description": "A list of objects returned for a response.", "items": { "allOf": [ { @@ -21934,7 +22130,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", + "description": "__Read-only__ The result of this user's most recent login attempt, either `successful` or `failed`.", "enum": [ "successful", "failed" @@ -22076,6 +22272,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -22120,6 +22317,15 @@ "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" + } + ] + }, "x-linode-cli-action": [ "list", "ls" @@ -22161,7 +22367,7 @@ }, "/{apiVersion}/account/users/{username}": { "get": { - "description": "Returns information about a single user on your account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_user`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli users view example_user\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns information about a single user on your account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_user`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli users view example_user\n```\n\n[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-user" @@ -22213,7 +22419,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", + "description": "__Read-only__ The result of this user's most recent login attempt, either `successful` or `failed`.", "enum": [ "successful", "failed" @@ -22332,6 +22538,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -22396,7 +22603,7 @@ ] }, "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.\n\n> \ud83d\udea7 RBAC Identity and Access\n>\n> If Identity and Access is enabled on your account, the *restricted* users have the `account_admin` role and *restricted* users have specific roles assigned to them. To update the role assignment, run the [Update a user's access level](https://techdocs.akamai.com/linode-api/reference/put-iam-users-role-permissions) operation instead. To learn more, see [Identity and Access for Akamai Cloud](https://techdocs.akamai.com/cloud-computing/docs/identity-and-access-cm).\n\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature, on a child account, you can't edit the `username` or `email` values for delegate users.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `update_user`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli users update example_user \\\n --username example_user \\\n --email example@linode.com \\\n --restricted true\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n> \ud83d\udea7 RBAC Identity and Access\n>\n> If Identity and Access is enabled on your account, the *restricted* users have the `account_admin` role and *restricted* users have specific roles assigned to them. To update the role assignment, run the [Update a user's access level](https://techdocs.akamai.com/linode-api/reference/put-iam-users-role-permissions) operation instead. To learn more, see [Identity and Access for Akamai Cloud](https://techdocs.akamai.com/cloud-computing/docs/identity-and-access-cm).\n\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature, on a child account, you can't edit the `username` or `email` values for delegate users.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `update_user`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli users update example_user \\\n --username example_user \\\n --email example@linode.com \\\n --restricted true\n```\n\n[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-user" @@ -22445,7 +22652,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", + "description": "__Read-only__ The result of this user's most recent login attempt, either `successful` or `failed`.", "enum": [ "successful", "failed" @@ -22568,7 +22775,7 @@ "type": "string" }, "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", + "description": "__Read-only__ The result of this user's most recent login attempt, either `successful` or `failed`.", "enum": [ "successful", "failed" @@ -22687,6 +22894,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -22751,7 +22959,7 @@ ] }, "delete": { - "description": "Deletes a user. The API immediately logs the user out and removes their access to all Akamai Cloud services.\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature, you can't delete a user with the `delegate` user type on a child account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `delete_user`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli users delete example_user\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Deletes a user. The API immediately logs the user out and removes their access to all Akamai Cloud services.\n\n__Parent and child accounts__\n\nIn the context of the [parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners) feature, you can't delete a user with the `delegate` user type on a child account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `delete_user`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli users delete example_user\n```\n\n[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/delete-user" @@ -22788,6 +22996,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -22897,7 +23106,7 @@ "/{apiVersion}/account/users/{username}/grants": { "get": { "deprecated": true, - "description": "__Deprecated__ 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.\n\n> \ud83d\udea7 RBAC Identity and Access\n>\n> Grants are now replaced with RBAC Identity and Access. Use the [Get a user's access level](https://techdocs.akamai.com/linode-api/reference/get-iam-users-role-permissions) operation instead. To learn more, see [Identity and Access for Akamai Cloud](https://techdocs.akamai.com/cloud-computing/docs/identity-and-access-cm).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_user_grants`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_only`", + "description": "__Deprecated__ 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.\n\n> \ud83d\udea7 RBAC Identity and Access\n>\n> Grants are now replaced with RBAC Identity and Access. Use the [Get a user's access level](https://techdocs.akamai.com/linode-api/reference/get-iam-users-role-permissions) operation instead. To learn more, see [Identity and Access for Akamai Cloud](https://techdocs.akamai.com/cloud-computing/docs/identity-and-access-cm).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_user_grants`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_only`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-user-grants" @@ -23015,7 +23224,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23050,7 +23259,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23085,7 +23294,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23207,7 +23416,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23242,7 +23451,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23277,7 +23486,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23312,7 +23521,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23347,7 +23556,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23382,7 +23591,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23417,7 +23626,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23462,6 +23671,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -23522,7 +23732,7 @@ }, "put": { "deprecated": true, - "description": "__Deprecated__ 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.\n\n\n> \ud83d\udea7 RBAC Identity and Access\n>\n> Grants are now replaced with RBAC Identity and Access. Use the [Update a user's access level](https://techdocs.akamai.com/linode-api/reference/put-iam-users-role-permissions) operation instead. To learn more, see [Identity and Access for Akamai Cloud](https://techdocs.akamai.com/cloud-computing/docs/identity-and-access-cm).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `update_user_grants`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `account:read_write`", + "description": "__Deprecated__ 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.\n\n\n> \ud83d\udea7 RBAC Identity and Access\n>\n> Grants are now replaced with RBAC Identity and Access. Use the [Update a user's access level](https://techdocs.akamai.com/linode-api/reference/put-iam-users-role-permissions) operation instead. To learn more, see [Identity and Access for Akamai Cloud](https://techdocs.akamai.com/cloud-computing/docs/identity-and-access-cm).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `update_user_grants`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `account:read_write`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/put-user-grants" @@ -23560,7 +23770,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23595,7 +23805,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23630,7 +23840,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23752,7 +23962,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23787,7 +23997,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23822,7 +24032,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23857,7 +24067,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23892,7 +24102,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23927,7 +24137,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -23962,7 +24172,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -24101,7 +24311,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -24136,7 +24346,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -24171,7 +24381,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -24293,7 +24503,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -24328,7 +24538,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -24363,7 +24573,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -24398,7 +24608,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -24433,7 +24643,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -24468,7 +24678,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -24503,7 +24713,7 @@ "type": "string" }, "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", + "description": "The level of access this user has to this entity, either `read_only` or `read_write`. If `null`, this user has no access.", "enum": [ "read_only", "read_write" @@ -24544,6 +24754,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -24705,131 +24916,117 @@ "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": "Specific information for the Beta program.", - "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. A value of `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 for 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 - } + "additionalProperties": false, + "properties": { + "data": { + "description": "A list of objects returned for a response.", + "items": { + "additionalProperties": false, + "description": "Specific information for the Beta program.", + "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. A value of `null` indicates that the Beta program is ongoing.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] }, - "type": "object", + "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": { - "file-path": "schemas/beta-program.yaml" - } + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 4, + "x-linode-filterable": true }, - "type": "array" + "id": { + "description": "The unique identifier for 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", + "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": "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-beta-programs-200.yaml" } @@ -24852,6 +25049,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -24971,7 +25169,6 @@ "ended": { "description": "__Filterable__, __Read-only__ The date-time that the Beta program ended. A value of `null` indicates that the Beta program is ongoing.", "example": null, - "format": "date-time", "nullable": true, "readOnly": true, "type": "string", @@ -25026,7 +25223,6 @@ "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": { @@ -25045,7 +25241,7 @@ } } }, - "description": "Returns a paginated list of all available Beta program objects." + "description": "Returns a Beta program object." }, "default": { "content": { @@ -25061,6 +25257,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -25157,7 +25354,7 @@ }, "/{apiVersion}/databases/engines": { "get": { - "description": "Display all available Managed Databases engine types and versions. Use an engine's `id` to create a new Managed Databases instance.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n\n\n**CLI**\n\n```shell\nlinode-cli databases engines\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Display all available Managed Databases engine types and versions. Use an engine's `id` to create a new Managed Databases instance.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n\n\n**CLI**\n\n```shell\nlinode-cli databases engines\n```\n\n[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" @@ -25214,84 +25411,72 @@ "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 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", + "additionalProperties": false, + "properties": { + "data": { + "description": "A list of objects returned for a response.", + "items": { + "additionalProperties": false, + "description": "Managed Database engine object.", + "properties": { + "engine": { + "description": "__Filterable__ The Managed Database engine type.", + "example": "mysql", + "type": "string", "x-akamai": { - "file-path": "schemas/database-engine.yaml" - } + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true }, - "type": "array" + "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": "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/get-databases-engines-200.yaml" } @@ -25314,6 +25499,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -25394,7 +25580,7 @@ }, "/{apiVersion}/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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n\n\n**CLI**\n\n```shell\nlinode-cli databases engine-view\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n\n\n**CLI**\n\n```shell\nlinode-cli databases engine-view\n```\n\n[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" @@ -25501,6 +25687,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -25573,7 +25760,7 @@ } }, { - "description": "The ID of the Managed Database engine.", + "description": "The ID of the Managed Database engine. To get this value, run the [List Managed Databases engines](https://techdocs.akamai.com/linode-api/reference/get-databases-engines) operation.", "example": "{{engineId}}", "in": "path", "name": "engineId", @@ -25594,7 +25781,7 @@ }, "/{apiVersion}/databases/instances": { "get": { - "description": "Display information for all Managed Databases accessible to your user, regardless of engine type.\n\n> \ud83d\udc4d\n>\n> For more detailed information, you can list Managed Databases, based on the `engine`, [MySQL](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instances) or [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Display information for all Managed Databases accessible to your user, regardless of engine type.\n\n> \ud83d\udc4d\n>\n> For more detailed information, you can list Managed Databases, based on the `engine`, [MySQL](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instances), [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances), or [Valkey](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instances).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases list\n```\n\n[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-instances" @@ -25645,13 +25832,14 @@ "192.0.2.202/24", "192.0.2.14/24" ], + "available_restore_times": null, "cluster_size": 3, "created": "2022-01-01T00:01:01", "encrypted": true, "engine": "mysql", "fork": { "restore_time": "2024-10-14T19:55:12", - "source": "176881" + "source": 176881 }, "hosts": { "endpoints": [ @@ -25688,6 +25876,7 @@ "oldest_restore_time": "2024-10-03T20:48:05", "platform": "rdbms-default", "port": 3306, + "private_network": null, "region": "us-east", "status": "active", "total_disk_size_gb": 15, @@ -25695,7 +25884,7 @@ "updated": "2022-01-01T00:01:01", "updates": { "day_of_week": 1, - "duration": 3, + "duration": 4, "frequency": "weekly", "hour_of_day": 0, "pending": [] @@ -25708,6 +25897,7 @@ "192.0.2.122/24", "192.0.2.133/24" ], + "available_restore_times": null, "cluster_size": 3, "created": "2022-01-01T00:01:01", "encrypted": true, @@ -25749,12 +25939,11 @@ "pg_stat_monitor.pgsm_enable_query_plan": true, "pg_stat_monitor.pgsm_max_buckets": 10, "pg_stat_statements.track": "all", - "synchronous_replication": "quorum", "temp_file_limit": 5000000, "timezone": "Europe/Helsinki", "track_activity_query_size": 1024, - "track_commit_timestamp": true, - "track_functions": "off", + "track_commit_timestamp": "off", + "track_functions": "all", "track_io_timing": "off", "wal_sender_timeout": 60000, "wal_writer_delay": 200 @@ -25764,11 +25953,12 @@ "max_failover_replication_time_lag": 10 }, "shared_buffers_percentage": 41.5, + "synchronous_replication": "quorum", "work_mem": 4 }, "fork": { "restore_time": "2024-10-14T19:55:12", - "source": "176881" + "source": 176881 }, "hosts": { "endpoints": [ @@ -25811,7 +26001,7 @@ "updated": "2022-01-01T00:01:01", "updates": { "day_of_week": 1, - "duration": 3, + "duration": 4, "frequency": "weekly", "hour_of_day": 0, "pending": [] @@ -25825,409 +26015,1160 @@ "results": 2 }, "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, + "properties": { + "data": { + "description": "A list of objects returned for a response.", + "items": { + "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.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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" + }, + "available_restore_times": { + "description": "Possible times you can create a fork from for a Valkey database. For MySQL or PostgreSQL databases, this is `null`.", + "items": { + "example": "2024-10-03T20:48:05", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "cluster_size": { + "default": 1, + "description": "The number of Linode instance nodes deployed to the Managed Database, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` 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", + "readOnly": true, + "type": "string" + }, + "encrypted": { + "default": true, + "description": "__Read-only__ Whether the Managed Databases is encrypted. Currently the only possible value is `true`.", + "example": true, + "readOnly": true, + "type": "boolean" + }, + "engine": { + "description": "__Filterable__, __Read-only__ The Managed Database engine type, either `mysql` or `postgresql`.", + "enum": [ + "mysql", + "postgresql", + "valkey" + ], + "example": "mysql", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 6, + "x-linode-filterable": true + }, + "engine_config": { "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.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` 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": { + "description": "Managed PostgreSQL Database request object.", + "oneOf": [ + { "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.", + "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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification, or accept different values and ranges. Currently, only the parameters and settings covered 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": { - "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, + "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": 9007199254740991, + "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, either `TempTable` or `MEMORY`.", + "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" + }, + "sort_buffer_size": { + "default": 262144, + "description": "Sort buffer size in bytes for ORDER BY optimization.", + "example": 262244, + "maximum": 1073741824, + "minimum": 32768, + "type": "integer" + }, + "sql_mode": { + "default": "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES", + "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": { + "default": true, + "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" + "title": "MySQL engine config", + "type": "object", + "x-akamai": { + "file-path": "schemas/database-mysql-engine-config.yaml" + } }, - "hosts": { + { "additionalProperties": false, - "description": "__Read-only__ The primary hostname and standby read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", + "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.\n\n> \ud83d\udcd8\n>\n> 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": { - "endpoints": { - "description": "__Read-only__ A structured inventory of all connection points for a Managed Database instance.", - "items": { - "additionalProperties": false, - "properties": { - "address": { - "description": "The DNS hostname that resolves to either the `primary` or `standby` host, based on this object's `role`.", - "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", - "type": "string" - }, - "port": { - "description": "The port number used for the connection.", - "example": 3306, - "type": "integer" - }, - "public_access": { - "description": "Whether `public_access` has been enabled for the connection point.", - "example": false, - "type": "boolean" - }, - "role": { - "description": "Whether the endpoint connects to the `primary` or `standby` hostname, as defined in `hosts`.", - "enum": [ - "primary", - "standby" - ], - "example": "primary", - "type": "string" - } + "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" }, - "type": "object" + "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, either `lz4` or `pglz`.", + "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": "scram-sha-256", + "description": "Chooses the algorithm for encrypting passwords, either `scram-sha-256` or `md5`.", + "enum": [ + "scram-sha-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" + }, + "synchronous_replication": { + "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", + "enum": [ + "quorum", + "off" + ], + "example": "quorum", + "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": "Whether to record the commit time of transactions, either `on` or `off`.", + "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": "Whether to time database I/O calls, either `on` or `off`. It's `off` by default because it repeatedly queries 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" + } }, - "readOnly": true, - "type": "array" + "type": "object" }, - "primary": { - "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", - "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", - "nullable": true, - "type": "string" + "pg_stat_monitor_enable": { + "default": false, + "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" }, - "standby": { - "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", - "example": "lin-123-456-mysql-primary-private.servers.linodedb.net", - "nullable": true, + "pglookout": { + "additionalProperties": false, + "description": "Parameter used to apply PGLookout settings.", + "properties": { + "max_failover_replication_time_lag": { + "default": 60, + "description": "Number of seconds of primary 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" + }, + "synchronous_replication": { + "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", + "enum": [ + "quorum", + "off" + ], + "example": "quorum", "type": "string" + }, + "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" } }, - "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 name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either 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 unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", - "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", + "title": "PostgreSQL engine config", + "type": "object", "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" + "file-path": "schemas/database-postgresql-engine-config.yaml" + } }, - "updates": { + { "additionalProperties": false, - "description": "Configuration settings for automated patch update maintenance for the Managed Database.", + "description": "Advanced parameters applied to a Valkey Managed Database, via our partner [Aiven's specification](https://aiven.io/docs/products/valkey/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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification. Currently, only those listed here are supported for use in a Valkey Managed Database. You can also run the [Get Valkey Managed Database advanced parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-config) operation to see an up-to-date list.", "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, + "backup_hour": { + "description": "The hour of day (in UTC) when the backup for the service starts. New backups only start if the previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "backup_minute": { + "description": "The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "nullable": true, + "type": "integer" + }, + "frequent_snapshots": { + "description": "When enabled, Valkey creates frequent local RDB snapshots. When disabled, Valkey only takes RDB snapshots when a backup is created, based on the backup schedule. This setting is ignored when `valkey_persistence` is set to off.", + "type": "boolean" + }, + "valkey_acl_channels_default": { + "description": "Default ACL for pub/sub channels used when a Valkey user is created. Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.", + "type": "string" + }, + "valkey_active_expire_effort": { + "default": 1, + "description": "Active expire effort. Valkey reclaims expired keys both when accessed and in the background. The background process scans for expired keys to free memory. Increasing the active-expire-effort setting uses more CPU to reclaim expired keys faster, reducing memory usage but potentially increasing latency.", + "maximum": 10, "minimum": 1, "type": "integer" }, - "duration": { - "description": "The maximum maintenance window time in hours.", - "example": 3, - "maximum": 3, + "valkey_activedefrag": { + "default": false, + "description": "Enables active memory defragmentation. When enabled, Valkey relocates objects off sparsely-used memory pages to reduce fragmentation and return memory to the operating system. Defragmentation runs on the main thread and consumes CPU, so it may increase latency under load.", + "example": false, + "type": "boolean" + }, + "valkey_lfu_decay_time": { + "default": 1, + "description": "LFU maxmemory-policy counter decay time in minutes.", + "maximum": 120, + "minimum": 1, + "type": "integer" + }, + "valkey_lfu_log_factor": { + "default": 10, + "description": "Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies.", + "maximum": 100, + "type": "integer" + }, + "valkey_maxmemory_policy": { + "default": "noeviction", + "description": "Valkey maxmemory-policy.", + "nullable": true, + "type": "string" + }, + "valkey_number_of_databases": { + "description": "Set number of Valkey databases. Changing this will cause a restart of the Valkey service.", + "maximum": 128, "minimum": 1, "type": "integer" }, - "frequency": { - "default": "weekly", - "description": "How frequently maintenance occurs. Currently can only be `weekly`.", + "valkey_persistence": { + "default": "rdb", + "description": "- If set to `rdb`, Valkey generates periodic snapshots at least according to the backup schedule (either every twelve hours with an initial time chosen by the system or every 24 hours based on `backup_hour` and `backup_minute`, if set). Combined with the `frequent_snapshots` parameter set to `true`, Valkey generates snapshots every ten minutes if data has changed, which limits data loss in case nodes have to restart for any reason.\n\n- If set to `off`, Valkey never takes snapshots. This means no backups and no possibility of restoring the cluster. Service restarts are guaranteed to lose data. The benefit is avoiding the performance penalty creating a snapshot entails.\n\n> \ud83d\udcd8\n>\n>`valkey_persistence` can't be set `off`, if `backup_hour` or `backup_minute` are configured. When set to `off`, you can't configure the maintentace window when [Updating a Valkey Managed Database](https://techdocs.akamai.com/linode-api/reference/put-databases-valkey-instance).", "enum": [ - "weekly" + "off", + "rdb" ], - "example": "weekly", "type": "string" }, - "hour_of_day": { - "description": "The hour to begin maintenance based in UTC time.", - "example": 0, - "maximum": 23, - "minimum": 0, + "valkey_pubsub_client_output_buffer_limit": { + "description": "Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.", + "maximum": 262144, + "minimum": 32, "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" + "valkey_timeout": { + "default": 300, + "description": "Valkey idle connection timeout in seconds.", + "maximum": 2073600, + "type": "integer" } }, - "type": "object" + "title": "Valkey engine config", + "type": "object", + "x-akamai": { + "file-path": "schemas/database-valkey-engine-config.yaml" + } + } + ], + "type": "object" + }, + "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 database.", + "properties": { + "restore_time": { + "description": "The database timestamp from which it was restored. This is _not_ when the fork was created.", + "example": "2024-10-14T19:55:12", + "type": "string" }, - "used_disk_size_gb": { - "description": "__Read-only__ The amount of space currently in use in the database, in GB.", - "example": 2, - "readOnly": true, + "source": { + "description": "The unique identifier for the database that was forked from.", + "example": 176881, "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": "object" }, - "type": "array" + "hosts": { + "additionalProperties": false, + "description": "__Read-only__ The primary hostname and standby read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", + "properties": { + "endpoints": { + "description": "__Read-only__ A structured inventory of all connection points for a Managed Database instance.", + "items": { + "additionalProperties": false, + "properties": { + "address": { + "description": "The DNS hostname that resolves to either the `primary` or `standby` host, based on this object's `role`.", + "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "type": "string" + }, + "port": { + "description": "The port number used for the connection.", + "example": 3306, + "type": "integer" + }, + "public_access": { + "description": "Whether `public_access` has been enabled for the connection point.", + "example": false, + "type": "boolean" + }, + "role": { + "description": "Whether the endpoint connects to the `primary` or `standby` hostname, as defined in `hosts`.", + "enum": [ + "primary", + "standby" + ], + "example": "primary", + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, + "primary": { + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "format": "hostname", + "nullable": true, + "type": "string" + }, + "standby": { + "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "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 name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either 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": { + "additionalProperties": { + "enum": [ + "primary", + "failover" + ], + "type": "string" + }, + "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 MySQL or PostgreSQL database can be restored. For Valkey databases, this is `null`.", + "example": "2024-10-03T20:48:05", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "platform": { + "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service, either `rdbms-legacy` or `rdbms-default`.", + "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" + }, + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` allows clients outside of the VPC to connect to the database using a public IP address.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The VPC's `subnet_id` used to control access to the database.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database.", + "example": 123, + "type": "integer" + } + }, + "type": "object" + }, + "region": { + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", + "example": "us-east", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true + }, + "ssl_connection": { + "description": "__Read-only__ 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, + "readOnly": true, + "type": "boolean" + }, + "status": { + "description": "__Filterable__, __Read-only__ The operating status of the Managed Database, which can be one of the following: `provisioning`, `active`, `suspending`, `suspended`, `resuming`, `updating`, or `resizing`.", + "enum": [ + "provisioning", + "active", + "suspending", + "suspended", + "resuming", + "updating", + "resizing" + ], + "example": "active", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-color": { + "active": "green", + "default_": "white", + "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 `id` of 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", + "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": { + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, + "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", + "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 time when a maintenance update will be applied.", + "example": "2024-10-14T19:55:12", + "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. This is `null` for Valkey", + "example": 2, + "nullable": true, + "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": "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/get-databases-instances-200.yaml" } @@ -26250,6 +27191,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -26344,7 +27286,7 @@ }, "/{apiVersion}/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).\n\n> \ud83d\udcd8\n>\n> Aiven may offer other parameters, but Akamai Managed Databases only supports the ones listed in this operation.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-config\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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).\n\n> \ud83d\udcd8\n>\n> Aiven may offer other parameters, but Akamai Managed Databases only supports the ones listed in this operation.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-config\n```\n\n[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-mysql-config" @@ -26590,8 +27532,34 @@ "properties": { "binlog_retention_period": { "additionalProperties": false, - "description": "Settings available to configure a `binlog_retention_period`, per Aiven's specifications.", - "type": "integer" + "description": "Parameters available to configure `binlog_retention_period`.", + "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" }, "mysql": { "additionalProperties": false, @@ -26637,7 +27605,7 @@ "type": "string" }, "example": { - "description": "An example value for this parameter, using the required `pattern`.", + "description": "An example value for this parameter following the `pattern`.", "type": "string" }, "maxLength": { @@ -26828,7 +27796,7 @@ "type": "string" }, "example": { - "description": "An example value for this parameter, using the required `pattern`, or `null` for no value.", + "description": "An example value for this parameter following the `pattern`, or `null` for no value.", "type": "string" }, "maxLength": { @@ -26844,8 +27812,11 @@ "type": "boolean" }, "type": { - "description": "The format of this object.", - "type": "string" + "description": "Possible types of the `innodb_ft_server_stopword_table` parameter.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -26984,7 +27955,7 @@ }, "example": { "description": "An example boolean value for this parameter.", - "type": "string" + "type": "boolean" }, "requires_restart": { "description": "Whether a change to this parameter requires a restart of the MySQL database.", @@ -27099,8 +28070,11 @@ "type": "string" }, "enum": { - "description": "Specific values available for use as this parameter.", - "type": "string" + "description": "Possible values of the `internal_tmp_mem_storage_engine` parameter.", + "items": { + "type": "string" + }, + "type": "array" }, "example": { "description": "One of the `enum` values available for use.", @@ -27272,6 +28246,37 @@ }, "type": "object" }, + "sort_buffer_size": { + "additionalProperties": false, + "description": "Settings available to configure the `sort_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" + }, "sql_mode": { "additionalProperties": false, "description": "Settings available to configure the `sql_mode`, per Aiven's specifications.", @@ -27281,7 +28286,7 @@ "type": "string" }, "example": { - "description": "An example value for this parameter, using the required `pattern`.", + "description": "An example value for this parameter following the `pattern`.", "type": "string" }, "maxLength": { @@ -27313,7 +28318,7 @@ }, "example": { "description": "An example boolean value for this parameter.", - "type": "string" + "type": "boolean" }, "requires_restart": { "description": "Whether a change to this parameter requires a restart of the MySQL database.", @@ -27415,6 +28420,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -27506,7 +28512,7 @@ }, "/{apiVersion}/databases/mysql/instances": { "post": { - "description": "**Provision a MySQL Managed Database**\n\nUse this operation to create a new MySQL Managed Database.\n\n- New instances can take 10 to 15 minutes to deploy.\n\n- 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.\n\n- 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.\n\n- 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.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n**Beta** **Virtual Private Cloud (VPC) support**\n\nYou can create a MySQL Managed Database in a VPC using the `private_network` object in the request. Talk to your Akamai account team for more details.\n\n> \ud83d\udcd8\n>\n> Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.\n\n**Restore a MySQL Managed Database**\n\nInclude the `fork` object in the request to target a backed-up database. The target MySQL database's status can be `active`, `degraded`, or `failed`.\n\n> \ud83d\udcd8\n>\n> 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.\n\n> \ud83d\udc4d There's a tutorial\n>\n> We offer an example API workflow you can follow to [restore a Managed Database backup](https://techdocs.akamai.com/linode-api/reference/restore-a-managed-database-backup).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `account_database_creator`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-create \\\n --label example-db1 \\\n --region us-east \\\n --type g6-dedicated-2 \\\n --cluster_size 3 \\\n --engine mysql/8.0.26 \\\n --engine_config.binlog_retention_period 600 \\\n --engine_config.mysql.connect_timeout 10 \\\n --engine_config.mysql.default_time_zone +03:00 \\\n --ssl_connection true \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "**Provision a MySQL Managed Database**\n\nUse this operation to create a new MySQL Managed Database.\n\n- New instances can take 10 to 15 minutes to deploy.\n\n- 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.\n\n- 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.\n\n- 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.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n- You can create a MySQL Managed Database in a VPC using the `private_network` object in the request.\n\n> \ud83d\udcd8\n>\n> Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.\n\n**Restore a MySQL Managed Database**\n\nInclude the `fork` object in the request to target a backed-up database. The only required value is `source`. If you provide other values, the forked cluster will use those settings. You can't change `engine`.\n\n> \ud83d\udcd8\n>\n> 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.\n\n> \ud83d\udc4d There's a tutorial\n>\n> We offer an example API workflow you can follow to [restore a Managed Database backup](https://techdocs.akamai.com/linode-api/reference/restore-a-managed-database-backup).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `account_database_creator`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-create \\\n --label example-db1 \\\n --region us-east \\\n --type g6-dedicated-2 \\\n --cluster_size 3 \\\n --engine mysql/8.0.26 \\\n --engine_config.binlog_retention_period 600 \\\n --engine_config.mysql.connect_timeout 10 \\\n --engine_config.mysql.default_time_zone +03:00 \\\n --ssl_connection true \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24\n```\n\n[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-databases-mysql-instances" @@ -27515,411 +28521,816 @@ "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 + "examples": { + "create-mysql-cluster": { + "summary": "Create MySQL database", + "value": { + "allow_list": [ + "192.0.2.152/24", + "192.0.2.229/24" + ], + "cluster_size": 3, + "engine": "mysql/8.4", + "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", + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, + "region": "us-east", + "ssl_connection": true, + "type": "g6-dedicated-2" } }, - "fork": { - "restore_time": "2024-10-14T19:55:12", - "source": 176881 - }, - "label": "example-db", - "private_network": { - "public_access": false, - "subnet_id": 456, - "vpc_id": 123 - }, - "region": "us-east", - "ssl_connection": true, - "type": "g6-dedicated-2" + "fork-mysql-cluster": { + "summary": "Restore MySQL database", + "value": { + "allow_list": [ + "192.0.2.152/24", + "192.0.2.229/24" + ], + "cluster_size": 3, + "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", + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, + "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.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` 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": { + "oneOf": [ + { "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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification, or accept different values and ranges. Currently, only the parameters and settings covered 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": 9007199254740991, - "minimum": 600, - "type": "integer" + "allow_list": { + "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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" }, - "mysql": { + "cluster_size": { + "default": 1, + "description": "The number of Linode instance nodes deployed to the Managed Database, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` node.", + "enum": [ + 1, + 2, + 3 + ], + "example": 3, + "type": "integer", + "x-linode-cli-display": 5 + }, + "engine": { + "description": "The `id` of the Managed Database engine. To get the available values, run the [List Managed Databases engines](https://techdocs.akamai.com/linode-api/reference/get-databases-engines) operation.", + "example": "mysql/8.0.26", + "type": "string" + }, + "engine_config": { "additionalProperties": false, - "description": "MySQL-specific advanced configuration parameters.", + "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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification, or accept different values and ranges. Currently, only the parameters and settings covered 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": { - "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, + "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": 9007199254740991, + "minimum": 600, "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.", + "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, either `TempTable` or `MEMORY`.", + "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" + }, + "sort_buffer_size": { + "default": 262144, + "description": "Sort buffer size in bytes for ORDER BY optimization.", + "example": 262244, + "maximum": 1073741824, + "minimum": 32768, + "type": "integer" + }, + "sql_mode": { + "default": "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES", + "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": { + "default": true, + "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 name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either engine type.", + "example": "example-db", + "maxLength": 32, + "minLength": 3, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a MySQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. You can only assign VPCs that are in the same region as the database cluster.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` to allow clients outside of the VPC to connect to the database using a public IP address. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", "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, + "subnet_id": { + "description": "If the `vpc_id` includes multiple subnets, specify the `subnet_id` you want to use to control access to the database. Use the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation to find and store the `id` of the relevant subnet object.\n\n> \ud83d\udcd8\n>\n> A VPC needs at least one subnet to assign a Manage Database instance.", + "example": 456, "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, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the `id` for the applicable VPC.", + "example": 123, "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": "object" + }, + "region": { + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", + "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" + }, + "type": { + "description": "__Filterable__ The `id` of 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 + } + }, + "required": [ + "label", + "type", + "engine", + "region" + ], + "title": "Create MySQL database", + "type": "object", + "x-akamai": { + "file-path": "schemas/database-mysql-create.yaml" + } + }, + { + "additionalProperties": false, + "properties": { + "allow_list": { + "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` node.", + "enum": [ + 1, + 2, + 3 + ], + "example": 3, + "type": "integer", + "x-linode-cli-display": 5 + }, + "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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification, or accept different values and ranges. Currently, only the parameters and settings covered 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": 9007199254740991, + "minimum": 600, "type": "integer" }, - "internal_tmp_mem_storage_engine": { - "description": "The storage engine for in-memory internal temporary tables.", - "enum": [ - "TempTable", - "MEMORY" - ], - "example": "TempTable", + "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, either `TempTable` or `MEMORY`.", + "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" + }, + "sort_buffer_size": { + "default": 262144, + "description": "Sort buffer size in bytes for ORDER BY optimization.", + "example": 262244, + "maximum": 1073741824, + "minimum": 32768, + "type": "integer" + }, + "sql_mode": { + "default": "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES", + "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": { + "default": true, + "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.", + "properties": { + "restore_time": { + "description": "A specific database timestamp to restore from. Run the [List Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-instances) operation and check the `oldest_restore_time` value of the source database. The value used here needs to be more recent than `oldest_restore_time`. If you don't provide this value, the fork is created from the newest full backup plus incremental.", + "example": "2024-10-14T19:55:12", "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, + "source": { + "description": "The unique identifier 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" - }, - "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.", + } + }, + "required": [ + "source" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/database-restore-fork.yaml" + } + }, + "label": { + "description": "__Filterable__ A name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either engine type.", + "example": "example-db", + "maxLength": 32, + "minLength": 3, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a MySQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. You can only assign VPCs that are in the same region as the database cluster.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` to allow clients outside of the VPC to connect to the database using a public IP address. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", "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, + "subnet_id": { + "description": "If the `vpc_id` includes multiple subnets, specify the `subnet_id` you want to use to control access to the database. Use the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation to find and store the `id` of the relevant subnet object.\n\n> \ud83d\udcd8\n>\n> A VPC needs at least one subnet to assign a Manage Database instance.", + "example": 456, "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, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the `id` for the applicable VPC.", + "example": 123, "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.\n\n- If you include this object, all other fields are optional.\n\n- 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 name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either engine type.", - "example": "{{label}}", - "maxLength": 32, - "minLength": 3, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "private_network": { - "additionalProperties": false, - "description": "__Beta__ Restricts access on a MySQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster.", - "nullable": true, - "properties": { - "public_access": { - "default": false, - "description": "Set to `true` to allow clients outside of the VPC to connect to the database using a public IP address. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "region": { + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", + "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" }, - "subnet_id": { - "description": "If the `vpc_id` includes multiple subnets, specify the `subnet_id` you want to use to control access to the database. Use the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation to find and store the `id` of the relevant subnet object.\n\n> \ud83d\udcd8\n>\n> A VPC needs at least one subnet to assign a Manage Database instance.", - "example": 456, - "type": "integer" - }, - "vpc_id": { - "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the `id` for the applicable VPC.", - "example": 123, - "type": "integer" + "type": { + "description": "__Filterable__ The `id` of 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 } }, + "required": [ + "fork" + ], + "title": "Restore MySQL database", "type": "object", "x-akamai": { - "status": "BETA" + "file-path": "schemas/database-mysql-restore.yaml" } - }, - "region": { - "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", - "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": { @@ -28010,7 +29421,7 @@ "updated": "2025-01-01T00:01:01", "updates": { "day_of_week": 1, - "duration": 3, + "duration": 4, "frequency": "weekly", "hour_of_day": 0, "pending": [] @@ -28051,13 +29462,12 @@ "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`.", + "description": "__Read-only__ Whether the Managed Databases is encrypted. Currently the only possible value is `true`.", "example": true, "readOnly": true, "type": "boolean" @@ -28102,7 +29512,7 @@ "example": "+03:00", "maxLength": 100, "minLength": 2, - "pattern": "^([-+][\\\\d:]*|[\\\\w/]*)$", + "pattern": "^([-+][\\d:]*|[\\w/]*)$", "type": "string" }, "group_concat_max_len": { @@ -28209,7 +29619,7 @@ "type": "integer" }, "internal_tmp_mem_storage_engine": { - "description": "The storage engine for in-memory internal temporary tables.", + "description": "The storage engine for in-memory internal temporary tables, either `TempTable` or `MEMORY`.", "enum": [ "TempTable", "MEMORY" @@ -28255,7 +29665,16 @@ "minimum": 1, "type": "integer" }, + "sort_buffer_size": { + "default": 262144, + "description": "Sort buffer size in bytes for ORDER BY optimization.", + "example": 262244, + "maximum": 1073741824, + "minimum": 32768, + "type": "integer" + }, "sql_mode": { + "default": "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES", "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, @@ -28263,6 +29682,7 @@ "type": "string" }, "sql_require_primary_key": { + "default": true, "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" @@ -28294,16 +29714,15 @@ }, "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.", + "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 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", + "example": "2024-10-14T19:55:12", "type": "string" }, "source": { - "description": "The instance id of the database that was forked from.", + "description": "The unique identifier for the database that was forked from.", "example": 176881, "type": "integer" } @@ -28350,13 +29769,14 @@ "type": "array" }, "primary": { - "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "format": "hostname", "nullable": true, "type": "string" }, "standby": { - "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-primary-private.servers.linodedb.net", "nullable": true, "type": "string" @@ -28387,6 +29807,13 @@ "x-linode-filterable": true }, "members": { + "additionalProperties": { + "enum": [ + "primary", + "failover" + ], + "type": "string" + }, "description": "__Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`.", "example": { "45.56.110.70": "primary", @@ -28396,14 +29823,14 @@ "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", + "description": "__Read-only__ The oldest time to which a MySQL or PostgreSQL database can be restored. For Valkey databases, this is `null`.", + "example": "2024-10-03T20:48:05", + "nullable": true, "readOnly": true, "type": "string" }, "platform": { - "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service.", + "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service, either `rdbms-legacy` or `rdbms-default`.", "enum": [ "rdbms-legacy", "rdbms-default" @@ -28427,30 +29854,27 @@ }, "private_network": { "additionalProperties": false, - "description": "__Beta__ Restricts access to a MySQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured.", + "description": "Restricts access on a Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. Displayed as `null` if no VPC is configured.", "nullable": true, "properties": { "public_access": { "default": false, - "description": "When set to `true`, clients outside of the VPC can connect to the database. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "description": "Set to `true` allows clients outside of the VPC to connect to the database using a public IP address.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", "example": true, "type": "boolean" }, "subnet_id": { - "description": "The unique identifier of a specific subnet, in the VPC (`vpc_id`) where the Managed Database can be accessed.", + "description": "The VPC's `subnet_id` used to control access to the database.", "example": 456, "type": "integer" }, "vpc_id": { - "description": "The unique identifier of the VPC where this database exists.", + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database.", "example": 123, "type": "integer" } }, - "type": "object", - "x-akamai": { - "status": "BETA" - } + "type": "object" }, "region": { "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", @@ -28471,15 +29895,13 @@ "type": "boolean" }, "status": { - "description": "__Filterable__, __Read-only__ The operating status of the Managed Database.", + "description": "__Filterable__, __Read-only__ The operating status of the Managed Database, which can be one of the following: `provisioning`, `active`, `suspending`, `suspended`, `resuming`, `updating`, or `resizing`.", "enum": [ "provisioning", "active", "suspending", "suspended", "resuming", - "failed", - "degraded", "updating", "resizing" ], @@ -28494,8 +29916,6 @@ "x-linode-cli-color": { "active": "green", "default_": "white", - "degraded": "red", - "failed": "red", "provisioning": "yellow", "restoring": "yellow", "resuming": "yellow" @@ -28510,7 +29930,7 @@ "type": "integer" }, "type": { - "description": "__Filterable__ The Linode Instance type used by the Managed Database for its nodes.", + "description": "__Filterable__ The `id` of the Linode Instance type used by the Managed Database for its nodes.", "example": "g6-dedicated-2", "type": "string", "x-akamai": { @@ -28524,7 +29944,6 @@ "updated": { "description": "__Read-only__ When this Managed Database was last updated.", "example": "2022-01-01T00:01:01", - "format": "date-time", "readOnly": true, "type": "string" }, @@ -28540,10 +29959,9 @@ "type": "integer" }, "duration": { - "description": "The maximum maintenance window time in hours.", - "example": 3, - "maximum": 3, - "minimum": 1, + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, "type": "integer" }, "frequency": { @@ -28572,7 +29990,6 @@ "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" }, @@ -28582,9 +29999,8 @@ "type": "string" }, "planned_for": { - "description": "The date and time a maintenance update will be applied.", + "description": "The time when a maintenance update will be applied.", "example": "2024-10-14T19:55:12", - "format": "date-time", "nullable": true, "type": "string" } @@ -28599,8 +30015,9 @@ "type": "object" }, "used_disk_size_gb": { - "description": "__Read-only__ The amount of space currently in use in the database, in GB.", + "description": "__Read-only__ The amount of space currently in use in the database, in GB. This is `null` for Valkey", "example": 2, + "nullable": true, "readOnly": true, "type": "integer" }, @@ -28640,6 +30057,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -28704,7 +30122,7 @@ ] }, "get": { - "description": "Display all accessible MySQL Managed Databases.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Display all accessible MySQL Managed Databases.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-list\n```\n\n[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-mysql-instances" @@ -28793,7 +30211,7 @@ }, "fork": { "restore_time": "2024-10-14T19:55:12", - "source": "176881" + "source": 176881 }, "hosts": { "endpoints": [ @@ -28842,7 +30260,7 @@ "updated": "2022-01-01T00:01:01", "updates": { "day_of_week": 1, - "duration": 3, + "duration": 4, "frequency": "weekly", "hour_of_day": 0, "pending": [] @@ -28856,648 +30274,642 @@ "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, + "properties": { + "data": { + "description": "A list of objects returned for a response.", + "items": { + "additionalProperties": false, + "description": "Managed MySQL Databases object.", + "properties": { + "allow_list": { + "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` 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", + "readOnly": true, + "type": "string" + }, + "encrypted": { + "default": true, + "description": "__Read-only__ Whether the Managed Databases is encrypted. Currently the only possible value is `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": "Managed MySQL Databases object.", + "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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification, or accept different values and ranges. Currently, only the parameters and settings covered 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": { - "allow_list": { - "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` 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 + "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": 9007199254740991, + "minimum": 600, + "type": "integer" }, - "engine_config": { + "mysql": { "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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification, or accept different values and ranges. Currently, only the parameters and settings covered 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.", + "description": "MySQL-specific advanced configuration parameters.", "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": 9007199254740991, - "minimum": 600, + "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" }, - "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", + "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" }, - "source": { - "description": "The instance id of the database that was forked from.", - "example": 176881, + "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" - } - }, - "type": "object" - }, - "hosts": { - "additionalProperties": false, - "description": "__Read-only__ The primary hostname and standby read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", - "properties": { - "endpoints": { - "description": "__Read-only__ A structured inventory of all connection points for a Managed Database instance.", - "items": { - "additionalProperties": false, - "properties": { - "address": { - "description": "The DNS hostname that resolves to either the `primary` or `standby` host, based on this object's `role`.", - "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", - "type": "string" - }, - "port": { - "description": "The port number used for the connection.", - "example": 3306, - "type": "integer" - }, - "public_access": { - "description": "Whether `public_access` has been enabled for the connection point.", - "example": false, - "type": "boolean" - }, - "role": { - "description": "Whether the endpoint connects to the `primary` or `standby` hostname, as defined in `hosts`.", - "enum": [ - "primary", - "standby" - ], - "example": "primary", - "type": "string" - } - }, - "type": "object" - }, - "readOnly": true, - "type": "array" }, - "primary": { - "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", - "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", - "nullable": true, - "type": "string" + "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" }, - "standby": { - "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", - "example": "lin-123-456-mysql-primary-private.servers.linodedb.net", + "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" - } - }, - "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 name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either 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" - }, - "private_network": { - "additionalProperties": false, - "description": "__Beta__ Restricts access to a MySQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured.", - "nullable": true, - "properties": { - "public_access": { - "default": false, - "description": "When set to `true`, clients outside of the VPC can connect to the database. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", - "example": true, - "type": "boolean" }, - "subnet_id": { - "description": "The unique identifier of a specific subnet, in the VPC (`vpc_id`) where the Managed Database can be accessed.", - "example": 456, + "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" }, - "vpc_id": { - "description": "The unique identifier of the VPC where this database exists.", - "example": 123, + "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" - } - }, - "type": "object", - "x-akamai": { - "status": "BETA" - } - }, - "region": { - "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", - "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, + }, + "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" }, - "duration": { - "description": "The maximum maintenance window time in hours.", - "example": 3, - "maximum": 3, + "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" }, - "frequency": { - "default": "weekly", - "description": "How frequently maintenance occurs. Currently can only be `weekly`.", + "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, either `TempTable` or `MEMORY`.", "enum": [ - "weekly" + "TempTable", + "MEMORY" ], - "example": "weekly", + "example": "TempTable", "type": "string" }, - "hour_of_day": { - "description": "The hour to begin maintenance based in UTC time.", - "example": 0, - "maximum": 23, - "minimum": 0, + "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" }, - "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" + "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" + }, + "sort_buffer_size": { + "default": 262144, + "description": "Sort buffer size in bytes for ORDER BY optimization.", + "example": 262244, + "maximum": 1073741824, + "minimum": 32768, + "type": "integer" + }, + "sql_mode": { + "default": "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES", + "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": { + "default": true, + "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 database.", + "properties": { + "restore_time": { + "description": "The database timestamp from which it was restored. This is _not_ when the fork was created.", + "example": "2024-10-14T19:55:12", + "type": "string" }, - "used_disk_size_gb": { - "description": "__Read-only__ The amount of space currently in use in the database, in GB.", - "example": 2, + "source": { + "description": "The unique identifier for the database that was forked from.", + "example": 176881, + "type": "integer" + } + }, + "type": "object" + }, + "hosts": { + "additionalProperties": false, + "description": "__Read-only__ The primary hostname and standby read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", + "properties": { + "endpoints": { + "description": "__Read-only__ A structured inventory of all connection points for a Managed Database instance.", + "items": { + "additionalProperties": false, + "properties": { + "address": { + "description": "The DNS hostname that resolves to either the `primary` or `standby` host, based on this object's `role`.", + "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "type": "string" + }, + "port": { + "description": "The port number used for the connection.", + "example": 3306, + "type": "integer" + }, + "public_access": { + "description": "Whether `public_access` has been enabled for the connection point.", + "example": false, + "type": "boolean" + }, + "role": { + "description": "Whether the endpoint connects to the `primary` or `standby` hostname, as defined in `hosts`.", + "enum": [ + "primary", + "standby" + ], + "example": "primary", + "type": "string" + } + }, + "type": "object" + }, "readOnly": true, + "type": "array" + }, + "primary": { + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "format": "hostname", + "nullable": true, + "type": "string" + }, + "standby": { + "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "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 name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either 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": { + "additionalProperties": { + "enum": [ + "primary", + "failover" + ], + "type": "string" + }, + "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 MySQL or PostgreSQL database can be restored. For Valkey databases, this is `null`.", + "example": "2024-10-03T20:48:05", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "platform": { + "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service, either `rdbms-legacy` or `rdbms-default`.", + "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" + }, + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` allows clients outside of the VPC to connect to the database using a public IP address.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The VPC's `subnet_id` used to control access to the database.", + "example": 456, "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 + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database.", + "example": 123, + "type": "integer" } }, - "type": "object", + "type": "object" + }, + "region": { + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", + "example": "us-east", + "type": "string", "x-akamai": { - "file-path": "schemas/database-mysql.yaml" - } + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true }, - "type": "array" + "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, which can be one of the following: `provisioning`, `active`, `suspending`, `suspended`, `resuming`, `updating`, or `resizing`.", + "enum": [ + "provisioning", + "active", + "suspending", + "suspended", + "resuming", + "updating", + "resizing" + ], + "example": "active", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-color": { + "active": "green", + "default_": "white", + "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 `id` of 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", + "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": { + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, + "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", + "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 time when a maintenance update will be applied.", + "example": "2024-10-14T19:55:12", + "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. This is `null` for Valkey", + "example": 2, + "nullable": true, + "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": "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/get-databases-mysql-instances-200.yaml" } @@ -29520,6 +30932,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -29611,7 +31024,7 @@ }, "/{apiVersion}/databases/mysql/instances/{mysqlInstanceId}": { "get": { - "description": "Display information for a single, accessible MySQL Managed Database.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-view 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Display information for a single, accessible MySQL Managed Database.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-view 123\n```\n\n[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-mysql-instance" @@ -29712,7 +31125,7 @@ "updated": "2022-01-01T00:01:01", "updates": { "day_of_week": 1, - "duration": 3, + "duration": 4, "frequency": "weekly", "hour_of_day": 0, "pending": [] @@ -29753,13 +31166,12 @@ "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`.", + "description": "__Read-only__ Whether the Managed Databases is encrypted. Currently the only possible value is `true`.", "example": true, "readOnly": true, "type": "boolean" @@ -29804,7 +31216,7 @@ "example": "+03:00", "maxLength": 100, "minLength": 2, - "pattern": "^([-+][\\\\d:]*|[\\\\w/]*)$", + "pattern": "^([-+][\\d:]*|[\\w/]*)$", "type": "string" }, "group_concat_max_len": { @@ -29911,7 +31323,7 @@ "type": "integer" }, "internal_tmp_mem_storage_engine": { - "description": "The storage engine for in-memory internal temporary tables.", + "description": "The storage engine for in-memory internal temporary tables, either `TempTable` or `MEMORY`.", "enum": [ "TempTable", "MEMORY" @@ -29957,7 +31369,16 @@ "minimum": 1, "type": "integer" }, + "sort_buffer_size": { + "default": 262144, + "description": "Sort buffer size in bytes for ORDER BY optimization.", + "example": 262244, + "maximum": 1073741824, + "minimum": 32768, + "type": "integer" + }, "sql_mode": { + "default": "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES", "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, @@ -29965,6 +31386,7 @@ "type": "string" }, "sql_require_primary_key": { + "default": true, "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" @@ -29996,16 +31418,15 @@ }, "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.", + "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 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", + "example": "2024-10-14T19:55:12", "type": "string" }, "source": { - "description": "The instance id of the database that was forked from.", + "description": "The unique identifier for the database that was forked from.", "example": 176881, "type": "integer" } @@ -30052,13 +31473,14 @@ "type": "array" }, "primary": { - "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "format": "hostname", "nullable": true, "type": "string" }, "standby": { - "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-primary-private.servers.linodedb.net", "nullable": true, "type": "string" @@ -30089,6 +31511,13 @@ "x-linode-filterable": true }, "members": { + "additionalProperties": { + "enum": [ + "primary", + "failover" + ], + "type": "string" + }, "description": "__Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`.", "example": { "45.56.110.70": "primary", @@ -30098,14 +31527,14 @@ "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", + "description": "__Read-only__ The oldest time to which a MySQL or PostgreSQL database can be restored. For Valkey databases, this is `null`.", + "example": "2024-10-03T20:48:05", + "nullable": true, "readOnly": true, "type": "string" }, "platform": { - "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service.", + "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service, either `rdbms-legacy` or `rdbms-default`.", "enum": [ "rdbms-legacy", "rdbms-default" @@ -30129,30 +31558,27 @@ }, "private_network": { "additionalProperties": false, - "description": "__Beta__ Restricts access to a MySQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured.", + "description": "Restricts access on a Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. Displayed as `null` if no VPC is configured.", "nullable": true, "properties": { "public_access": { "default": false, - "description": "When set to `true`, clients outside of the VPC can connect to the database. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "description": "Set to `true` allows clients outside of the VPC to connect to the database using a public IP address.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", "example": true, "type": "boolean" }, "subnet_id": { - "description": "The unique identifier of a specific subnet, in the VPC (`vpc_id`) where the Managed Database can be accessed.", + "description": "The VPC's `subnet_id` used to control access to the database.", "example": 456, "type": "integer" }, "vpc_id": { - "description": "The unique identifier of the VPC where this database exists.", + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database.", "example": 123, "type": "integer" } }, - "type": "object", - "x-akamai": { - "status": "BETA" - } + "type": "object" }, "region": { "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", @@ -30173,15 +31599,13 @@ "type": "boolean" }, "status": { - "description": "__Filterable__, __Read-only__ The operating status of the Managed Database.", + "description": "__Filterable__, __Read-only__ The operating status of the Managed Database, which can be one of the following: `provisioning`, `active`, `suspending`, `suspended`, `resuming`, `updating`, or `resizing`.", "enum": [ "provisioning", "active", "suspending", "suspended", "resuming", - "failed", - "degraded", "updating", "resizing" ], @@ -30196,8 +31620,6 @@ "x-linode-cli-color": { "active": "green", "default_": "white", - "degraded": "red", - "failed": "red", "provisioning": "yellow", "restoring": "yellow", "resuming": "yellow" @@ -30212,7 +31634,7 @@ "type": "integer" }, "type": { - "description": "__Filterable__ The Linode Instance type used by the Managed Database for its nodes.", + "description": "__Filterable__ The `id` of the Linode Instance type used by the Managed Database for its nodes.", "example": "g6-dedicated-2", "type": "string", "x-akamai": { @@ -30226,7 +31648,6 @@ "updated": { "description": "__Read-only__ When this Managed Database was last updated.", "example": "2022-01-01T00:01:01", - "format": "date-time", "readOnly": true, "type": "string" }, @@ -30242,10 +31663,9 @@ "type": "integer" }, "duration": { - "description": "The maximum maintenance window time in hours.", - "example": 3, - "maximum": 3, - "minimum": 1, + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, "type": "integer" }, "frequency": { @@ -30274,7 +31694,6 @@ "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" }, @@ -30284,9 +31703,8 @@ "type": "string" }, "planned_for": { - "description": "The date and time a maintenance update will be applied.", + "description": "The time when a maintenance update will be applied.", "example": "2024-10-14T19:55:12", - "format": "date-time", "nullable": true, "type": "string" } @@ -30301,8 +31719,9 @@ "type": "object" }, "used_disk_size_gb": { - "description": "__Read-only__ The amount of space currently in use in the database, in GB.", + "description": "__Read-only__ The amount of space currently in use in the database, in GB. This is `null` for Valkey", "example": 2, + "nullable": true, "readOnly": true, "type": "integer" }, @@ -30342,6 +31761,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -30406,7 +31826,7 @@ ] }, "put": { - "description": "Make changes to an existing MySQL Managed Database.\n\n- The database's status needs to be `active`.\n\n- 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.\n\n- Updates to your `allow_list` may take a short time to complete, making this operation inappropriate for rapid successive updates.\n\n- Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans.\n\n- 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.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- 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.\n\n- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n- **Beta**. You can update an existing MySQL Managed Database to move it to a Virtual Private Cloud (VPC) using the `private_network` object in the request. This support is in beta. Talk to your Akamai account team for more details.\n\n > \ud83d\udcd8\n >\n > Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-update 123 \\\n --label example-db \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24 \\\n --type g6-standard-1 \\\n --engine_config.binlog_retention_period 600 \\\n --engine_config.mysql.connect_timeout 10 \\\n --engine_config.mysql.default_time_zone +03:00 \\\n --updates.frequency weekly \\\n --updates.duration 3 \\\n --updates.hour_of_day 12 \\\n --updates.day_of_week 4 \\\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Make changes to an existing MySQL Managed Database.\n\n- The database's status can't be `suspended`.\n\n- 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.\n\n- Updates to your `allow_list` may take a short time to complete, making this operation inappropriate for rapid successive updates.\n\n- Also allows resizing the database cluster to a larger one.\n\n- 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.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- 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.\n\n- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n- You can update an existing MySQL Managed Database to move it to a Virtual Private Cloud (VPC) using the `private_network` object in the request.\n\n > \ud83d\udcd8\n >\n > Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.\n\n- This operation is asynchronous. The 200 response body with the `provisioning` and `updating` status may contain legacy values.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-update 123 \\\n --label example-db \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24 \\\n --type g6-standard-1 \\\n --engine_config.binlog_retention_period 600 \\\n --engine_config.mysql.connect_timeout 10 \\\n --engine_config.mysql.default_time_zone +03:00 \\\n --updates.frequency weekly \\\n --updates.duration 3 \\\n --updates.hour_of_day 12 \\\n --updates.day_of_week 4 \\\n```\n\n[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-databases-mysql-instance" @@ -30420,6 +31840,7 @@ "192.0.2.138/24", "192.0.2.228/24" ], + "cluster_size": 2, "engine_config": { "binlog_retention_period": 600, "mysql": { @@ -30461,7 +31882,7 @@ "type": "g6-standard-1", "updates": { "day_of_week": 1, - "duration": 3, + "duration": 4, "frequency": "weekly", "hour_of_day": 0 }, @@ -30485,6 +31906,18 @@ "minItems": 0, "type": "array" }, + "cluster_size": { + "default": 1, + "description": "The number of Linode instance nodes deployed to the Managed Database, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` node.", + "enum": [ + 1, + 2, + 3 + ], + "example": "{{cluster_size}}", + "type": "integer", + "x-linode-cli-display": 5 + }, "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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification, or accept different values and ranges. Currently, only the parameters and settings covered 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.", @@ -30512,7 +31945,7 @@ "example": "+03:00", "maxLength": 100, "minLength": 2, - "pattern": "^([-+][\\\\d:]*|[\\\\w/]*)$", + "pattern": "^([-+][\\d:]*|[\\w/]*)$", "type": "string" }, "group_concat_max_len": { @@ -30619,7 +32052,7 @@ "type": "integer" }, "internal_tmp_mem_storage_engine": { - "description": "The storage engine for in-memory internal temporary tables.", + "description": "The storage engine for in-memory internal temporary tables, either `TempTable` or `MEMORY`.", "enum": [ "TempTable", "MEMORY" @@ -30665,7 +32098,16 @@ "minimum": 1, "type": "integer" }, + "sort_buffer_size": { + "default": 262144, + "description": "Sort buffer size in bytes for ORDER BY optimization.", + "example": 262244, + "maximum": 1073741824, + "minimum": 32768, + "type": "integer" + }, "sql_mode": { + "default": "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES", "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, @@ -30673,6 +32115,7 @@ "type": "string" }, "sql_require_primary_key": { + "default": true, "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" @@ -30717,7 +32160,7 @@ }, "private_network": { "additionalProperties": false, - "description": "__Beta__ Restricts access on a MySQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster.", + "description": "Restricts access on a MySQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. You can only assign VPCs that are in the same region as the database cluster.", "nullable": true, "properties": { "public_access": { @@ -30737,13 +32180,10 @@ "type": "integer" } }, - "type": "object", - "x-akamai": { - "status": "BETA" - } + "type": "object" }, "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.\n\n- Needs to be a Linode Type with more disk space than your current Linode.\n\n- 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.\n\n- You can't update the `allow_list` and set a new `type` in the same request.\n\n- 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.", + "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.\n\n- Needs to be a Linode type with more disk space than your current Linode.\n\n- 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.\n\n- You can't update the `allow_list` and set a new `type` in the same request.\n\n- 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" }, @@ -30759,10 +32199,9 @@ "type": "integer" }, "duration": { - "description": "The maximum maintenance window time in hours.", - "example": 3, - "maximum": 3, - "minimum": 1, + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, "type": "integer" }, "frequency": { @@ -30791,7 +32230,6 @@ "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" }, @@ -30801,9 +32239,8 @@ "type": "string" }, "planned_for": { - "description": "The date and time a maintenance update will be applied.", + "description": "The time when a maintenance update will be applied.", "example": "2024-10-14T19:55:12", - "format": "date-time", "nullable": true, "type": "string" } @@ -30934,7 +32371,7 @@ "updated": "2022-01-01T00:01:01", "updates": { "day_of_week": 1, - "duration": 3, + "duration": 4, "frequency": "weekly", "hour_of_day": 0, "pending": [] @@ -30975,13 +32412,12 @@ "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`.", + "description": "__Read-only__ Whether the Managed Databases is encrypted. Currently the only possible value is `true`.", "example": true, "readOnly": true, "type": "boolean" @@ -31026,7 +32462,7 @@ "example": "+03:00", "maxLength": 100, "minLength": 2, - "pattern": "^([-+][\\\\d:]*|[\\\\w/]*)$", + "pattern": "^([-+][\\d:]*|[\\w/]*)$", "type": "string" }, "group_concat_max_len": { @@ -31133,7 +32569,7 @@ "type": "integer" }, "internal_tmp_mem_storage_engine": { - "description": "The storage engine for in-memory internal temporary tables.", + "description": "The storage engine for in-memory internal temporary tables, either `TempTable` or `MEMORY`.", "enum": [ "TempTable", "MEMORY" @@ -31179,7 +32615,16 @@ "minimum": 1, "type": "integer" }, + "sort_buffer_size": { + "default": 262144, + "description": "Sort buffer size in bytes for ORDER BY optimization.", + "example": 262244, + "maximum": 1073741824, + "minimum": 32768, + "type": "integer" + }, "sql_mode": { + "default": "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES", "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, @@ -31187,6 +32632,7 @@ "type": "string" }, "sql_require_primary_key": { + "default": true, "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" @@ -31218,16 +32664,15 @@ }, "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.", + "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 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", + "example": "2024-10-14T19:55:12", "type": "string" }, "source": { - "description": "The instance id of the database that was forked from.", + "description": "The unique identifier for the database that was forked from.", "example": 176881, "type": "integer" } @@ -31274,13 +32719,14 @@ "type": "array" }, "primary": { - "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "format": "hostname", "nullable": true, "type": "string" }, "standby": { - "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-primary-private.servers.linodedb.net", "nullable": true, "type": "string" @@ -31311,6 +32757,13 @@ "x-linode-filterable": true }, "members": { + "additionalProperties": { + "enum": [ + "primary", + "failover" + ], + "type": "string" + }, "description": "__Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`.", "example": { "45.56.110.70": "primary", @@ -31320,14 +32773,14 @@ "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", + "description": "__Read-only__ The oldest time to which a MySQL or PostgreSQL database can be restored. For Valkey databases, this is `null`.", + "example": "2024-10-03T20:48:05", + "nullable": true, "readOnly": true, "type": "string" }, "platform": { - "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service.", + "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service, either `rdbms-legacy` or `rdbms-default`.", "enum": [ "rdbms-legacy", "rdbms-default" @@ -31351,30 +32804,27 @@ }, "private_network": { "additionalProperties": false, - "description": "__Beta__ Restricts access to a MySQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured.", + "description": "Restricts access on a Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. Displayed as `null` if no VPC is configured.", "nullable": true, "properties": { "public_access": { "default": false, - "description": "When set to `true`, clients outside of the VPC can connect to the database. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "description": "Set to `true` allows clients outside of the VPC to connect to the database using a public IP address.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", "example": true, "type": "boolean" }, "subnet_id": { - "description": "The unique identifier of a specific subnet, in the VPC (`vpc_id`) where the Managed Database can be accessed.", + "description": "The VPC's `subnet_id` used to control access to the database.", "example": 456, "type": "integer" }, "vpc_id": { - "description": "The unique identifier of the VPC where this database exists.", + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database.", "example": 123, "type": "integer" } }, - "type": "object", - "x-akamai": { - "status": "BETA" - } + "type": "object" }, "region": { "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", @@ -31395,15 +32845,13 @@ "type": "boolean" }, "status": { - "description": "__Filterable__, __Read-only__ The operating status of the Managed Database.", + "description": "__Filterable__, __Read-only__ The operating status of the Managed Database, which can be one of the following: `provisioning`, `active`, `suspending`, `suspended`, `resuming`, `updating`, or `resizing`.", "enum": [ "provisioning", "active", "suspending", "suspended", "resuming", - "failed", - "degraded", "updating", "resizing" ], @@ -31418,8 +32866,6 @@ "x-linode-cli-color": { "active": "green", "default_": "white", - "degraded": "red", - "failed": "red", "provisioning": "yellow", "restoring": "yellow", "resuming": "yellow" @@ -31434,7 +32880,7 @@ "type": "integer" }, "type": { - "description": "__Filterable__ The Linode Instance type used by the Managed Database for its nodes.", + "description": "__Filterable__ The `id` of the Linode Instance type used by the Managed Database for its nodes.", "example": "g6-dedicated-2", "type": "string", "x-akamai": { @@ -31448,7 +32894,6 @@ "updated": { "description": "__Read-only__ When this Managed Database was last updated.", "example": "2022-01-01T00:01:01", - "format": "date-time", "readOnly": true, "type": "string" }, @@ -31464,10 +32909,9 @@ "type": "integer" }, "duration": { - "description": "The maximum maintenance window time in hours.", - "example": 3, - "maximum": 3, - "minimum": 1, + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, "type": "integer" }, "frequency": { @@ -31496,7 +32940,6 @@ "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" }, @@ -31506,9 +32949,8 @@ "type": "string" }, "planned_for": { - "description": "The date and time a maintenance update will be applied.", + "description": "The time when a maintenance update will be applied.", "example": "2024-10-14T19:55:12", - "format": "date-time", "nullable": true, "type": "string" } @@ -31523,8 +32965,9 @@ "type": "object" }, "used_disk_size_gb": { - "description": "__Read-only__ The amount of space currently in use in the database, in GB.", + "description": "__Read-only__ The amount of space currently in use in the database, in GB. This is `null` for Valkey", "example": 2, + "nullable": true, "readOnly": true, "type": "integer" }, @@ -31564,6 +33007,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -31628,7 +33072,7 @@ ] }, "delete": { - "description": "Remove a MySQL Managed Database from your account. The database's status can be `active`, `failed`, or `degraded`.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-delete 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Deletes a MySQL Managed Database from your account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-delete 123\n```\n\n[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/delete-databases-mysql-instance" @@ -31665,6 +33109,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -31770,7 +33215,7 @@ }, "/{apiVersion}/databases/mysql/instances/{mysqlInstanceId}/credentials": { "get": { - "description": "Display the root username and password for an accessible MySQL Managed Database. The database's status needs to be `active`.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-creds-view 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Display the root username and password for an accessible MySQL Managed Database. The database's status can't be `suspended`.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-creds-view 123\n```\n\n[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-mysql-instance-credentials" @@ -31826,6 +33271,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -31931,7 +33377,7 @@ }, "/{apiVersion}/databases/mysql/instances/{mysqlInstanceId}/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.\n\n- The database's status needs to be `active`.\n\n- It may take several seconds for credentials to reset.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-creds-reset 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n- The database's status can't be `suspended`.\n\n- It may take several seconds for credentials to reset.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-creds-reset 123\n```\n\n[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-databases-mysql-instance-credentials-reset" @@ -31968,6 +33414,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -32073,7 +33520,7 @@ }, "/{apiVersion}/databases/mysql/instances/{mysqlInstanceId}/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.\n\n- The database's status needs to be `active`.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_upgrade` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-patch 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n- The database's status can't be `suspended`.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_upgrade` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-patch 123\n```\n\n[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-databases-mysql-instance-patch" @@ -32110,6 +33557,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -32215,7 +33663,7 @@ }, "/{apiVersion}/databases/mysql/instances/{mysqlInstanceId}/resume": { "post": { - "description": "Resume a suspended MySQL Managed Database from your account. This resumes billing for the cluster.\n\n- The database's status needs to be `suspended`.\n\n- A successful request triggers a `database_resume` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-resume 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Resume a suspended MySQL Managed Database from your account. This resumes billing for the cluster.\n\n- The database's status needs to be `suspended`.\n\n- A successful request triggers a `database_resume` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-resume 123\n```\n\n[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/resume-databases-mysql-instance" @@ -32236,7 +33684,7 @@ } } }, - "description": "MySQL Manged Database successfully resumed." + "description": "MySQL Managed Database successfully resumed." }, "default": { "content": { @@ -32252,6 +33700,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -32356,7 +33805,7 @@ }, "/{apiVersion}/databases/mysql/instances/{mysqlInstanceId}/ssl": { "get": { - "description": "Display the SSL CA certificate for an accessible MySQL Managed Database. The database's status needs to be `active`.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-ssl-cert 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Display the SSL CA certificate for an accessible MySQL Managed Database.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-ssl-cert 123\n```\n\n[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-mysql-instance-ssl" @@ -32404,6 +33853,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -32509,7 +33959,7 @@ }, "/{apiVersion}/databases/mysql/instances/{mysqlInstanceId}/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.\n\n- The database's status needs to be `active`.\n\n- Akamai deletes suspended clusters after 180 days.\n\n- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-suspend 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n- Akamai deletes suspended clusters after 180 days.\n\n- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases mysql-suspend 123\n```\n\n[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/suspend-databases-mysql-instance" @@ -32546,6 +33996,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -32650,7 +34101,7 @@ }, "/{apiVersion}/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).\n\n> \ud83d\udcd8\n>\n> Aiven may offer other parameters, but Akamai Managed Databases only supports the ones listed in this operation.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgres-config\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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).\n\n> \ud83d\udcd8\n>\n> Aiven may offer other parameters, but Akamai Managed Databases only supports the ones listed in this operation.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgres-config\n```\n\n[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-postgresql-config" @@ -32922,16 +34373,6 @@ "requires_restart": false, "type": "string" }, - "synchronous_replication": { - "description": "Synchronous replication type. Note that the service plan also needs to support synchronous replication.", - "enum": [ - "off", - "quorum" - ], - "example": "quorum", - "requires_restart": false, - "type": "string" - }, "temp_file_limit": { "description": "PostgreSQL temporary file limit in KiB, -1 for unlimited", "example": 5000000, @@ -33023,6 +34464,16 @@ "requires_restart": false, "type": "number" }, + "synchronous_replication": { + "description": "Synchronous replication type. Note that the service plan also needs to support synchronous replication.", + "enum": [ + "off", + "quorum" + ], + "example": "quorum", + "requires_restart": false, + "type": "string" + }, "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, @@ -33452,8 +34903,11 @@ "type": "string" }, "enum": { - "description": "Specific values available for use as this parameter.", - "type": "string" + "description": "Possible values of the `default_toast_compression` parameter.", + "items": { + "type": "string" + }, + "type": "array" }, "example": { "description": "One of the `enum` values available for use.", @@ -33511,7 +34965,7 @@ }, "example": { "description": "An example boolean value for this parameter.", - "type": "string" + "type": "boolean" }, "requires_restart": { "description": "Whether a change to this parameter requires a restart of the PostgreSQL database.", @@ -33936,8 +35390,11 @@ "type": "string" }, "enum": { - "description": "Specific values available for use as this parameter.", - "type": "string" + "description": "Possible values of the `password_encryption` parameter.", + "items": { + "type": "string" + }, + "type": "array" }, "example": { "description": "One of the `enum` values available for use.", @@ -33994,7 +35451,7 @@ "type": "string" }, "example": { - "description": "An example value for this parameter, using the required `pattern`.", + "description": "An example value for this parameter following the `pattern`.", "type": "string" }, "maxLength": { @@ -34026,7 +35483,7 @@ }, "example": { "description": "An example boolean value for this parameter.", - "type": "string" + "type": "boolean" }, "requires_restart": { "description": "Whether a change to this parameter requires a restart of the PostgreSQL database.", @@ -34079,35 +35536,11 @@ "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" - }, - "synchronous_replication": { - "additionalProperties": false, - "description": "Settings available to configure `synchronous_replication`, 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" + "description": "Possible values of the `pg_stat_statements.track` parameter.", + "items": { + "type": "string" + }, + "type": "array" }, "example": { "description": "One of the `enum` values available for use.", @@ -34164,7 +35597,7 @@ "type": "string" }, "example": { - "description": "An example value for this parameter, using the required `pattern`.", + "description": "An example value for this parameter following the `pattern`.", "type": "string" }, "maxLength": { @@ -34226,8 +35659,11 @@ "type": "string" }, "enum": { - "description": "Specific values available for use as this parameter.", - "type": "string" + "description": "Possible values of the `track_commit_timestamp` parameter.", + "items": { + "type": "string" + }, + "type": "array" }, "example": { "description": "One of the `enum` values available for use.", @@ -34253,8 +35689,11 @@ "type": "string" }, "enum": { - "description": "Specific values available for use as this parameter.", - "type": "string" + "description": "Possible values of the `track_functions` parameter.", + "items": { + "type": "string" + }, + "type": "array" }, "example": { "description": "One of the `enum` values available for use.", @@ -34280,8 +35719,11 @@ "type": "string" }, "enum": { - "description": "Specific values available for use as this parameter.", - "type": "string" + "description": "Possible values of the `track_io_timing` parameter.", + "items": { + "type": "string" + }, + "type": "array" }, "example": { "description": "One of the `enum` values available for use.", @@ -34359,12 +35801,16 @@ "additionalProperties": false, "description": "Parameter used to enable the `pg_stat_monitor` extension for a PostgreSQL cluster, per Aiven's specifications.", "properties": { + "default": { + "description": "A default value of this parameter.", + "type": "boolean" + }, "description": { "description": "The description for this parameter.", - "example": { - "description": "An example boolean value for this parameter.", - "type": "string" - }, + "type": "string" + }, + "example": { + "description": "An example boolean value for this parameter.", "type": "string" }, "requires_restart": { @@ -34386,14 +35832,14 @@ "additionalProperties": false, "description": "Settings available to configure the `max_failover_replication_time_lag`, per Aiven's specifications.", "properties": { + "default": { + "description": "A default value of this parameter.", + "type": "integer" + }, "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" @@ -34426,7 +35872,7 @@ }, "example": { "description": "An example value for this parameter.", - "type": "integer" + "type": "number" }, "maximum": { "description": "The maximum value allowed for this parameter.", @@ -34447,6 +35893,36 @@ }, "type": "object" }, + "synchronous_replication": { + "additionalProperties": false, + "description": "Settings available to configure `synchronous_replication`, per Aiven's specifications.", + "properties": { + "description": { + "description": "The description for this parameter.", + "type": "string" + }, + "enum": { + "description": "Possible values of the `synchronous_replication` parameter.", + "items": { + "type": "string" + }, + "type": "array" + }, + "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" + }, "work_mem": { "additionalProperties": false, "description": "Parameters used to set up `work_mem`, per Aiven's specifications.", @@ -34502,6 +35978,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -34593,7 +36070,7 @@ }, "/{apiVersion}/databases/postgresql/instances": { "post": { - "description": "**Provision a PostgreSQL Managed Database**\n\nUse this operation to create a new PostgreSQL Managed Database.\n\n- New instances can take 10 to 15 minutes to deploy.\n\n- 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.\n\n- 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.\n\n- 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.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n**Beta** **Virtual Private Cloud (VPC) support**\n\nYou can create a PostgreSQL Managed Database in a VPC using the `private_network` object in the request. Talk to your Akamai account team for more details.\n\n> \ud83d\udcd8\n>\n> Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.\n\n**Restore a PostgreSQL Managed Database**\n\nInclude the `fork` object in the request to target a backed-up database. The target PostgreSQL database's status can be `active`, `degraded`, or `failed`.\n\n> \ud83d\udcd8\n>\n> 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.\n\n> \ud83d\udc4d There's a tutorial\n>\n> We offer an example API workflow you can follow to [restore a Managed Database backup](https://techdocs.akamai.com/linode-api/reference/restore-a-managed-database-backup).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `account_database_creator`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-create \\\n --label example-db \\\n --region us-east \\\n --type g6-dedicated-2 \\\n --cluster_size 3 \\\n --engine postgresql/13.2 \\\n --engine_config.shared_buffers_percentage 41.5 \\\n --engine_config.pg.autovacuum_analyze_scale_factor 0.0 \\\n --engine_config.pg.autovacuum_vacuum_cost_delay 60 \\\n --engine_config.pg.pg_partman_bgw.interval 3600 \\\n --engine_config.pg.pg_partman_bgw.role myrolename \\\n --engine_config.pglookout.max_failover_replication_time_lag 60 \\\n --ssl_connection true \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "**Provision a PostgreSQL Managed Database**\n\nUse this operation to create a new PostgreSQL Managed Database.\n\n- New instances can take 10 to 15 minutes to deploy.\n\n- 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.\n\n- 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.\n\n- 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.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n- You can create a PostgreSQL Managed Database in a VPC using the `private_network` object in the request.\n\n> \ud83d\udcd8\n>\n> Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.\n\n**Restore a PostgreSQL Managed Database**\n\nInclude the `fork` object in the request to target a backed-up database. The only required value is `source`. If you provide other values, the forked cluster will use those settings. You can't change `engine`.\n\n> \ud83d\udcd8\n>\n> 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.\n\n> \ud83d\udc4d There's a tutorial\n>\n> We offer an example API workflow you can follow to [restore a Managed Database backup](https://techdocs.akamai.com/linode-api/reference/restore-a-managed-database-backup).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `account_database_creator`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-create \\\n --label example-db \\\n --region us-east \\\n --type g6-dedicated-2 \\\n --cluster_size 3 \\\n --engine postgresql/13.2 \\\n --engine_config.shared_buffers_percentage 41.5 \\\n --engine_config.pg.autovacuum_analyze_scale_factor 0.0 \\\n --engine_config.pg.autovacuum_vacuum_cost_delay 60 \\\n --engine_config.pg.pg_partman_bgw.interval 3600 \\\n --engine_config.pg.pg_partman_bgw.role myrolename \\\n --engine_config.pglookout.max_failover_replication_time_lag 60 \\\n --ssl_connection true \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24\n```\n\n[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-databases-postgre-sql-instances" @@ -34602,604 +36079,1204 @@ "requestBody": { "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", - "synchronous_replication": "quorum", - "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", - "private_network": { - "public_access": false, - "subnet_id": 456, - "vpc_id": 123 + "examples": { + "create-postgresql-cluster": { + "summary": "Create PostgreSQL database", + "value": { + "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": "off", + "track_functions": "all", + "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, + "synchronous_replication": "quorum", + "work_mem": 4 + }, + "label": "example-db", + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, + "region": "us-east", + "ssl_connection": true, + "type": "g6-dedicated-2" + } }, - "region": "us-east", - "ssl_connection": true, - "type": "g6-dedicated-2" + "fork-postgresql-cluster": { + "summary": "Restore PostgreSQL database", + "value": { + "allow_list": [ + "192.0.2.61/24", + "192.0.2.124/24" + ], + "cluster_size": 3, + "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": "off", + "track_functions": "all", + "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, + "synchronous_replication": "quorum", + "work_mem": 4 + }, + "fork": { + "restore_time": "2024-10-14T19:55:12", + "source": 176881 + }, + "label": "example-db", + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, + "region": "us-east", + "ssl_connection": true, + "type": "g6-dedicated-2" + } + } }, "schema": { "additionalProperties": false, "description": "Managed PostgreSQL Database request object.", - "properties": { - "allow_list": { - "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` 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": { + "oneOf": [ + { "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.\n\n> \ud83d\udcd8\n>\n> 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": { + "allow_list": { + "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` node.", + "enum": [ + 1, + 2, + 3 + ], + "example": 3, + "type": "integer", + "x-linode-cli-display": 5 + }, + "engine": { + "description": "The `id` of the Managed Database engine. To get the available values, run the [List Managed Databases engines](https://techdocs.akamai.com/linode-api/reference/get-databases-engines) operation.", + "example": "postgresql/13.2", + "type": "string" + }, + "engine_config": { "additionalProperties": false, - "description": "PostgreSQL-specific advanced configuration parameters.", + "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.\n\n> \ud83d\udcd8\n>\n> 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": { - "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" + "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, either `lz4` or `pglz`.", + "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": "scram-sha-256", + "description": "Chooses the algorithm for encrypting passwords, either `scram-sha-256` or `md5`.", + "enum": [ + "scram-sha-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" + }, + "synchronous_replication": { + "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", + "enum": [ + "quorum", + "off" + ], + "example": "quorum", + "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": "Whether to record the commit time of transactions, either `on` or `off`.", + "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": "Whether to time database I/O calls, either `on` or `off`. It's `off` by default because it repeatedly queries 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" }, - "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" + "pg_stat_monitor_enable": { + "default": false, + "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" }, - "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" + "pglookout": { + "additionalProperties": false, + "description": "Parameter used to apply PGLookout settings.", + "properties": { + "max_failover_replication_time_lag": { + "default": 60, + "description": "Number of seconds of primary unavailability before triggering database failover to standby.", + "example": 10, + "maximum": 999999, + "minimum": 10, + "type": "integer" + } + }, + "type": "object" }, - "bgwriter_delay": { - "default": 200, - "description": "Specifies the delay between activity rounds for the background writer in milliseconds.", - "example": 200, - "maximum": 10000, + "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": "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.", + "synchronous_replication": { + "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", "enum": [ - "lz4", - "pglz" + "quorum", + "off" ], - "example": "lz4", + "example": "quorum", "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, + "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" - }, - "jit": { - "description": "Controls system-wide use of Just-in-Time Compilation (JIT).", + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/database-postgresql-engine-config.yaml" + } + }, + "label": { + "description": "__Filterable__ A name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either engine type.", + "example": "example-db", + "maxLength": 32, + "minLength": 3, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a PostgreSQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. You can only assign VPCs that are in the same region as the database cluster.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` to allow clients outside of the VPC to connect to the database using a public IP address. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", "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, + "subnet_id": { + "description": "If the `vpc_id` includes subnets, you can include the one you want to limit access to the database. From the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation, store the `id` for the applicable `subnets` object.", + "example": 456, "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, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the `id` for the applicable VPC.", + "example": 123, "type": "integer" + } + }, + "type": "object" + }, + "region": { + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", + "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" + }, + "type": { + "description": "__Filterable__ The `id` of 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 + } + }, + "required": [ + "label", + "type", + "engine", + "region" + ], + "title": "Create PostgreSQL database", + "type": "object", + "x-akamai": { + "file-path": "schemas/database-postgresql-create.yaml" + } + }, + { + "additionalProperties": false, + "properties": { + "allow_list": { + "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` node.", + "enum": [ + 1, + 2, + 3 + ], + "example": 3, + "type": "integer", + "x-linode-cli-display": 5 + }, + "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.\n\n> \ud83d\udcd8\n>\n> 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, either `lz4` or `pglz`.", + "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": "scram-sha-256", + "description": "Chooses the algorithm for encrypting passwords, either `scram-sha-256` or `md5`.", + "enum": [ + "scram-sha-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" + }, + "synchronous_replication": { + "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", + "enum": [ + "quorum", + "off" + ], + "example": "quorum", + "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": "Whether to record the commit time of transactions, either `on` or `off`.", + "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": "Whether to time database I/O calls, either `on` or `off`. It's `off` by default because it repeatedly queries 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_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, + "pg_stat_monitor_enable": { + "default": false, + "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" }, - "pg_stat_monitor.pgsm_max_buckets": { - "description": "Sets the maximum number of buckets.", - "example": 10, - "maximum": 10, - "minimum": 1, - "type": "integer" + "pglookout": { + "additionalProperties": false, + "description": "Parameter used to apply PGLookout settings.", + "properties": { + "max_failover_replication_time_lag": { + "default": 60, + "description": "Number of seconds of primary unavailability before triggering database failover to standby.", + "example": 10, + "maximum": 999999, + "minimum": 10, + "type": "integer" + } + }, + "type": "object" }, - "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" + "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" }, "synchronous_replication": { "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", "enum": [ "quorum", - false + "off" ], "example": "quorum", "type": "string" }, - "temp_file_limit": { - "description": "PostgreSQL temporary file limit in KB. Set to `-1` for unlimited.", - "example": 5000000, - "maximum": 2147483647, - "minimum": -1, + "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" - }, - "timezone": { - "description": "PostgreSQL service time zone.", - "example": "Europe/Helsinki", - "maxLength": 64, - "pattern": "^[\\\\w/]*$", + } + }, + "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.", + "properties": { + "restore_time": { + "description": "A specific database timestamp to restore from. Run the [List Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-instances) operation and check the `oldest_restore_time` value of the source database. The value used here needs to be more recent than `oldest_restore_time`. If you don't provide this value, the fork is created from the newest full backup plus incremental.", + "example": "2024-10-14T19:55:12", "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, + "source": { + "description": "The unique identifier 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 name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either engine type.", + "example": "example-db", + "maxLength": 32, + "minLength": 3, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a PostgreSQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. You can only assign VPCs that are in the same region as the database cluster.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` to allow clients outside of the VPC to connect to the database using a public IP address. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" }, - "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, + "subnet_id": { + "description": "If the `vpc_id` includes subnets, you can include the one you want to limit access to the database. From the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation, store the `id` for the applicable `subnets` object.", + "example": 456, "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, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the `id` for the applicable VPC.", + "example": 123, "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 primary unavailability before triggering database failover to standby.", - "example": 10, - "maximum": 999999, - "minimum": 10, - "type": "integer" - } + "region": { + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", + "example": "us-east", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] }, - "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.\n\n- If you include this object, all other fields are optional.\n\n- 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" + "x-linode-cli-display": 3, + "x-linode-filterable": true }, - "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 name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either engine type.", - "example": "{{label}}", - "maxLength": 32, - "minLength": 3, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "private_network": { - "additionalProperties": false, - "description": "__Beta__ Restricts access on a PostgreSQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster.", - "nullable": true, - "properties": { - "public_access": { - "default": false, - "description": "Set to `true` to allow clients outside of the VPC to connect to the database using a public IP address. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `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" }, - "subnet_id": { - "description": "If the `vpc_id` includes subnets, you can include the one you want to limit access to the database. From the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation, store the `id` for the applicable `subnets` object.", - "example": 456, - "type": "integer" - }, - "vpc_id": { - "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the `id` for the applicable VPC.", - "example": 123, - "type": "integer" + "type": { + "description": "__Filterable__ The `id` of 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 } }, + "required": [ + "fork" + ], + "title": "Restore PostgreSQL database", "type": "object", "x-akamai": { - "status": "BETA" + "file-path": "schemas/database-postgresql-restore.yaml" } - }, - "region": { - "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", - "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": { @@ -35266,12 +37343,11 @@ "pg_stat_monitor.pgsm_enable_query_plan": true, "pg_stat_monitor.pgsm_max_buckets": 10, "pg_stat_statements.track": "all", - "synchronous_replication": "quorum", "temp_file_limit": 5000000, "timezone": "Europe/Helsinki", "track_activity_query_size": 1024, - "track_commit_timestamp": true, - "track_functions": "off", + "track_commit_timestamp": "off", + "track_functions": "all", "track_io_timing": "off", "wal_sender_timeout": 60000, "wal_writer_delay": 200 @@ -35281,6 +37357,7 @@ "max_failover_replication_time_lag": 10 }, "shared_buffers_percentage": 41.5, + "synchronous_replication": "quorum", "work_mem": 4 }, "fork": { @@ -35297,7 +37374,6 @@ "45.56.110.70": "primary", "45.79.159.239": "failover" }, - "oldest_restore_time": "2025-01-01T00:01:01", "platform": "rdbms-default", "port": 3306, "private_network": { @@ -35313,7 +37389,7 @@ "updated": "2025-01-01T00:01:01", "updates": { "day_of_week": 1, - "duration": 3, + "duration": 4, "frequency": "weekly", "hour_of_day": 0, "pending": [] @@ -35352,7 +37428,7 @@ "x-linode-cli-display": 5 }, "connection_pool_port": { - "description": "__Read-only__ The port number used by PGBouncer connection pools. This only applies if you've [configured](https://techdocs.akamai.com/linode-api/reference/post-databases-postgresql-connection-pools) your PostgreSQL Managed Database to use PGBouncer connection pools.", + "description": "__Read-only__ The port number used by PGBouncer connection pools. This only applies if you've [configured](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-conn-pools) your PostgreSQL Managed Database to use PGBouncer connection pools.", "example": 123, "readOnly": true, "type": "integer" @@ -35360,13 +37436,12 @@ "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`.", + "description": "__Read-only__ Whether the Managed Databases is encrypted. Currently the only possible value is `true`.", "example": true, "readOnly": true, "type": "boolean" @@ -35497,7 +37572,7 @@ }, "default_toast_compression": { "default": "lz4", - "description": "Specifies the default TOAST compression method for values of compressible columns.", + "description": "Specifies the default TOAST compression method for values of compressible columns, either `lz4` or `pglz`.", "enum": [ "lz4", "pglz" @@ -35610,10 +37685,10 @@ "type": "integer" }, "password_encryption": { - "default": "md5", - "description": "Chooses the algorithm for encrypting passwords.", + "default": "scram-sha-256", + "description": "Chooses the algorithm for encrypting passwords, either `scram-sha-256` or `md5`.", "enum": [ - "scram-sh-256", + "scram-sha-256", "md5" ], "example": "scram-sha-256", @@ -35658,7 +37733,7 @@ "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", "enum": [ "quorum", - false + "off" ], "example": "quorum", "type": "string" @@ -35674,7 +37749,7 @@ "description": "PostgreSQL service time zone.", "example": "Europe/Helsinki", "maxLength": 64, - "pattern": "^[\\\\w/]*$", + "pattern": "^[\\w/]*$", "type": "string" }, "track_activity_query_size": { @@ -35685,7 +37760,7 @@ "type": "integer" }, "track_commit_timestamp": { - "description": "Record the commit time of transactions.", + "description": "Whether to record the commit time of transactions, either `on` or `off`.", "enum": [ "on", "off" @@ -35706,7 +37781,7 @@ }, "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.", + "description": "Whether to time database I/O calls, either `on` or `off`. It's `off` by default because it repeatedly queries the operating system for the current time, which may cause significant overhead on some platforms.", "enum": [ "on", "off" @@ -35733,6 +37808,7 @@ "type": "object" }, "pg_stat_monitor_enable": { + "default": false, "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" @@ -35742,6 +37818,7 @@ "description": "Parameter used to apply PGLookout settings.", "properties": { "max_failover_replication_time_lag": { + "default": 60, "description": "Number of seconds of primary unavailability before triggering database failover to standby.", "example": 10, "maximum": 999999, @@ -35758,6 +37835,15 @@ "minimum": 20, "type": "number" }, + "synchronous_replication": { + "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", + "enum": [ + "quorum", + "off" + ], + "example": "quorum", + "type": "string" + }, "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, @@ -35774,16 +37860,15 @@ }, "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.", + "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 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", + "example": "2024-10-14T19:55:12", "type": "string" }, "source": { - "description": "The instance id of the database that was forked from.", + "description": "The unique identifier for the database that was forked from.", "example": 176881, "type": "integer" } @@ -35830,13 +37915,14 @@ "type": "array" }, "primary": { - "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "format": "hostname", "nullable": true, "type": "string" }, "standby": { - "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-primary-private.servers.linodedb.net", "nullable": true, "type": "string" @@ -35867,6 +37953,13 @@ "x-linode-filterable": true }, "members": { + "additionalProperties": { + "enum": [ + "primary", + "failover" + ], + "type": "string" + }, "description": "__Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`.", "example": { "45.56.110.70": "primary", @@ -35876,7 +37969,7 @@ "type": "object" }, "platform": { - "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service.", + "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service, either `rdbms-legacy` or `rdbms-default`.", "enum": [ "rdbms-legacy", "rdbms-default" @@ -35898,6 +37991,30 @@ "readOnly": true, "type": "integer" }, + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` allows clients outside of the VPC to connect to the database using a public IP address.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The VPC's `subnet_id` used to control access to the database.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database.", + "example": 123, + "type": "integer" + } + }, + "type": "object" + }, "region": { "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", "example": "us-east", @@ -35917,15 +38034,13 @@ "type": "boolean" }, "status": { - "description": "__Filterable__, __Read-only__ The operating status of the Managed Database.", + "description": "__Filterable__, __Read-only__ The operating status of the Managed Database, which can be one of the following: `provisioning`, `active`, `suspending`, `suspended`, `resuming`, `updating`, or `resizing`.", "enum": [ "provisioning", "active", "suspending", "suspended", "resuming", - "failed", - "degraded", "updating", "resizing" ], @@ -35940,8 +38055,6 @@ "x-linode-cli-color": { "active": "green", "default_": "white", - "degraded": "red", - "failed": "red", "provisioning": "yellow", "restoring": "yellow", "resuming": "yellow" @@ -35956,7 +38069,7 @@ "type": "integer" }, "type": { - "description": "__Filterable__ The Linode Instance type used by the Managed Database for its nodes.", + "description": "__Filterable__ The `id` of the Linode Instance type used by the Managed Database for its nodes.", "example": "g6-dedicated-2", "type": "string", "x-akamai": { @@ -35970,7 +38083,6 @@ "updated": { "description": "__Read-only__ When this Managed Database was last updated.", "example": "2022-01-01T00:01:01", - "format": "date-time", "readOnly": true, "type": "string" }, @@ -35986,10 +38098,9 @@ "type": "integer" }, "duration": { - "description": "The maximum maintenance window time in hours.", - "example": 3, - "maximum": 3, - "minimum": 1, + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, "type": "integer" }, "frequency": { @@ -36018,7 +38129,6 @@ "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" }, @@ -36028,9 +38138,8 @@ "type": "string" }, "planned_for": { - "description": "The date and time a maintenance update will be applied.", + "description": "The time when a maintenance update will be applied.", "example": "2024-10-14T19:55:12", - "format": "date-time", "nullable": true, "type": "string" } @@ -36045,8 +38154,9 @@ "type": "object" }, "used_disk_size_gb": { - "description": "__Read-only__ The amount of space currently in use in the database, in GB.", + "description": "__Read-only__ The amount of space currently in use in the database, in GB. This is `null` for Valkey", "example": 2, + "nullable": true, "readOnly": true, "type": "integer" }, @@ -36086,6 +38196,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -36150,7 +38261,7 @@ ] }, "get": { - "description": "Display all accessible PostgreSQL Managed Databases.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Display all accessible PostgreSQL Managed Databases.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-list\n```\n\n[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-postgre-sql-instances" @@ -36242,12 +38353,11 @@ "pg_stat_monitor.pgsm_enable_query_plan": true, "pg_stat_monitor.pgsm_max_buckets": 10, "pg_stat_statements.track": "all", - "synchronous_replication": "quorum", "temp_file_limit": 5000000, "timezone": "Europe/Helsinki", "track_activity_query_size": 1024, - "track_commit_timestamp": true, - "track_functions": "off", + "track_commit_timestamp": "off", + "track_functions": "all", "track_io_timing": "off", "wal_sender_timeout": 60000, "wal_writer_delay": 200 @@ -36257,11 +38367,12 @@ "max_failover_replication_time_lag": 10 }, "shared_buffers_percentage": 41.5, + "synchronous_replication": "quorum", "work_mem": 4 }, "fork": { "restore_time": "2024-10-14T19:55:12", - "source": "176881" + "source": 176881 }, "hosts": { "endpoints": [ @@ -36310,7 +38421,7 @@ "updated": "2022-01-01T00:01:01", "updates": { "day_of_week": 1, - "duration": 3, + "duration": 4, "frequency": "weekly", "hour_of_day": 0, "pending": [] @@ -36324,857 +38435,853 @@ "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, + "properties": { + "data": { + "description": "A list of objects returned for a response.", + "items": { + "additionalProperties": false, + "description": "Managed PostgreSQL Databases object.", + "properties": { + "allow_list": { + "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` node.", + "enum": [ + 1, + 2, + 3 + ], + "example": 3, + "type": "integer", + "x-linode-cli-display": 5 + }, + "connection_pool_port": { + "description": "The port number used by PGBouncer connection pools. This only applies if you've [configured](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-conn-pools) your PostgreSQL Managed Database to use PGBouncer connection pools.", + "example": 123, + "type": "integer" + }, + "created": { + "description": "__Read-only__ When this Managed Database was created.", + "example": "2022-01-01T00:01:01", + "readOnly": true, + "type": "string" + }, + "encrypted": { + "default": true, + "description": "__Read-only__ Whether the Managed Databases is encrypted. Currently the only possible value is `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": "Managed PostgreSQL Databases object.", + "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.\n\n> \ud83d\udcd8\n>\n> 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": { - "allow_list": { - "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` node.", - "enum": [ - 1, - 2, - 3 - ], - "example": 3, - "type": "integer", - "x-linode-cli-display": 5 - }, - "connection_pool_port": { - "description": "The port number used by PGBouncer connection pools. This only applies if you've [configured](https://techdocs.akamai.com/linode-api/reference/post-databases-postgresql-connection-pools) your PostgreSQL Managed Database to use PGBouncer connection pools.", - "example": 123, - "type": "integer" - }, - "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": { + "pg": { "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.\n\n> \ud83d\udcd8\n>\n> 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.", + "description": "PostgreSQL-specific advanced configuration parameters.", "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" - }, - "synchronous_replication": { - "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", - "enum": [ - "quorum", - false - ], - "example": "quorum", - "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" + "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" }, - "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" + "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" }, - "pglookout": { - "additionalProperties": false, - "description": "Parameter used to apply PGLookout settings.", - "properties": { - "max_failover_replication_time_lag": { - "description": "Number of seconds of primary unavailability before triggering database failover to standby.", - "example": 10, - "maximum": 999999, - "minimum": 10, - "type": "integer" - } - }, - "type": "object" + "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" }, - "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, + "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" }, - "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, + "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" - } - }, - "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, + "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" - } - }, - "type": "object" - }, - "hosts": { - "additionalProperties": false, - "description": "__Read-only__ The primary hostname and standby read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", - "properties": { - "endpoints": { - "description": "__Read-only__ A structured inventory of all connection points for a Managed Database instance.", - "items": { - "additionalProperties": false, - "properties": { - "address": { - "description": "The DNS hostname that resolves to either the `primary` or `standby` host, based on this object's `role`.", - "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", - "type": "string" - }, - "port": { - "description": "The port number used for the connection.", - "example": 3306, - "type": "integer" - }, - "public_access": { - "description": "Whether `public_access` has been enabled for the connection point.", - "example": false, - "type": "boolean" - }, - "role": { - "description": "Whether the endpoint connects to the `primary` or `standby` hostname, as defined in `hosts`.", - "enum": [ - "primary", - "standby" - ], - "example": "primary", - "type": "string" - } - }, - "type": "object" - }, - "readOnly": true, - "type": "array" }, - "primary": { - "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", - "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", - "nullable": true, - "type": "string" + "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" }, - "standby": { - "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", - "example": "lin-123-456-mysql-primary-private.servers.linodedb.net", - "nullable": true, + "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, either `lz4` or `pglz`.", + "enum": [ + "lz4", + "pglz" + ], + "example": "lz4", "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 name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either 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" - }, - "private_network": { - "additionalProperties": false, - "description": "__Beta__ Restricts access to a PostgreSQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured.", - "nullable": true, - "properties": { - "public_access": { - "default": false, - "description": "When set to `true`, clients outside of the VPC can connect to the database. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + }, + "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" }, - "subnet_id": { - "description": "The specific subnet, in the VPC (`vpc_id`) where the Managed Database cluster can be accessed.", - "example": 456, + "max_files_per_process": { + "description": "PostgreSQL maximum number of files that can be open per process.", + "example": 1024, + "maximum": 4096, + "minimum": 1000, "type": "integer" }, - "vpc_id": { - "description": "The unique identifier of the VPC where this database exists.", - "example": 123, + "max_locks_per_transaction": { + "description": "PostgreSQL maximum locks per transaction.", + "example": 1024, + "maximum": 6400, + "minimum": 64, "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "status": "BETA" - } - }, - "region": { - "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", - "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.", + }, + "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": 7, + "maximum": 43200000, "minimum": 1, "type": "integer" }, - "duration": { - "description": "The maximum maintenance window time in hours.", - "example": 3, - "maximum": 3, + "max_standby_streaming_delay": { + "description": "Maximum standby streaming delay in milliseconds.", + "example": 10, + "maximum": 43200000, "minimum": 1, "type": "integer" }, - "frequency": { - "default": "weekly", - "description": "How frequently maintenance occurs. Currently can only be `weekly`.", + "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": "scram-sha-256", + "description": "Chooses the algorithm for encrypting passwords, either `scram-sha-256` or `md5`.", "enum": [ - "weekly" + "scram-sha-256", + "md5" ], - "example": "weekly", + "example": "scram-sha-256", "type": "string" }, - "hour_of_day": { - "description": "The hour to begin maintenance based in UTC time.", - "example": 0, - "maximum": 23, + "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" + }, + "synchronous_replication": { + "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", + "enum": [ + "quorum", + "off" + ], + "example": "quorum", + "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": "Whether to record the commit time of transactions, either `on` or `off`.", + "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": "Whether to time database I/O calls, either `on` or `off`. It's `off` by default because it repeatedly queries 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" }, - "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" + "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" }, - "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" + "pg_stat_monitor_enable": { + "default": false, + "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" }, - "version": { - "description": "__Filterable__ The Managed Database engine version.", - "example": "13.2", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] + "pglookout": { + "additionalProperties": false, + "description": "Parameter used to apply PGLookout settings.", + "properties": { + "max_failover_replication_time_lag": { + "default": 60, + "description": "Number of seconds of primary unavailability before triggering database failover to standby.", + "example": 10, + "maximum": 999999, + "minimum": 10, + "type": "integer" + } }, - "x-linode-cli-display": 7, - "x-linode-filterable": true + "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" + }, + "synchronous_replication": { + "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", + "enum": [ + "quorum", + "off" + ], + "example": "quorum", + "type": "string" + }, + "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.yaml" - } + "file-path": "schemas/database-postgresql-engine-config.yaml" + }, + "x-linode-cli-display": 7 }, - "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": { - "content": { - "application/json": { - "example": { - "errors": [ - { - "reason": "Invalid JSON" - } - ] - }, - "schema": { - "additionalProperties": false, - "properties": { - "errors": { - "items": { - "additionalProperties": false, - "description": "An object for describing a single error that occurred during the processing of a request.", - "properties": { - "field": { - "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", - "example": "fieldname", - "type": "string" + "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 database.", + "properties": { + "restore_time": { + "description": "The database timestamp from which it was restored. This is _not_ when the fork was created.", + "example": "2024-10-14T19:55:12", + "type": "string" + }, + "source": { + "description": "The unique identifier for the database that was forked from.", + "example": 176881, + "type": "integer" + } + }, + "type": "object" }, - "reason": { - "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "hosts": { + "additionalProperties": false, + "description": "__Read-only__ The primary hostname and standby read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", + "properties": { + "endpoints": { + "description": "__Read-only__ A structured inventory of all connection points for a Managed Database instance.", + "items": { + "additionalProperties": false, + "properties": { + "address": { + "description": "The DNS hostname that resolves to either the `primary` or `standby` host, based on this object's `role`.", + "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "type": "string" + }, + "port": { + "description": "The port number used for the connection.", + "example": 3306, + "type": "integer" + }, + "public_access": { + "description": "Whether `public_access` has been enabled for the connection point.", + "example": false, + "type": "boolean" + }, + "role": { + "description": "Whether the endpoint connects to the `primary` or `standby` hostname, as defined in `hosts`.", + "enum": [ + "primary", + "standby" + ], + "example": "primary", + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, + "primary": { + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "format": "hostname", + "nullable": true, + "type": "string" + }, + "standby": { + "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "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 name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either 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": { + "additionalProperties": { + "enum": [ + "primary", + "failover" + ], + "type": "string" + }, + "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 MySQL or PostgreSQL database can be restored. For Valkey databases, this is `null`.", + "example": "2024-10-03T20:48:05", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "platform": { + "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service, either `rdbms-legacy` or `rdbms-default`.", + "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" + }, + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` allows clients outside of the VPC to connect to the database using a public IP address.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The VPC's `subnet_id` used to control access to the database.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database.", + "example": 123, + "type": "integer" + } + }, + "type": "object" + }, + "region": { + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", + "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, which can be one of the following: `provisioning`, `active`, `suspending`, `suspended`, `resuming`, `updating`, or `resizing`.", + "enum": [ + "provisioning", + "active", + "suspending", + "suspended", + "resuming", + "updating", + "resizing" + ], + "example": "active", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-color": { + "active": "green", + "default_": "white", + "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 `id` of 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", + "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": { + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, + "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", + "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 time when a maintenance update will be applied.", + "example": "2024-10-14T19:55:12", + "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. This is `null` for Valkey", + "example": 2, + "nullable": true, + "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" + }, + "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-databases-postgresql-instances-200.yaml" + } + } + } + }, + "description": "Returns a paginated list of all accessible PostgreSQL Managed Databases on your account." + }, + "default": { + "content": { + "application/json": { + "example": { + "errors": [ + { + "reason": "Invalid JSON" + } + ] + }, + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "description": "Any warnings associated with a response.", + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", "example": "fieldname must be a valid value", "type": "string" } @@ -37255,7 +39362,7 @@ }, "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}": { "get": { - "description": "Display information for a single, accessible PostgreSQL Managed Database.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-view 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Display information for a single, accessible PostgreSQL Managed Database.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-view 123\n```\n\n[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-postgre-sql-instance" @@ -37311,12 +39418,11 @@ "pg_stat_monitor.pgsm_enable_query_plan": true, "pg_stat_monitor.pgsm_max_buckets": 10, "pg_stat_statements.track": "all", - "synchronous_replication": "quorum", "temp_file_limit": 5000000, "timezone": "Europe/Helsinki", "track_activity_query_size": 1024, - "track_commit_timestamp": true, - "track_functions": "on", + "track_commit_timestamp": "off", + "track_functions": "all", "track_io_timing": "off", "wal_sender_timeout": 60000, "wal_writer_delay": 200 @@ -37326,6 +39432,7 @@ "max_failover_replication_time_lag": 10 }, "shared_buffers_percentage": 41.5, + "synchronous_replication": "quorum", "work_mem": 4 }, "fork": { @@ -37378,7 +39485,7 @@ "updated": "2022-01-01T00:01:01", "updates": { "day_of_week": 1, - "duration": 3, + "duration": 4, "frequency": "weekly", "hour_of_day": 0, "pending": [] @@ -37417,20 +39524,19 @@ "x-linode-cli-display": 5 }, "connection_pool_port": { - "description": "The port number used by PGBouncer connection pools. This only applies if you've [configured](https://techdocs.akamai.com/linode-api/reference/post-databases-postgresql-connection-pools) your PostgreSQL Managed Database to use PGBouncer connection pools.", + "description": "The port number used by PGBouncer connection pools. This only applies if you've [configured](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-conn-pools) your PostgreSQL Managed Database to use PGBouncer connection pools.", "example": 123, "type": "integer" }, "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`.", + "description": "__Read-only__ Whether the Managed Databases is encrypted. Currently the only possible value is `true`.", "example": true, "readOnly": true, "type": "boolean" @@ -37561,7 +39667,7 @@ }, "default_toast_compression": { "default": "lz4", - "description": "Specifies the default TOAST compression method for values of compressible columns.", + "description": "Specifies the default TOAST compression method for values of compressible columns, either `lz4` or `pglz`.", "enum": [ "lz4", "pglz" @@ -37674,10 +39780,10 @@ "type": "integer" }, "password_encryption": { - "default": "md5", - "description": "Chooses the algorithm for encrypting passwords.", + "default": "scram-sha-256", + "description": "Chooses the algorithm for encrypting passwords, either `scram-sha-256` or `md5`.", "enum": [ - "scram-sh-256", + "scram-sha-256", "md5" ], "example": "scram-sha-256", @@ -37722,7 +39828,7 @@ "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", "enum": [ "quorum", - false + "off" ], "example": "quorum", "type": "string" @@ -37738,7 +39844,7 @@ "description": "PostgreSQL service time zone.", "example": "Europe/Helsinki", "maxLength": 64, - "pattern": "^[\\\\w/]*$", + "pattern": "^[\\w/]*$", "type": "string" }, "track_activity_query_size": { @@ -37749,7 +39855,7 @@ "type": "integer" }, "track_commit_timestamp": { - "description": "Record the commit time of transactions.", + "description": "Whether to record the commit time of transactions, either `on` or `off`.", "enum": [ "on", "off" @@ -37770,7 +39876,7 @@ }, "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.", + "description": "Whether to time database I/O calls, either `on` or `off`. It's `off` by default because it repeatedly queries the operating system for the current time, which may cause significant overhead on some platforms.", "enum": [ "on", "off" @@ -37797,6 +39903,7 @@ "type": "object" }, "pg_stat_monitor_enable": { + "default": false, "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" @@ -37806,6 +39913,7 @@ "description": "Parameter used to apply PGLookout settings.", "properties": { "max_failover_replication_time_lag": { + "default": 60, "description": "Number of seconds of primary unavailability before triggering database failover to standby.", "example": 10, "maximum": 999999, @@ -37822,6 +39930,15 @@ "minimum": 20, "type": "number" }, + "synchronous_replication": { + "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", + "enum": [ + "quorum", + "off" + ], + "example": "quorum", + "type": "string" + }, "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, @@ -37838,16 +39955,15 @@ }, "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.", + "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 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", + "example": "2024-10-14T19:55:12", "type": "string" }, "source": { - "description": "The instance id of the database that was forked from.", + "description": "The unique identifier for the database that was forked from.", "example": 176881, "type": "integer" } @@ -37894,13 +40010,14 @@ "type": "array" }, "primary": { - "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "format": "hostname", "nullable": true, "type": "string" }, "standby": { - "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-primary-private.servers.linodedb.net", "nullable": true, "type": "string" @@ -37931,6 +40048,13 @@ "x-linode-filterable": true }, "members": { + "additionalProperties": { + "enum": [ + "primary", + "failover" + ], + "type": "string" + }, "description": "__Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`.", "example": { "45.56.110.70": "primary", @@ -37940,14 +40064,14 @@ "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", + "description": "__Read-only__ The oldest time to which a MySQL or PostgreSQL database can be restored. For Valkey databases, this is `null`.", + "example": "2024-10-03T20:48:05", + "nullable": true, "readOnly": true, "type": "string" }, "platform": { - "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service.", + "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service, either `rdbms-legacy` or `rdbms-default`.", "enum": [ "rdbms-legacy", "rdbms-default" @@ -37971,30 +40095,27 @@ }, "private_network": { "additionalProperties": false, - "description": "__Beta__ Restricts access to a PostgreSQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured.", + "description": "Restricts access on a Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. Displayed as `null` if no VPC is configured.", "nullable": true, "properties": { "public_access": { "default": false, - "description": "When set to `true`, clients outside of the VPC can connect to the database. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "description": "Set to `true` allows clients outside of the VPC to connect to the database using a public IP address.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", "example": true, "type": "boolean" }, "subnet_id": { - "description": "The specific subnet, in the VPC (`vpc_id`) where the Managed Database cluster can be accessed.", + "description": "The VPC's `subnet_id` used to control access to the database.", "example": 456, "type": "integer" }, "vpc_id": { - "description": "The unique identifier of the VPC where this database exists.", + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database.", "example": 123, "type": "integer" } }, - "type": "object", - "x-akamai": { - "status": "BETA" - } + "type": "object" }, "region": { "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", @@ -38015,15 +40136,13 @@ "type": "boolean" }, "status": { - "description": "__Filterable__, __Read-only__ The operating status of the Managed Database.", + "description": "__Filterable__, __Read-only__ The operating status of the Managed Database, which can be one of the following: `provisioning`, `active`, `suspending`, `suspended`, `resuming`, `updating`, or `resizing`.", "enum": [ "provisioning", "active", "suspending", "suspended", "resuming", - "failed", - "degraded", "updating", "resizing" ], @@ -38038,8 +40157,6 @@ "x-linode-cli-color": { "active": "green", "default_": "white", - "degraded": "red", - "failed": "red", "provisioning": "yellow", "restoring": "yellow", "resuming": "yellow" @@ -38054,7 +40171,7 @@ "type": "integer" }, "type": { - "description": "__Filterable__ The Linode Instance type used by the Managed Database for its nodes.", + "description": "__Filterable__ The `id` of the Linode Instance type used by the Managed Database for its nodes.", "example": "g6-dedicated-2", "type": "string", "x-akamai": { @@ -38068,7 +40185,6 @@ "updated": { "description": "__Read-only__ When this Managed Database was last updated.", "example": "2022-01-01T00:01:01", - "format": "date-time", "readOnly": true, "type": "string" }, @@ -38084,10 +40200,9 @@ "type": "integer" }, "duration": { - "description": "The maximum maintenance window time in hours.", - "example": 3, - "maximum": 3, - "minimum": 1, + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, "type": "integer" }, "frequency": { @@ -38116,7 +40231,6 @@ "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" }, @@ -38126,9 +40240,8 @@ "type": "string" }, "planned_for": { - "description": "The date and time a maintenance update will be applied.", + "description": "The time when a maintenance update will be applied.", "example": "2024-10-14T19:55:12", - "format": "date-time", "nullable": true, "type": "string" } @@ -38143,8 +40256,9 @@ "type": "object" }, "used_disk_size_gb": { - "description": "__Read-only__ The amount of space currently in use in the database, in GB.", + "description": "__Read-only__ The amount of space currently in use in the database, in GB. This is `null` for Valkey", "example": 2, + "nullable": true, "readOnly": true, "type": "integer" }, @@ -38184,6 +40298,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -38248,7 +40363,7 @@ ] }, "put": { - "description": "Make changes to an existing PostgreSQL Managed Database.\n\n- The database's status needs to be `active`.\n\n- 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.\n\n- Updates to your `allow_list` may take a short period of time to complete, making this operation inappropriate for rapid successive updates.\n\n- Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans.\n\n- 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.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- 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.\n\n- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n- **Beta**. You can update an existing PostgreSQL Managed Database to move it to a Virtual Private Cloud (VPC) using the `private_network` object in the request. This support is in beta. Talk to your Akamai account team for more details.\n\n > \ud83d\udcd8\n >\n > Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-update 123 \\\n --label example-db \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24 \\\n --type g6-standard-1 \\\n --updates.frequency weekly \\\n --updates.duration 3 \\\n --updates.hour_of_day 12 \\\n --updates.day_of_week 4 \\\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Make changes to an existing PostgreSQL Managed Database.\n\n- The database's status can't be `suspended`.\n\n- 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.\n\n- Updates to your `allow_list` may take a short period of time to complete, making this operation inappropriate for rapid successive updates.\n\n- Also allows resizing the database cluster to a larger one.\n\n- 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.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- 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.\n\n- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n- You can update an existing PostgreSQL Managed Database to move it to a Virtual Private Cloud (VPC) using the `private_network` object in the request.\n\n > \ud83d\udcd8\n >\n > Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.\n\n- This operation is asynchronous. The 200 response body with the `provisioning` and `updating` status may contain legacy values.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-update 123 \\\n --label example-db \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24 \\\n --type g6-standard-1 \\\n --updates.frequency weekly \\\n --updates.duration 3 \\\n --updates.hour_of_day 12 \\\n --updates.day_of_week 4 \\\n```\n\n[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-databases-postgre-sql-instance" @@ -38262,6 +40377,7 @@ "192.0.2.207/24", "192.0.2.134/24" ], + "cluster_size": 2, "engine_config": { "pg": { "autovacuum_analyze_scale_factor": 1, @@ -38303,7 +40419,7 @@ "timezone": "Europe/Helsinki", "track_activity_query_size": 1024, "track_commit_timestamp": "on", - "track_functions": "on", + "track_functions": "all", "track_io_timing": "off", "wal_sender_timeout": 60000, "wal_writer_delay": 200 @@ -38324,7 +40440,7 @@ "type": "g6-standard-1", "updates": { "day_of_week": 1, - "duration": 3, + "duration": 4, "frequency": "weekly", "hour_of_day": 0 }, @@ -38348,6 +40464,18 @@ "minItems": 0, "type": "array" }, + "cluster_size": { + "default": 1, + "description": "The number of Linode instance nodes deployed to the Managed Database, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` node.", + "enum": [ + 1, + 2, + 3 + ], + "example": "{{cluster_size}}", + "type": "integer", + "x-linode-cli-display": 5 + }, "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.\n\n> \ud83d\udcd8\n>\n> 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.", @@ -38461,7 +40589,7 @@ }, "default_toast_compression": { "default": "lz4", - "description": "Specifies the default TOAST compression method for values of compressible columns.", + "description": "Specifies the default TOAST compression method for values of compressible columns, either `lz4` or `pglz`.", "enum": [ "lz4", "pglz" @@ -38574,10 +40702,10 @@ "type": "integer" }, "password_encryption": { - "default": "md5", - "description": "Chooses the algorithm for encrypting passwords.", + "default": "scram-sha-256", + "description": "Chooses the algorithm for encrypting passwords, either `scram-sha-256` or `md5`.", "enum": [ - "scram-sh-256", + "scram-sha-256", "md5" ], "example": "scram-sha-256", @@ -38622,7 +40750,7 @@ "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", "enum": [ "quorum", - false + "off" ], "example": "quorum", "type": "string" @@ -38638,7 +40766,7 @@ "description": "PostgreSQL service time zone.", "example": "Europe/Helsinki", "maxLength": 64, - "pattern": "^[\\\\w/]*$", + "pattern": "^[\\w/]*$", "type": "string" }, "track_activity_query_size": { @@ -38649,7 +40777,7 @@ "type": "integer" }, "track_commit_timestamp": { - "description": "Record the commit time of transactions.", + "description": "Whether to record the commit time of transactions, either `on` or `off`.", "enum": [ "on", "off" @@ -38670,7 +40798,7 @@ }, "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.", + "description": "Whether to time database I/O calls, either `on` or `off`. It's `off` by default because it repeatedly queries the operating system for the current time, which may cause significant overhead on some platforms.", "enum": [ "on", "off" @@ -38697,6 +40825,7 @@ "type": "object" }, "pg_stat_monitor_enable": { + "default": false, "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" @@ -38706,6 +40835,7 @@ "description": "Parameter used to apply PGLookout settings.", "properties": { "max_failover_replication_time_lag": { + "default": 60, "description": "Number of seconds of primary unavailability before triggering database failover to standby.", "example": 10, "maximum": 999999, @@ -38722,6 +40852,15 @@ "minimum": 20, "type": "number" }, + "synchronous_replication": { + "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", + "enum": [ + "quorum", + "off" + ], + "example": "quorum", + "type": "string" + }, "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, @@ -38751,7 +40890,7 @@ }, "private_network": { "additionalProperties": false, - "description": "__Beta__ Restricts access on a PostgreSQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster.", + "description": "Restricts access on a PostgreSQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. You can only assign VPCs that are in the same region as the database cluster.", "nullable": true, "properties": { "public_access": { @@ -38771,13 +40910,10 @@ "type": "integer" } }, - "type": "object", - "x-akamai": { - "status": "BETA" - } + "type": "object" }, "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.\n\n- Needs to be a Linode Type with more disk space than your current Linode.\n\n- 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.\n\n- You can't update the `allow_list` and set a new `type` in the same request.\n\n- 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.", + "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.\n\n- Needs to be a Linode type with more disk space than your current Linode.\n\n- 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.\n\n- You can't update the `allow_list` and set a new `type` in the same request.\n\n- 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" }, @@ -38793,10 +40929,9 @@ "type": "integer" }, "duration": { - "description": "The maximum maintenance window time in hours.", - "example": 3, - "maximum": 3, - "minimum": 1, + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, "type": "integer" }, "frequency": { @@ -38825,7 +40960,6 @@ "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" }, @@ -38835,9 +40969,8 @@ "type": "string" }, "planned_for": { - "description": "The date and time a maintenance update will be applied.", + "description": "The time when a maintenance update will be applied.", "example": "2024-10-14T19:55:12", - "format": "date-time", "nullable": true, "type": "string" } @@ -38923,12 +41056,11 @@ "pg_stat_monitor.pgsm_enable_query_plan": true, "pg_stat_monitor.pgsm_max_buckets": 10, "pg_stat_statements.track": "all", - "synchronous_replication": "quorum", "temp_file_limit": 5000000, "timezone": "Europe/Helsinki", "track_activity_query_size": 1024, - "track_commit_timestamp": true, - "track_functions": "on", + "track_commit_timestamp": "off", + "track_functions": "all", "track_io_timing": "off", "wal_sender_timeout": 60000, "wal_writer_delay": 200 @@ -38938,6 +41070,7 @@ "max_failover_replication_time_lag": 10 }, "shared_buffers_percentage": 41.5, + "synchronous_replication": "quorum", "work_mem": 4 }, "fork": { @@ -38990,7 +41123,7 @@ "updated": "2022-01-01T00:01:01", "updates": { "day_of_week": 1, - "duration": 3, + "duration": 4, "frequency": "weekly", "hour_of_day": 0, "pending": [] @@ -39029,20 +41162,19 @@ "x-linode-cli-display": 5 }, "connection_pool_port": { - "description": "The port number used by PGBouncer connection pools. This only applies if you've [configured](https://techdocs.akamai.com/linode-api/reference/post-databases-postgresql-connection-pools) your PostgreSQL Managed Database to use PGBouncer connection pools.", + "description": "The port number used by PGBouncer connection pools. This only applies if you've [configured](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-conn-pools) your PostgreSQL Managed Database to use PGBouncer connection pools.", "example": 123, "type": "integer" }, "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`.", + "description": "__Read-only__ Whether the Managed Databases is encrypted. Currently the only possible value is `true`.", "example": true, "readOnly": true, "type": "boolean" @@ -39173,7 +41305,7 @@ }, "default_toast_compression": { "default": "lz4", - "description": "Specifies the default TOAST compression method for values of compressible columns.", + "description": "Specifies the default TOAST compression method for values of compressible columns, either `lz4` or `pglz`.", "enum": [ "lz4", "pglz" @@ -39286,10 +41418,10 @@ "type": "integer" }, "password_encryption": { - "default": "md5", - "description": "Chooses the algorithm for encrypting passwords.", + "default": "scram-sha-256", + "description": "Chooses the algorithm for encrypting passwords, either `scram-sha-256` or `md5`.", "enum": [ - "scram-sh-256", + "scram-sha-256", "md5" ], "example": "scram-sha-256", @@ -39334,7 +41466,7 @@ "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", "enum": [ "quorum", - false + "off" ], "example": "quorum", "type": "string" @@ -39350,7 +41482,7 @@ "description": "PostgreSQL service time zone.", "example": "Europe/Helsinki", "maxLength": 64, - "pattern": "^[\\\\w/]*$", + "pattern": "^[\\w/]*$", "type": "string" }, "track_activity_query_size": { @@ -39361,7 +41493,7 @@ "type": "integer" }, "track_commit_timestamp": { - "description": "Record the commit time of transactions.", + "description": "Whether to record the commit time of transactions, either `on` or `off`.", "enum": [ "on", "off" @@ -39382,7 +41514,7 @@ }, "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.", + "description": "Whether to time database I/O calls, either `on` or `off`. It's `off` by default because it repeatedly queries the operating system for the current time, which may cause significant overhead on some platforms.", "enum": [ "on", "off" @@ -39409,6 +41541,7 @@ "type": "object" }, "pg_stat_monitor_enable": { + "default": false, "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" @@ -39418,6 +41551,7 @@ "description": "Parameter used to apply PGLookout settings.", "properties": { "max_failover_replication_time_lag": { + "default": 60, "description": "Number of seconds of primary unavailability before triggering database failover to standby.", "example": 10, "maximum": 999999, @@ -39434,6 +41568,15 @@ "minimum": 20, "type": "number" }, + "synchronous_replication": { + "description": "Used to enable synchronous replication per Aiven's [specification](https://aiven.io/docs/products/alloydbomni/reference/advanced-params#synchronous_replication). This is only supported for PostgreSQL Managed Database clusters with three nodes.", + "enum": [ + "quorum", + "off" + ], + "example": "quorum", + "type": "string" + }, "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, @@ -39450,16 +41593,15 @@ }, "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.", + "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 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", + "example": "2024-10-14T19:55:12", "type": "string" }, "source": { - "description": "The instance id of the database that was forked from.", + "description": "The unique identifier for the database that was forked from.", "example": 176881, "type": "integer" } @@ -39506,13 +41648,14 @@ "type": "array" }, "primary": { - "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "format": "hostname", "nullable": true, "type": "string" }, "standby": { - "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-primary-private.servers.linodedb.net", "nullable": true, "type": "string" @@ -39543,6 +41686,13 @@ "x-linode-filterable": true }, "members": { + "additionalProperties": { + "enum": [ + "primary", + "failover" + ], + "type": "string" + }, "description": "__Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`.", "example": { "45.56.110.70": "primary", @@ -39552,14 +41702,14 @@ "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", + "description": "__Read-only__ The oldest time to which a MySQL or PostgreSQL database can be restored. For Valkey databases, this is `null`.", + "example": "2024-10-03T20:48:05", + "nullable": true, "readOnly": true, "type": "string" }, "platform": { - "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service.", + "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service, either `rdbms-legacy` or `rdbms-default`.", "enum": [ "rdbms-legacy", "rdbms-default" @@ -39583,30 +41733,27 @@ }, "private_network": { "additionalProperties": false, - "description": "__Beta__ Restricts access to a PostgreSQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured.", + "description": "Restricts access on a Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. Displayed as `null` if no VPC is configured.", "nullable": true, "properties": { "public_access": { "default": false, - "description": "When set to `true`, clients outside of the VPC can connect to the database. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "description": "Set to `true` allows clients outside of the VPC to connect to the database using a public IP address.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", "example": true, "type": "boolean" }, "subnet_id": { - "description": "The specific subnet, in the VPC (`vpc_id`) where the Managed Database cluster can be accessed.", + "description": "The VPC's `subnet_id` used to control access to the database.", "example": 456, "type": "integer" }, "vpc_id": { - "description": "The unique identifier of the VPC where this database exists.", + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database.", "example": 123, "type": "integer" } }, - "type": "object", - "x-akamai": { - "status": "BETA" - } + "type": "object" }, "region": { "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", @@ -39627,15 +41774,13 @@ "type": "boolean" }, "status": { - "description": "__Filterable__, __Read-only__ The operating status of the Managed Database.", + "description": "__Filterable__, __Read-only__ The operating status of the Managed Database, which can be one of the following: `provisioning`, `active`, `suspending`, `suspended`, `resuming`, `updating`, or `resizing`.", "enum": [ "provisioning", "active", "suspending", "suspended", "resuming", - "failed", - "degraded", "updating", "resizing" ], @@ -39650,8 +41795,6 @@ "x-linode-cli-color": { "active": "green", "default_": "white", - "degraded": "red", - "failed": "red", "provisioning": "yellow", "restoring": "yellow", "resuming": "yellow" @@ -39666,7 +41809,7 @@ "type": "integer" }, "type": { - "description": "__Filterable__ The Linode Instance type used by the Managed Database for its nodes.", + "description": "__Filterable__ The `id` of the Linode Instance type used by the Managed Database for its nodes.", "example": "g6-dedicated-2", "type": "string", "x-akamai": { @@ -39680,7 +41823,6 @@ "updated": { "description": "__Read-only__ When this Managed Database was last updated.", "example": "2022-01-01T00:01:01", - "format": "date-time", "readOnly": true, "type": "string" }, @@ -39696,10 +41838,9 @@ "type": "integer" }, "duration": { - "description": "The maximum maintenance window time in hours.", - "example": 3, - "maximum": 3, - "minimum": 1, + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, "type": "integer" }, "frequency": { @@ -39728,7 +41869,6 @@ "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" }, @@ -39738,9 +41878,8 @@ "type": "string" }, "planned_for": { - "description": "The date and time a maintenance update will be applied.", + "description": "The time when a maintenance update will be applied.", "example": "2024-10-14T19:55:12", - "format": "date-time", "nullable": true, "type": "string" } @@ -39755,8 +41894,9 @@ "type": "object" }, "used_disk_size_gb": { - "description": "__Read-only__ The amount of space currently in use in the database, in GB.", + "description": "__Read-only__ The amount of space currently in use in the database, in GB. This is `null` for Valkey", "example": 2, + "nullable": true, "readOnly": true, "type": "integer" }, @@ -39796,6 +41936,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -39860,7 +42001,7 @@ ] }, "delete": { - "description": "Remove a PostgreSQL Managed Database from your account. The database's status can be `active`, `failed`, or `degraded`.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-delete 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Deletes a PostgreSQL Managed Database from your account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-delete 123\n```\n\n[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/delete-databases-postgre-sql-instance" @@ -39897,6 +42038,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -40002,7 +42144,7 @@ }, "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/connection-pools": { "post": { - "description": "Configure PGBouncer connection pool settings, using our partner [Aiven's specification](https://aiven.io/docs/products/postgresql/reference/advanced-params#pgbouncer). You can only create a connection pool on an active cluster in an existing PostgreSQL Managed Database. Run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation, locate the desired database, and verify its `status` is `active`. Then store both its `id`, as your `postgresqlInstanceId`, and its `label`.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-conn-pool-create \\\n --database PostgreSQL-DB-video-streaming-data\n --mode session\n --label Connection-Pool-01 \\\n --size 10 \\\n --username john-doe\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Configure PGBouncer connection pool settings, using our partner [Aiven's specification](https://aiven.io/docs/products/postgresql/reference/advanced-params#pgbouncer). You can only create a connection pool on an active cluster in an existing PostgreSQL Managed Database. Run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation, locate the desired database, and verify its `status` is not `suspended`. Then store both its `id`, as your `postgresqlInstanceId`, and its `label`.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-conn-pool-create \\\n --database PostgreSQL-DB-video-streaming-data\n --mode session\n --label Connection-Pool-01 \\\n --size 10 \\\n --username john-doe\n```\n\n[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-databases-postgre-sql-conn-pools" @@ -40011,18 +42153,25 @@ "requestBody": { "content": { "application/json": { + "example": { + "database": "PostgreSQL-DB-video-streaming-data", + "label": "Connection-Pool-01", + "mode": "session", + "size": 15, + "username": "jperez" + }, "schema": { "additionalProperties": false, "description": "The PostgreSQL Managed Database connection pool request object.", "properties": { "database": { "default": "defaultdb", - "description": "The name of the PostgreSQL Managed Database where the connection pool is assigned. Run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `label` for the target database.", + "description": "The name of the PostgreSQL Managed Database where the connection pool is assigned. This is the **Database name** value from connection details. To learn how to get this value, see [View connection details](https://techdocs.akamai.com/cloud-computing/docs/aiven-postgresql#view-connection-details).", "example": "{{database}}", "type": "string" }, "label": { - "description": "The name of the connection pool. These points apply:\n\n- A `label` needs to be unique in a database instance.\n\n- A `label` can contain alphanumeric characters, underscores, or hyphens, and it can't start with hyphen.\n\n- A `label` has a maximum length of 63 characters.", + "description": "The name of the connection pool. These points apply:\n\n- It needs to be unique in a database instance.\n\n- It can contain alphanumeric characters, underscores, or hyphens, and it can't start with hyphen.\n\n- It has a maximum length of 63 characters.\n\n- It can't be edited once the connection pool is created.", "example": "{{label}}", "type": "string" }, @@ -40061,9 +42210,6 @@ "x-akamai": { "file-path": "schemas/database-postgresql-conn-pool.yaml" } - }, - "x-example": { - "x-ref": "../examples/post-database-postgresql-conn-pool.json" } } }, @@ -40073,18 +42219,25 @@ "200": { "content": { "application/json": { + "example": { + "database": "PostgreSQL-DB-video-streaming-data", + "label": "Connection-Pool-01", + "mode": "session", + "size": 15, + "username": "szhang" + }, "schema": { "additionalProperties": false, "description": "The PostgreSQL Managed Database connection pool request object.", "properties": { "database": { "default": "defaultdb", - "description": "The name of the PostgreSQL Managed Database where the connection pool is assigned. Run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `label` for the target database.", - "example": "PostgreSQL-DB-video-streaming-data", + "description": "The name of the PostgreSQL Managed Database where the connection pool is assigned. This is the **Database name** value from connection details. To learn how to get this value, see [View connection details](https://techdocs.akamai.com/cloud-computing/docs/aiven-postgresql#view-connection-details).", + "example": "defaultdb", "type": "string" }, "label": { - "description": "The name of the connection pool. These points apply:\n\n- A `label` needs to be unique in a database instance.\n\n- A `label` can contain alphanumeric characters, underscores, or hyphens, and it can't start with hyphen.\n\n- A `label` has a maximum length of 63 characters.", + "description": "The name of the connection pool. These points apply:\n\n- It needs to be unique in a database instance.\n\n- It can contain alphanumeric characters, underscores, or hyphens, and it can't start with hyphen.\n\n- It has a maximum length of 63 characters.\n\n- It can't be edited once the connection pool is created.", "example": "Connection-Pool-01", "type": "string" }, @@ -40123,9 +42276,6 @@ "x-akamai": { "file-path": "schemas/database-postgresql-conn-pool.yaml" } - }, - "x-example": { - "x-ref": "../examples/get-databases-postgresql-conn-pool-200.json" } } }, @@ -40145,6 +42295,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -40209,7 +42360,7 @@ ] }, "get": { - "description": "View all of the PGBouncer connection pools for a specific PostgreSQL Managed Database. PGBouncer is an advanced configuration setting you can assign to your database, through our partner [Aiven](https://aiven.io/docs/products/postgresql/reference/advanced-params#pgbouncer).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-conn-pool-list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "View all of the PGBouncer connection pools for a specific PostgreSQL Managed Database. PGBouncer is an advanced configuration setting you can assign to your database, through our partner [Aiven](https://aiven.io/docs/products/postgresql/reference/advanced-params#pgbouncer).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-conn-pool-list\n```\n\n[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-postgre-sql-conn-pools" @@ -40219,22 +42370,37 @@ "200": { "content": { "application/json": { + "example": { + "data": [ + { + "database": "PostgreSQL-DB-video-streaming-data", + "label": "Connection-Pool-01", + "mode": "session", + "size": 15, + "username": "jdupont" + } + ], + "page": 1, + "pages": 1, + "results": 1 + }, "schema": { "additionalProperties": false, "properties": { "data": { + "description": "The PostgreSQL Managed Database connection pools.", "items": { "additionalProperties": false, "description": "The PostgreSQL Managed Database connection pool request object.", "properties": { "database": { "default": "defaultdb", - "description": "The name of the PostgreSQL Managed Database where the connection pool is assigned. Run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `label` for the target database.", - "example": "PostgreSQL-DB-video-streaming-data", + "description": "The name of the PostgreSQL Managed Database where the connection pool is assigned. This is the **Database name** value from connection details. To learn how to get this value, see [View connection details](https://techdocs.akamai.com/cloud-computing/docs/aiven-postgresql#view-connection-details).", + "example": "defaultdb", "type": "string" }, "label": { - "description": "The name of the connection pool. These points apply:\n\n- A `label` needs to be unique in a database instance.\n\n- A `label` can contain alphanumeric characters, underscores, or hyphens, and it can't start with hyphen.\n\n- A `label` has a maximum length of 63 characters.", + "description": "The name of the connection pool. These points apply:\n\n- It needs to be unique in a database instance.\n\n- It can contain alphanumeric characters, underscores, or hyphens, and it can't start with hyphen.\n\n- It has a maximum length of 63 characters.\n\n- It can't be edited once the connection pool is created.", "example": "Connection-Pool-01", "type": "string" }, @@ -40299,9 +42465,6 @@ "x-akamai": { "file-path": "schemas/database-postgresql-conn-pools.yaml" } - }, - "x-example": { - "x-ref": "../examples/get-databases-postgresql-conn-pool-200.json" } } }, @@ -40321,6 +42484,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -40426,7 +42590,7 @@ }, "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/connection-pools/{poolName}": { "get": { - "description": "Returns a specific connection pool for a PostgreSQL Managed Database.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli postgresql-conn-pool-view 890\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns a specific connection pool for a PostgreSQL Managed Database.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli postgresql-conn-pool-view 890\n```\n\n[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-postgre-sql-conn-pool" @@ -40434,227 +42598,27 @@ "operationId": "get-databases-postgre-sql-conn-pool", "responses": { "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "The PostgreSQL Managed Database connection pool request object.", - "properties": { - "database": { - "default": "defaultdb", - "description": "The name of the PostgreSQL Managed Database where the connection pool is assigned. Run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `label` for the target database.", - "example": "PostgreSQL-DB-video-streaming-data", - "type": "string" - }, - "label": { - "description": "The name of the connection pool. These points apply:\n\n- A `label` needs to be unique in a database instance.\n\n- A `label` can contain alphanumeric characters, underscores, or hyphens, and it can't start with hyphen.\n\n- A `label` has a maximum length of 63 characters.", - "example": "Connection-Pool-01", - "type": "string" - }, - "mode": { - "default": "transaction", - "description": "Set the connection pooling mode based on the specification set by our partner, [Aiven](https://aiven.io/docs/products/postgresql/concepts/pg-connection-pooling#pooling-modes). Select from `transaction`, `session`, or `statement`.", - "enum": [ - "session", - "statement", - "transaction" - ], - "example": "session", - "type": "string" - }, - "size": { - "default": 10, - "description": "The number of connections in the pool. This can't exceed the number of available connections for your service plan.", - "example": 15, - "type": "integer" - }, - "username": { - "default": null, - "description": "The username of the client making the connection. The default of `null` reuses the inbound user.", - "example": "john_doe", - "nullable": true, - "type": "string" - } - }, - "required": [ - "label", - "mode", - "size", - "username" - ], - "type": "object", - "x-akamai": { - "file-path": "schemas/database-postgresql-conn-pool.yaml" - } - }, - "x-example": { - "x-ref": "../examples/get-databases-postgresql-conn-pool-200.json" - } - } - }, - "description": "Returns the specified connection pool." - }, - "default": { "content": { "application/json": { "example": { - "errors": [ - { - "reason": "Invalid JSON" - } - ] - }, - "schema": { - "additionalProperties": false, - "properties": { - "errors": { - "items": { - "additionalProperties": false, - "description": "An object for describing a single error that occurred during the processing of a request.", - "properties": { - "field": { - "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", - "example": "fieldname", - "type": "string" - }, - "reason": { - "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", - "example": "fieldname must be a valid value", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/error-object.yaml" - } - }, - "type": "array" - } - }, - "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 connection pool", - "tags": [ - "PostgreSQL" - ], - "x-akamai": { - "tabs": [ - { - "syntax": "linode-cli postgresql-conn-pool-view 890", - "title": "CLI", - "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" - } - ] - }, - "x-linode-cli-action": "view", - "x-linode-grant": "read_only", - "x-linode-iam": [ - { - "roles": [ - "database_viewer" - ] - } - ] - }, - "put": { - "description": "Update PGBouncer connection pool settings for a PostgreSQL Managed Database, using our partner [Aiven's specification](https://aiven.io/docs/products/postgresql/reference/advanced-params#pgbouncer).\n\n> \ud83d\udea7\n>\n> This operation can cause sudden closure of an in-use connection pool.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-conn-pool-update 123 \\\n --database PostgreSQL-DB-video-streaming-data-legacy\n --mode session\n --label Connection-Pool-01 \\\n --size 10 \\\n --username john-doe\n```\n\n[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-databases-postgre-sql-conn-pool" - }, - "operationId": "put-databases-postgre-sql-conn-pool", - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "The PostgreSQL Managed Database connection pool request object.", - "properties": { - "database": { - "default": "defaultdb", - "description": "The name of the PostgreSQL Managed Database where the connection pool is assigned. Run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `label` for the target database.", - "example": "{{database}}", - "type": "string" - }, - "label": { - "description": "The name of the connection pool. These points apply:\n\n- A `label` needs to be unique in a database instance.\n\n- A `label` can contain alphanumeric characters, underscores, or hyphens, and it can't start with hyphen.\n\n- A `label` has a maximum length of 63 characters.", - "example": "{{label}}", - "type": "string" - }, - "mode": { - "default": "transaction", - "description": "Set the connection pooling mode based on the specification set by our partner, [Aiven](https://aiven.io/docs/products/postgresql/concepts/pg-connection-pooling#pooling-modes). Select from `transaction`, `session`, or `statement`.", - "enum": [ - "session", - "statement", - "transaction" - ], - "example": "{{mode}}", - "type": "string" - }, - "size": { - "default": 10, - "description": "The number of connections in the pool. This can't exceed the number of available connections for your service plan.", - "example": "{{size}}", - "type": "integer" - }, - "username": { - "default": null, - "description": "The username of the client making the connection. The default of `null` reuses the inbound user.", - "example": "{{username}}", - "nullable": true, - "type": "string" - } + "database": "PostgreSQL-DB-video-streaming-data", + "label": "Connection-Pool-01", + "mode": "session", + "size": 15, + "username": "szhang" }, - "required": [ - "label", - "mode", - "size", - "username" - ], - "type": "object", - "x-akamai": { - "file-path": "schemas/database-postgresql-conn-pool.yaml" - } - }, - "x-example": { - "x-ref": "../examples/post-databases-postgresql-conn-pool.json" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { "schema": { "additionalProperties": false, "description": "The PostgreSQL Managed Database connection pool request object.", "properties": { "database": { "default": "defaultdb", - "description": "The name of the PostgreSQL Managed Database where the connection pool is assigned. Run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `label` for the target database.", - "example": "PostgreSQL-DB-video-streaming-data", + "description": "The name of the PostgreSQL Managed Database where the connection pool is assigned. This is the **Database name** value from connection details. To learn how to get this value, see [View connection details](https://techdocs.akamai.com/cloud-computing/docs/aiven-postgresql#view-connection-details).", + "example": "defaultdb", "type": "string" }, "label": { - "description": "The name of the connection pool. These points apply:\n\n- A `label` needs to be unique in a database instance.\n\n- A `label` can contain alphanumeric characters, underscores, or hyphens, and it can't start with hyphen.\n\n- A `label` has a maximum length of 63 characters.", + "description": "The name of the connection pool. These points apply:\n\n- It needs to be unique in a database instance.\n\n- It can contain alphanumeric characters, underscores, or hyphens, and it can't start with hyphen.\n\n- It has a maximum length of 63 characters.\n\n- It can't be edited once the connection pool is created.", "example": "Connection-Pool-01", "type": "string" }, @@ -40693,13 +42657,10 @@ "x-akamai": { "file-path": "schemas/database-postgresql-conn-pool.yaml" } - }, - "x-example": { - "x-ref": "../examples/get-databases-postgresql-conn-pool-200.json" } } }, - "description": "The logs stream was updated." + "description": "Returns the specified connection pool." }, "default": { "content": { @@ -40715,6 +42676,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -40751,56 +42713,158 @@ }, { "oauth": [ - "databases:read_write" + "databases:read_only" ] } ], - "summary": "Update a PostgreSQL connection pool", + "summary": "Get a PostgreSQL connection pool", "tags": [ "PostgreSQL" ], "x-akamai": { "tabs": [ { - "syntax": "linode-cli databases postgresql-conn-pool-update 123 \\\n --database PostgreSQL-DB-video-streaming-data-legacy\n --mode session\n --label Connection-Pool-01 \\\n --size 10 \\\n --username john-doe", + "syntax": "linode-cli postgresql-conn-pool-view 890", "title": "CLI", "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" } ] }, - "x-linode-cli-action": "postgresql-conn-pool-update", - "x-linode-grant": "read_write", + "x-linode-cli-action": "view", + "x-linode-grant": "read_only", "x-linode-iam": [ { "roles": [ - "database_admin" + "database_viewer" ] } ] }, - "delete": { - "description": "Delete a specific connection pool from a PostgreSQL Managed Database.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli postgresql-conn-pool-delete 890\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "put": { + "description": "Update PGBouncer connection pool settings for a PostgreSQL Managed Database, using our partner [Aiven's specification](https://aiven.io/docs/products/postgresql/reference/advanced-params#pgbouncer).\n\n> \ud83d\udea7\n>\n> This operation can cause sudden closure of an in-use connection pool.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-conn-pool-update 123 \\\n --database PostgreSQL-DB-video-streaming-data-legacy\n --mode session\n --label Connection-Pool-01 \\\n --size 10 \\\n --username john-doe\n```\n\n[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/delete-databases-postgre-sql-conn-pool" + "url": "https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-conn-pool" + }, + "operationId": "put-databases-postgre-sql-conn-pool", + "requestBody": { + "content": { + "application/json": { + "example": { + "database": "PostgreSQL-DB-video-streaming-data", + "mode": "session", + "size": 15, + "username": "jperez" + }, + "schema": { + "additionalProperties": false, + "description": "The PostgreSQL Managed Database connection pool request object.", + "properties": { + "database": { + "default": "defaultdb", + "description": "The name of the PostgreSQL Managed Database where the connection pool is assigned. This is the **Database name** value from connection details. To learn how to get this value, see [View connection details](https://techdocs.akamai.com/cloud-computing/docs/aiven-postgresql#view-connection-details).", + "example": "{{database}}", + "type": "string" + }, + "mode": { + "default": "transaction", + "description": "Set the connection pooling mode based on the specification set by our partner, [Aiven](https://aiven.io/docs/products/postgresql/concepts/pg-connection-pooling#pooling-modes). Select from `transaction`, `session`, or `statement`.", + "enum": [ + "session", + "statement", + "transaction" + ], + "example": "{{mode}}", + "type": "string" + }, + "size": { + "default": 10, + "description": "The number of connections in the pool. This can't exceed the number of available connections for your service plan.", + "example": "{{size}}", + "type": "integer" + }, + "username": { + "default": null, + "description": "The username of the client making the connection. The default of `null` reuses the inbound user.", + "example": "{{username}}", + "nullable": true, + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/database-postgresql-conn-pool-put.yaml" + } + } + } + }, + "required": true }, - "operationId": "delete-databases-postgre-sql-conn-pool", "responses": { "200": { "content": { "application/json": { - "example": {}, + "example": { + "database": "PostgreSQL-DB-video-streaming-data", + "label": "Connection-Pool-01", + "mode": "session", + "size": 15, + "username": "szhang" + }, "schema": { - "description": "The API responds with an empty object.", - "maxProperties": 0, + "additionalProperties": false, + "description": "The PostgreSQL Managed Database connection pool request object.", + "properties": { + "database": { + "default": "defaultdb", + "description": "The name of the PostgreSQL Managed Database where the connection pool is assigned. This is the **Database name** value from connection details. To learn how to get this value, see [View connection details](https://techdocs.akamai.com/cloud-computing/docs/aiven-postgresql#view-connection-details).", + "example": "defaultdb", + "type": "string" + }, + "label": { + "description": "The name of the connection pool. These points apply:\n\n- It needs to be unique in a database instance.\n\n- It can contain alphanumeric characters, underscores, or hyphens, and it can't start with hyphen.\n\n- It has a maximum length of 63 characters.\n\n- It can't be edited once the connection pool is created.", + "example": "Connection-Pool-01", + "type": "string" + }, + "mode": { + "default": "transaction", + "description": "Set the connection pooling mode based on the specification set by our partner, [Aiven](https://aiven.io/docs/products/postgresql/concepts/pg-connection-pooling#pooling-modes). Select from `transaction`, `session`, or `statement`.", + "enum": [ + "session", + "statement", + "transaction" + ], + "example": "session", + "type": "string" + }, + "size": { + "default": 10, + "description": "The number of connections in the pool. This can't exceed the number of available connections for your service plan.", + "example": 15, + "type": "integer" + }, + "username": { + "default": null, + "description": "The username of the client making the connection. The default of `null` reuses the inbound user.", + "example": "john_doe", + "nullable": true, + "type": "string" + } + }, + "required": [ + "label", + "mode", + "size", + "username" + ], "type": "object", "x-akamai": { - "file-path": "schemas/added-empty-obj.yaml" + "file-path": "schemas/database-postgresql-conn-pool.yaml" } } } }, - "description": "The connection pool was successfully deleted." + "description": "The connection pool updated successfully." }, "default": { "content": { @@ -40816,6 +42880,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -40856,20 +42921,20 @@ ] } ], - "summary": "Delete a PostgreSQL connection pool", + "summary": "Update a PostgreSQL connection pool", "tags": [ "PostgreSQL" ], "x-akamai": { "tabs": [ { - "syntax": "linode-cli postgresql-conn-pool-delete 890", + "syntax": "linode-cli databases postgresql-conn-pool-update 123 \\\n --database PostgreSQL-DB-video-streaming-data-legacy\n --mode session\n --label Connection-Pool-01 \\\n --size 10 \\\n --username john-doe", "title": "CLI", "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" } ] }, - "x-linode-cli-action": "postgresql-conn-pool-delete", + "x-linode-cli-action": "postgresql-conn-pool-update", "x-linode-grant": "read_write", "x-linode-iam": [ { @@ -40879,103 +42944,29 @@ } ] }, - "parameters": [ - { - "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", - "example": "{{apiVersion}}", - "in": "path", - "name": "apiVersion", - "required": true, - "schema": { - "enum": [ - "v4", - "v4beta" - ], - "example": "v4", - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/api-version-path.yaml" - } - }, - { - "description": "The unique identifier for a PostgreSQL Managed Database. 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 desired one.", - "example": "{{postgresqlInstanceId}}", - "in": "path", - "name": "postgresqlInstanceId", - "required": true, - "schema": { - "example": 123458, - "type": "integer" - }, - "x-akamai": { - "file-path": "parameters/postgresql-instance-id-path.yaml" - } - }, - { - "description": "The `label` set for a specific connection pool in a PostgreSQL Managed Database. Run the [List PostgreSQL connection pools](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-conn-pools) operation and store the `label` for the desired one.", - "example": "{{poolName}}", - "in": "path", - "name": "poolName", - "required": true, - "schema": { - "example": "Connection-Pool-01", - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/postgresql-pool-name-path.yaml" - } - } - ], - "x-akamai": { - "file-path": "paths/postgresql-connection-pool.yaml", - "path-info": "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/connection-pools/{poolName}" - }, - "x-linode-cli-command": "databases" - }, - "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/credentials": { - "get": { - "description": "Display the root username and password for an accessible PostgreSQL Managed Database. The database's status needs to be `active`.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-creds-view 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "delete": { + "description": "Delete a specific connection pool from a PostgreSQL Managed Database.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli postgresql-conn-pool-delete 890\n```\n\n[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-postgre-sql-instance-credentials" + "url": "https://techdocs.akamai.com/linode-api/reference/delete-databases-postgre-sql-conn-pool" }, - "operationId": "get-databases-postgre-sql-instance-credentials", + "operationId": "delete-databases-postgre-sql-conn-pool", "responses": { "200": { "content": { "application/json": { - "example": { - "password": "s3cur3P@ssw0rd", - "username": "jperez" - }, + "example": {}, "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 - } - }, + "description": "The API responds with an empty object.", + "maxProperties": 0, "type": "object", "x-akamai": { - "file-path": "schemas/database-credentials.yaml" + "file-path": "schemas/added-empty-obj.yaml" } } } }, - "description": "PostgreSQL Managed Database root username and password." + "description": "The connection pool deleted successfully." }, "default": { "content": { @@ -40991,6 +42982,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -41027,29 +43019,29 @@ }, { "oauth": [ - "databases:read_only" + "databases:read_write" ] } ], - "summary": "Get PostgreSQL Managed Database credentials", + "summary": "Delete a PostgreSQL connection pool", "tags": [ "PostgreSQL" ], "x-akamai": { "tabs": [ { - "syntax": "linode-cli databases postgresql-creds-view 123", + "syntax": "linode-cli postgresql-conn-pool-delete 890", "title": "CLI", "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" } ] }, - "x-linode-cli-action": "postgresql-creds-view", - "x-linode-grant": "read_only", + "x-linode-cli-action": "postgresql-conn-pool-delete", + "x-linode-grant": "read_write", "x-linode-iam": [ { "roles": [ - "database_viewer" + "database_admin" ] } ] @@ -41086,38 +43078,71 @@ "x-akamai": { "file-path": "parameters/postgresql-instance-id-path.yaml" } + }, + { + "description": "The `label` set for a specific connection pool in a PostgreSQL Managed Database. Run the [List PostgreSQL connection pools](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-conn-pools) operation and store the `label` for the desired one.", + "example": "{{poolName}}", + "in": "path", + "name": "poolName", + "required": true, + "schema": { + "example": "Connection-Pool-01", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/postgresql-pool-name-path.yaml" + } } ], "x-akamai": { - "file-path": "paths/postgresql-credentials.yaml", - "path-info": "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/credentials" + "file-path": "paths/postgresql-connection-pool.yaml", + "path-info": "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/connection-pools/{poolName}" }, "x-linode-cli-command": "databases" }, - "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/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.\n\n- The database's status needs to be `active`.\n\n- It may take several seconds for credentials to reset.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-creds-reset 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/credentials": { + "get": { + "description": "Display the root username and password for an accessible PostgreSQL Managed Database. The database's status can't be `suspended`.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-creds-view 123\n```\n\n[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-databases-postgre-sql-instance-credentials-reset" + "url": "https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-credentials" }, - "operationId": "post-databases-postgre-sql-instance-credentials-reset", + "operationId": "get-databases-postgre-sql-instance-credentials", "responses": { "200": { "content": { "application/json": { - "example": {}, + "example": { + "password": "s3cur3P@ssw0rd", + "username": "adevi" + }, "schema": { - "description": "The API responds with an empty object.", - "maxProperties": 0, + "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/added-empty-obj.yaml" + "file-path": "schemas/database-credentials.yaml" } } } }, - "description": "PostgreSQL Managed Database instance credentials successfully reset." + "description": "PostgreSQL Managed Database root username and password." }, "default": { "content": { @@ -41133,6 +43158,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -41169,29 +43195,29 @@ }, { "oauth": [ - "databases:read_write" + "databases:read_only" ] } ], - "summary": "Reset PostgreSQL Managed Database credentials", + "summary": "Get PostgreSQL Managed Database credentials", "tags": [ "PostgreSQL" ], "x-akamai": { "tabs": [ { - "syntax": "linode-cli databases postgresql-creds-reset 123", + "syntax": "linode-cli databases postgresql-creds-view 123", "title": "CLI", "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" } ] }, - "x-linode-cli-action": "postgresql-creds-reset", - "x-linode-grant": "read_write", + "x-linode-cli-action": "postgresql-creds-view", + "x-linode-grant": "read_only", "x-linode-iam": [ { "roles": [ - "database_admin" + "database_viewer" ] } ] @@ -41231,19 +43257,19 @@ } ], "x-akamai": { - "file-path": "paths/postgresql-reset.yaml", - "path-info": "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/credentials/reset" + "file-path": "paths/postgresql-credentials.yaml", + "path-info": "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/credentials" }, "x-linode-cli-command": "databases" }, - "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/patch": { + "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/credentials/reset": { "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.\n\n- The database's status needs to be `active`.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_upgrade` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-patch 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n- The database's status can't be `suspended`.\n\n- It may take several seconds for credentials to reset.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-creds-reset 123\n```\n\n[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-databases-postgre-sql-instance-patch" + "url": "https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instance-credentials-reset" }, - "operationId": "post-databases-postgre-sql-instance-patch", + "operationId": "post-databases-postgre-sql-instance-credentials-reset", "responses": { "200": { "content": { @@ -41259,7 +43285,7 @@ } } }, - "description": "PostgreSQL Managed Database instance patch request successful." + "description": "PostgreSQL Managed Database instance credentials successfully reset." }, "default": { "content": { @@ -41275,6 +43301,150 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "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 PostgreSQL Managed Database credentials", + "tags": [ + "PostgreSQL" + ], + "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" + } + ] + }, + "x-linode-cli-action": "postgresql-creds-reset", + "x-linode-grant": "read_write", + "x-linode-iam": [ + { + "roles": [ + "database_admin" + ] + } + ] + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "example": "v4", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "The unique identifier for a PostgreSQL Managed Database. 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 desired one.", + "example": "{{postgresqlInstanceId}}", + "in": "path", + "name": "postgresqlInstanceId", + "required": true, + "schema": { + "example": 123458, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/postgresql-instance-id-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/postgresql-reset.yaml", + "path-info": "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/credentials/reset" + }, + "x-linode-cli-command": "databases" + }, + "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/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.\n\n- The database's status can't be `suspended`.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_upgrade` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-patch 123\n```\n\n[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-databases-postgre-sql-instance-patch" + }, + "operationId": "post-databases-postgre-sql-instance-patch", + "responses": { + "200": { + "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": { + "content": { + "application/json": { + "example": { + "errors": [ + { + "reason": "Invalid JSON" + } + ] + }, + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -41380,7 +43550,7 @@ }, "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/resume": { "post": { - "description": "Resume a suspended PostgreSQL Managed Database from your account. This resumes billing for the cluster.\n\n- The database's status needs to be `suspended`.\n\n- A successful request triggers a `database_resume` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-resume 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Resume a suspended PostgreSQL Managed Database from your account. This resumes billing for the cluster.\n\n- The database's status needs to be `suspended`.\n\n- A successful request triggers a `database_resume` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-resume 123\n```\n\n[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/resume-databases-postgre-sql-instance" @@ -41417,6 +43587,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -41521,7 +43692,7 @@ }, "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/ssl": { "get": { - "description": "Display the SSL CA certificate for an accessible PostgreSQL Managed Database. The database's status needs to be `active`.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-ssl-cert 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Display the SSL CA certificate for an accessible PostgreSQL Managed Database. The database's status can't be `suspended`.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-ssl-cert 123\n```\n\n[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-postgresql-instance-ssl" @@ -41569,6 +43740,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -41674,7 +43846,7 @@ }, "/{apiVersion}/databases/postgresql/instances/{postgresqlInstanceId}/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.\n\n- The database's status needs to be `active`.\n\n- Akamai deletes suspended clusters after 180 days.\n\n- A successful request triggers a `database_suspend` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-suspend 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n- Akamai deletes suspended clusters after 180 days.\n\n- A successful request triggers a `database_suspend` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli databases postgresql-suspend 123\n```\n\n[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/suspend-databases-postgre-sql-instance" @@ -41711,6 +43883,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -41815,7 +43988,7 @@ }, "/{apiVersion}/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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n\n\n**CLI**\n\n```shell\nlinode-cli databases types\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n\n\n**CLI**\n\n```shell\nlinode-cli databases types\n```\n\n[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" @@ -41863,7 +44036,6 @@ "data": [ { "class": "dedicated", - "deprecated": false, "disk": 25600, "engines": { "mysql": [ @@ -41883,6 +44055,18 @@ }, "quantity": 1 } + ], + "valkey": [ + { + "overrides": { + "disk": 0 + }, + "price": { + "hourly": 0.03, + "monthly": 20 + }, + "quantity": 1 + } ] }, "id": "g6-dedicated-1", @@ -41896,183 +44080,249 @@ "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, + "properties": { + "data": { + "description": "A list of objects returned for a response.", + "items": { + "additionalProperties": false, + "description": "Managed Database plan type object.", + "properties": { + "class": { + "description": "The Linode class category. This can be [dedicated](https://techdocs.akamai.com/cloud-computing/docs/dedicated-cpu-compute-instances), [shared](https://techdocs.akamai.com/cloud-computing/docs/shared-cpu-compute-instances), or [premium](https://techdocs.akamai.com/cloud-computing/docs/premium-compute-instances).\n\n> \ud83d\udcd8\n>\n> Premium plan Linodes are available in limited regions.", + "enum": [ + "dedicated", + "shared", + "premium", + "nanode", + "standard" + ], + "example": "dedicated", + "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": "Managed Database plan type object.", + "description": "Information for the supported third-party databases that can be used with Managed Databases.", "properties": { - "class": { - "description": "The Linode class category. This can be [dedicated](https://techdocs.akamai.com/cloud-computing/docs/dedicated-cpu-compute-instances), [shared](https://techdocs.akamai.com/cloud-computing/docs/shared-cpu-compute-instances), or [premium](https://techdocs.akamai.com/cloud-computing/docs/premium-compute-instances).\n\n> \ud83d\udcd8\n>\n> Premium plan Linodes are available in limited regions.", - "enum": [ - "dedicated", - "shared", - "premium" - ], - "example": "dedicated", - "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": { + "mysql": { + "description": "Pricing details for MySQL Managed Databases.", + "items": { + "additionalProperties": false, + "properties": { + "overrides": { "additionalProperties": false, + "description": "The amount of disk space set aside for Valkey databases of this plan type.", "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, + "disk": { + "description": "The amount of disk space set aside for Valkey database of this plan type. It overrides the plan's `disc` value.", + "example": 0, "type": "integer" } }, - "type": "object", - "x-akamai": { - "file-path": "schemas/database-type-engine.yaml" - } + "type": "object" }, - "type": "array" - }, - "postgresql": { - "description": "Pricing details for PostgreSQL Managed Databases.", - "items": { + "price": { "additionalProperties": false, + "description": "Cost in US dollars, broken down into hourly and monthly charges.", "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" + "hourly": { + "description": "Cost (in US dollars) per hour for this subscription tier.", + "example": 0.03, + "type": "number" }, - "quantity": { - "description": "The number of nodes for the Managed Database cluster for this subscription tier.", - "enum": [ - 1, - 2, - 3 - ], - "example": 1, - "type": "integer" + "monthly": { + "description": "Maximum cost (in US dollars) per month for this subscription tier.", + "example": 20, + "type": "number" } }, - "type": "object", - "x-akamai": { - "file-path": "schemas/database-type-engine.yaml" - } + "type": "object" }, - "type": "array" + "quantity": { + "description": "The number of nodes for the Managed Database cluster for this subscription tier, either `1`, `2`, or `3`.", + "enum": [ + 1, + 2, + 3 + ], + "example": 1, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/database-type-engine.yaml" } }, - "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 + "type": "array" }, - "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 + "postgresql": { + "description": "Pricing details for PostgreSQL Managed Databases.", + "items": { + "additionalProperties": false, + "properties": { + "overrides": { + "additionalProperties": false, + "description": "The amount of disk space set aside for Valkey databases of this plan type.", + "properties": { + "disk": { + "description": "The amount of disk space set aside for Valkey database of this plan type. It overrides the plan's `disc` value.", + "example": 0, + "type": "integer" + } + }, + "type": "object" + }, + "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, either `1`, `2`, or `3`.", + "enum": [ + 1, + 2, + 3 + ], + "example": 1, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/database-type-engine.yaml" + } + }, + "type": "array" }, - "vcpus": { - "description": "The number of CPUs allocated to databases of this plan type.", - "example": 1, - "type": "integer", - "x-linode-cli-display": 5 + "valkey": { + "description": "Pricing details for Valkey Managed Databases.", + "items": { + "additionalProperties": false, + "properties": { + "overrides": { + "additionalProperties": false, + "description": "The amount of disk space set aside for Valkey databases of this plan type.", + "properties": { + "disk": { + "description": "The amount of disk space set aside for Valkey database of this plan type. It overrides the plan's `disc` value.", + "example": 0, + "type": "integer" + } + }, + "type": "object" + }, + "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, either `1`, `2`, or `3`.", + "enum": [ + 1, + 2, + 3 + ], + "example": 1, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/database-type-engine.yaml" + } + }, + "type": "array" } }, - "type": "object", - "x-akamai": { - "file-path": "schemas/database-type.yaml" - } + "type": "object" }, - "type": "array" + "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": "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/get-databases-types-200.yaml" } @@ -42135,6 +44385,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -42215,7 +44466,7 @@ }, "/{apiVersion}/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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n\n\n**CLI**\n\n```shell\nlinode-cli databases type-view\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n\n\n**CLI**\n\n```shell\nlinode-cli databases type-view\n```\n\n[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" @@ -42280,6 +44531,18 @@ }, "quantity": 1 } + ], + "valkey": [ + { + "overrides": { + "disk": 0 + }, + "price": { + "hourly": 0.1603, + "monthly": 117 + }, + "quantity": 1 + } ] }, "id": "g6-dedicated-1", @@ -42296,7 +44559,9 @@ "enum": [ "dedicated", "shared", - "premium" + "premium", + "nanode", + "standard" ], "example": "dedicated", "type": "string" @@ -42316,6 +44581,18 @@ "items": { "additionalProperties": false, "properties": { + "overrides": { + "additionalProperties": false, + "description": "The amount of disk space set aside for Valkey databases of this plan type.", + "properties": { + "disk": { + "description": "The amount of disk space set aside for Valkey database of this plan type. It overrides the plan's `disc` value.", + "example": 0, + "type": "integer" + } + }, + "type": "object" + }, "price": { "additionalProperties": false, "description": "Cost in US dollars, broken down into hourly and monthly charges.", @@ -42334,7 +44611,7 @@ "type": "object" }, "quantity": { - "description": "The number of nodes for the Managed Database cluster for this subscription tier.", + "description": "The number of nodes for the Managed Database cluster for this subscription tier, either `1`, `2`, or `3`.", "enum": [ 1, 2, @@ -42356,6 +44633,70 @@ "items": { "additionalProperties": false, "properties": { + "overrides": { + "additionalProperties": false, + "description": "The amount of disk space set aside for Valkey databases of this plan type.", + "properties": { + "disk": { + "description": "The amount of disk space set aside for Valkey database of this plan type. It overrides the plan's `disc` value.", + "example": 0, + "type": "integer" + } + }, + "type": "object" + }, + "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, either `1`, `2`, or `3`.", + "enum": [ + 1, + 2, + 3 + ], + "example": 1, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/database-type-engine.yaml" + } + }, + "type": "array" + }, + "valkey": { + "description": "Pricing details for Valkey Managed Databases.", + "items": { + "additionalProperties": false, + "properties": { + "overrides": { + "additionalProperties": false, + "description": "The amount of disk space set aside for Valkey databases of this plan type.", + "properties": { + "disk": { + "description": "The amount of disk space set aside for Valkey database of this plan type. It overrides the plan's `disc` value.", + "example": 0, + "type": "integer" + } + }, + "type": "object" + }, "price": { "additionalProperties": false, "description": "Cost in US dollars, broken down into hourly and monthly charges.", @@ -42374,7 +44715,7 @@ "type": "object" }, "quantity": { - "description": "The number of nodes for the Managed Database cluster for this subscription tier.", + "description": "The number of nodes for the Managed Database cluster for this subscription tier, either `1`, `2`, or `3`.", "enum": [ 1, 2, @@ -42484,6 +44825,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -42575,367 +44917,581 @@ }, "x-linode-cli-command": "databases" }, - "/{apiVersion}/domains": { - "post": { - "description": "Adds a new domain to DNS Manager. You must own the domain before adding it here. Be sure to point your registrar to our nameservers. Akamai Cloud does not act as a registrar.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `account_domain_creator`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains create \\\n --type master \\\n --domain example.org \\\n --soa_email admin@example.org\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "/{apiVersion}/databases/valkey/config": { + "get": { + "description": "__Limited availability__ Lists all advanced parameters you can apply to a Valkey Managed Database, via our partner [Aiven](https://aiven.io/docs/products/valkey/reference/advanced-params).\n\n> \ud83d\udcd8\n>\n> Aiven may offer other parameters, but Akamai Managed Databases only supports the ones listed in this operation.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", - "url": "https://techdocs.akamai.com/linode-api/reference/post-domain" + "url": "https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-config" }, - "operationId": "post-domain", - "requestBody": { - "content": { - "application/json": { - "example": { - "domain": "example.org", - "expire_sec": 300, - "refresh_sec": 300, - "retry_sec": 300, - "soa_email": "admin@example.org", - "status": "active", - "ttl_sec": 300, - "type": "master" - }, - "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.\n\n> \ud83d\udcd8\n>\n> This is potentially dangerous, and should be set to an empty list unless you intend to use it.", - "example": [], - "items": { - "format": "ip", + "operationId": "get-databases-valkey-config", + "responses": { + "200": { + "content": { + "application/json": { + "example": { + "backup_hour": { + "description": "The hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.", + "example": 3, + "maximum": 23, + "minimum": 0, + "requires_restart": false, + "type": [ + "integer", + "null" + ] + }, + "backup_minute": { + "description": "The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.", + "example": 30, + "maximum": 59, + "minimum": 0, + "requires_restart": false, + "type": [ + "integer", + "null" + ] + }, + "frequent_snapshots": { + "default": true, + "description": "When enabled, Valkey will create frequent local RDB snapshots. When disabled, Valkey will only take RDB snapshots when a backup is created, based on the backup schedule. This setting is ignored when `valkey_persistence` is set to `off`.", + "requires_restart": false, + "type": "boolean" + }, + "valkey_acl_channels_default": { + "description": "Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.", + "enum": [ + "allchannels", + "resetchannels" + ], + "requires_restart": false, + "type": "string" + }, + "valkey_active_expire_effort": { + "default": 1, + "description": "Valkey reclaims expired keys both when accessed and in the background. The background process scans for expired keys to free memory. Increasing the active-expire-effort setting (default 1, max 10) uses more CPU to reclaim expired keys faster, reducing memory usage but potentially increasing latency.", + "maximum": 10, + "minimum": 1, + "requires_restart": false, + "type": "integer" + }, + "valkey_activedefrag": { + "default": false, + "description": "Enable active memory defragmentation. When enabled, Valkey relocates objects off sparsely-used memory pages to reduce fragmentation and return memory to the operating system. Defragmentation runs on the main thread and consumes CPU, so it may increase latency under load.", + "requires_restart": false, + "type": "boolean" + }, + "valkey_lfu_decay_time": { + "default": 1, + "description": "LFU maxmemory-policy counter decay time in minutes", + "maximum": 120, + "minimum": 1, + "requires_restart": false, + "type": "integer" + }, + "valkey_lfu_log_factor": { + "default": 10, + "description": "Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies", + "maximum": 100, + "minimum": 0, + "requires_restart": false, + "type": "integer" + }, + "valkey_maxmemory_policy": { + "default": "noeviction", + "description": "Valkey maxmemory-policy", + "enum": [ + "noeviction", + "allkeys-lru", + "volatile-lru", + "allkeys-random", + "volatile-random", + "volatile-ttl", + "volatile-lfu", + "allkeys-lfu" + ], + "requires_restart": false, + "type": [ + "string", + "null" + ] + }, + "valkey_number_of_databases": { + "description": "Set number of Valkey databases. Changing this will cause a restart of the Valkey service.", + "example": 16, + "maximum": 128, + "minimum": 1, + "requires_restart": true, + "type": "integer" + }, + "valkey_persistence": { + "description": "When persistence is 'rdb', Valkey does RDB dumps each 10 minutes if any key is changed. Also RDB dumps are done according to backup schedule for backup purposes. When persistence is 'off', no RDB dumps and backups are done, so data can be lost at any moment if service is restarted for any reason, or if service is powered off. Also service can't be forked.", + "enum": [ + "off", + "rdb" + ], + "requires_restart": true, + "type": "string" + }, + "valkey_pubsub_client_output_buffer_limit": { + "description": "Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.", + "example": 64, + "maximum": 512, + "minimum": 32, + "requires_restart": false, + "type": "integer" + }, + "valkey_timeout": { + "default": 300, + "description": "Valkey idle connection timeout in seconds", + "maximum": 2073600, + "minimum": 0, + "requires_restart": false, + "type": "integer" + } + }, + "schema": { + "additionalProperties": false, + "description": "Available [advanced parameters](https://aiven.io/docs/products/valkey/reference/advanced-params) for a Valkey Managed Database.", + "properties": { + "backup_hour": { + "additionalProperties": false, + "description": "Details of the `backup_hour` parameter, per Aiven's specifications.", + "properties": { + "description": { + "description": "The description for this parameter.", "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" - ] + "example": { + "description": "An example value for this parameter.", + "type": "integer" }, - "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", - "example": 300, - "type": "integer" - }, - "group": { - "deprecated": true, - "description": "__Deprecated__, __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" - ], - "status": "DEPRECATED" + "maximum": { + "description": "The maximum value allowed for this parameter.", + "type": "integer" }, - "x-linode-filterable": true - }, - "id": { - "description": "__Read-only__ This domain's unique ID.", - "example": 1234, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 + "minimum": { + "description": "The minimum value allowed for this parameter.", + "type": "integer" + }, + "requires_restart": { + "description": "Specifies if a change to this parameter requires a restart of the Valkey database.", + "type": "boolean" + }, + "type": { + "description": "Possible types of the `backup_hour` parameter.", + "items": { + "type": "string" + }, + "type": "array" + } }, - "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": "object" + }, + "backup_minute": { + "additionalProperties": false, + "description": "Details of the `backup_minute` parameter, per Aiven's specifications.", + "properties": { + "description": { + "description": "The description for this parameter.", "type": "string" }, - "type": "array" - }, - "refresh_sec": { - "default": 0, - "description": "The amount of time in seconds before this domain should be refreshed.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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" + "example": { + "description": "An example value for this parameter.", + "type": "integer" }, - "x-linode-cli-display": 4 + "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": "Specifies if a change to this parameter requires a restart of the Valkey database.", + "type": "boolean" + }, + "type": { + "description": "Possible types of the `backup_hour` parameter.", + "items": { + "type": "string" + }, + "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": "object" + }, + "frequent_snapshots": { + "additionalProperties": false, + "description": "Details of the `frequent_snapshots` parameter, per Aiven's specifications.", + "properties": { + "default": { + "description": "Specifies the default value of the `frequent_snapshots` parameters.", + "type": "boolean" + }, + "description": { + "description": "The description for this parameter.", "type": "string" }, - "type": "array", - "x-akamai": { - "labels": [ - "Filterable" - ] + "requires_restart": { + "description": "Specifies if a change to this parameter requires a restart of the Valkey database.", + "type": "boolean" }, - "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 86400.", - "example": 300, - "type": "integer" + "type": { + "description": "The format of this object.", + "type": "string" + } }, - "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 - } + "type": "object" }, - "title": "Domain", - "type": "object", - "x-akamai": { - "file-path": "schemas/domain.yaml" - } - } - ], - "required": [ - "domain", - "type" - ], - "x-akamai": { - "file-path": "schemas/added-post-domain.yaml" - } - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "example": { - "axfr_ips": [], - "description": null, - "domain": "example.org", - "expire_sec": 300, - "id": 1234, - "master_ips": [], - "refresh_sec": 300, - "retry_sec": 300, - "soa_email": "admin@example.org", - "status": "active", - "tags": [ - "example tag", - "another example" - ], - "ttl_sec": 300, - "type": "master" - }, - "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.\n\n> \ud83d\udcd8\n>\n> This is potentially dangerous, and should be set to an empty list unless you intend to use it.", - "example": [], - "items": { - "format": "ip", - "type": "string" + "valkey_acl_channel_default": { + "additionalProperties": false, + "description": "Details of the `valkey_acl_channel_default` parameter, per Aiven's specifications.", + "properties": { + "description": { + "description": "The description for this parameter.", + "type": "string" + }, + "enum": { + "description": "Possible values of the `valkey_acl_channel_default` parameter, per Aiven's specifications.", + "items": { + "type": "string" + }, + "type": "array" + }, + "requires_restart": { + "description": "Specifies if a change to this parameter requires a restart of the Valkey database.", + "type": "boolean" + }, + "type": { + "description": "The format of this object.", + "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" + "type": "object" }, - "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" - ] + "valkey_acl_channels_default": { + "additionalProperties": false, + "description": "Details of the `valkey_acl_channels_default` parameter, per Aiven's specifications.", + "properties": { + "description": { + "description": "The description for this parameter.", + "type": "string" + }, + "enum": { + "description": "Possible values of the `valkey_acl_channels_default` parameter.", + "items": { + "enum": [ + "allchannels", + "resetchannels" + ], + "type": "string" + }, + "type": "array" + }, + "requires_restart": { + "description": "Specifies if a change to this parameter requires a restart of the Valkey database.", + "type": "boolean" + }, + "type": { + "description": "The format of this object.", + "type": "string" + } }, - "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", - "example": 300, - "type": "integer" + "type": "object" }, - "group": { - "deprecated": true, - "description": "__Deprecated__, __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" - ], - "status": "DEPRECATED" + "valkey_active_expire_effort": { + "additionalProperties": false, + "description": "Details of the `valkey_active_expire_effort` parameter, per Aiven's specifications.", + "properties": { + "default": { + "description": "Specifies the default value of the `valkey_active_expire_effort` parameter.", + "type": "integer" + }, + "description": { + "description": "The description for this parameter.", + "type": "string" + }, + "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": "Specifies if a change to this parameter requires a restart of the Valkey database.", + "type": "boolean" + }, + "type": { + "description": "The format of this object.", + "type": "string" + } }, - "x-linode-filterable": true - }, - "id": { - "description": "__Read-only__ This domain's unique ID.", - "example": 1234, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 + "type": "object" }, - "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" + "valkey_activedefrag": { + "additionalProperties": false, + "description": "Details of the `valkey_activedefrag` parameter, per Aiven's specifications.", + "properties": { + "default": { + "description": "Specifies the default value of the `frequent_snapshots` parameters.", + "type": "boolean" + }, + "description": { + "description": "The description for this parameter.", + "type": "string" + }, + "requires_restart": { + "description": "Specifies if a change to this parameter requires a restart of the Valkey database.", + "type": "boolean" + }, + "type": { + "description": "The format of this object.", + "type": "string" + } }, - "type": "array" - }, - "refresh_sec": { - "default": 0, - "description": "The amount of time in seconds before this domain should be refreshed.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", - "example": 300, - "type": "integer" + "type": "object" }, - "retry_sec": { - "default": 0, - "description": "The interval, in seconds, at which a failed refresh should be retried.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", - "example": 300, - "type": "integer" + "valkey_lfu_decay_time": { + "additionalProperties": false, + "description": "Details of the `valkey_lfu_decay_time` parameter, per Aiven's specifications.", + "properties": { + "default": { + "description": "Specifies the default value of the `valkey_lfu_decay_time` parameter.", + "type": "integer" + }, + "description": { + "description": "The description for this parameter.", + "type": "string" + }, + "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": "Specifies if a change to this parameter requires a restart of the Valkey database.", + "type": "boolean" + }, + "type": { + "description": "The format of this object.", + "type": "string" + } + }, + "type": "object" }, - "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 + "valkey_lfu_log_factor": { + "additionalProperties": false, + "description": "Details of the `valkey_lfu_log_factor` parameter, per Aiven's specifications.", + "properties": { + "default": { + "description": "Specifies the default value of the `valkey_lfu_log_factor` parameter.", + "type": "integer" + }, + "description": { + "description": "The description for this parameter.", + "type": "string" + }, + "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": "Specifies if a change to this parameter requires a restart of the Valkey database.", + "type": "boolean" + }, + "type": { + "description": "The format of this object.", + "type": "string" + } + }, + "type": "object" }, - "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" + "valkey_maxmemory_policy": { + "additionalProperties": false, + "description": "Details of the `valkey_maxmemory_policy` parameter, per Aiven's specifications.", + "properties": { + "default": { + "description": "Specifies the default value of the `valkey_maxmemory_policy` parameter.", + "type": "string" + }, + "description": { + "description": "The description for this parameter.", + "type": "string" + }, + "enum": { + "description": "Possible values of the `valkey_maxmemory_policy` parameter. To learn more about them, see [Valkey Key eviction](https://valkey.io/topics/lru-cache/) documentation.", + "items": { + "enum": [ + "noeviction", + "allkeys-lru", + "allkeys-lfu", + "volatile-lru", + "volatile-lfu", + "volatile-ttl", + "allkeys-random", + "volatile-random" + ], + "type": "string" + }, + "type": "array" + }, + "requires_restart": { + "description": "Specifies if a change to this parameter requires a restart of the Valkey database.", + "type": "boolean" + }, + "type": { + "description": "Possible types of the `valkey_maxmemory_policy` parameter.", + "items": { + "type": "string" + }, + "type": "array" + } }, - "x-linode-cli-display": 4 + "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" + "valkey_number_of_databases": { + "additionalProperties": false, + "description": "Details of the `valkey_number_of_databases` parameter, 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": "Specifies if a change to this parameter requires a restart of the Valkey database.", + "type": "boolean" + }, + "type": { + "description": "The format of this object.", + "type": "string" + } }, - "type": "array", - "x-akamai": { - "labels": [ - "Filterable" - ] + "type": "object" + }, + "valkey_persistence": { + "additionalProperties": false, + "description": "Details of the `valkey_persistence` parameter, per Aiven's specifications.\n> \ud83d\udea7\n>\n> If you disable this parameter, you won't be able to fork and restore a database cluster from its backup snapshot.", + "properties": { + "description": { + "description": "The description for this parameter.", + "type": "string" + }, + "enum": { + "description": "Possible values of the `valkey_persistence` parameter.", + "items": { + "enum": [ + "rdb", + "off" + ], + "type": "string" + }, + "type": "array" + }, + "requires_restart": { + "description": "Specifies if a change to this parameter requires a restart of the Valkey database.", + "type": "boolean" + }, + "type": { + "description": "The format of this object.", + "type": "string" + } }, - "x-linode-filterable": true + "type": "object" }, - "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 86400.", - "example": 300, - "type": "integer" + "valkey_pubsub_client_output_buffer_limit": { + "additionalProperties": false, + "description": "Details of the `valkey_pubsub_client_output_buffer_limit` parameter, 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": "Specifies if a change to this parameter requires a restart of the Valkey database.", + "type": "boolean" + }, + "type": { + "description": "The format of this object.", + "type": "string" + } + }, + "type": "object" }, - "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 + "valkey_timeout": { + "additionalProperties": false, + "description": "Details of the `valkey_timeout` parameter, per Aiven's specifications.", + "properties": { + "default": { + "description": "Specifies the default value of the `valkey_timeout` parameter.", + "type": "integer" + }, + "description": { + "description": "The description for this parameter.", + "type": "string" + }, + "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": "Specifies if a change to this parameter requires a restart of the Valkey database.", + "type": "boolean" + }, + "type": { + "description": "The format of this object.", + "type": "string" + } + }, + "type": "object" } }, - "title": "Domain", "type": "object", "x-akamai": { - "file-path": "schemas/domain.yaml" + "file-path": "schemas/database-valkey-config-200.yaml" } } } }, - "description": "Domain added successfully." + "description": "Valkey Managed Database advanced parameters." }, "default": { "content": { @@ -42951,6 +45507,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -42987,609 +45544,1092 @@ }, { "oauth": [ - "domains:read_write" + "databases:read_only" ] } ], - "summary": "Create a domain", + "summary": "List Valkey Managed Database advanced parameters", "tags": [ - "Domains" + "Valkey" ], "x-akamai": { - "tabs": [ - { - "syntax": "linode-cli domains create \\\n --type master \\\n --domain example.org \\\n --soa_email admin@example.org", - "title": "CLI", - "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" - } - ] + "status": "LA" }, - "x-linode-cli-action": "create", - "x-linode-grant": "add_domains", + "x-linode-cli-skip": true, + "x-linode-grant": "read_only", "x-linode-iam": [ { "roles": [ - "account_domain_creator" + "database_viewer" ] } ] }, - "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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `domains:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli domains list\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "example": "v4", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/valkey-config.yaml", + "path-info": "/{apiVersion}/databases/valkey/config" + }, + "x-linode-cli-command": "databases" + }, + "/{apiVersion}/databases/valkey/instances": { + "post": { + "description": "__Limited availability__ Creates or restores a Valkey Managed Database.\n\n- New instances can take 10 to 15 minutes to deploy.\n\n- When you create a new Valkey Managed Database, our partner [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption) automatically enables disk encryption on each cluster.\n\n- Valkey databases automatically back up data every 12 hours and support configurable data persistence using Redis Database Backup (RDB). To change the default 12 hours to 24 hours, set the `backup_hour` parameter in the `engine_config` object. It may take another backup cycle for the new backup time to be applied.\n\n- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Valkey Managed Database. Configure the maintenance window for these updates with the [Update a Valkey Managed Database](https://techdocs.akamai.com/linode-api/reference/put-databases-valkey-instance) operation.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n- You can create a Valkey Managed Database in a VPC using the `private_network` object in the request.\n\n**Restore a Valkey Managed Database**\n\nInclude the `fork` object in the request to target a backed-up database. The only required value is `source`. If you provide other values, the forked cluster will use those settings. You can't change `engine`.\n\n> \ud83d\udcd8\n>\n> 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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `account_database_creator`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", - "url": "https://techdocs.akamai.com/linode-api/reference/get-domains" + "url": "https://techdocs.akamai.com/linode-api/reference/post-databases-valkey-instances" }, - "operationId": "get-domains", - "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": [ - { - "axfr_ips": [], - "description": null, - "domain": "example.org", - "expire_sec": 300, - "id": 1234, - "master_ips": [], - "refresh_sec": 300, - "retry_sec": 300, - "soa_email": "admin@example.org", - "status": "active", - "tags": [ - "example tag", - "another example" - ], - "ttl_sec": 300, - "type": "master" - } - ], - "page": 1, - "pages": 1, - "results": 1 + "operationId": "post-databases-valkey-instances", + "requestBody": { + "content": { + "application/json": { + "examples": { + "create-valkey-cluster": { + "summary": "Create Valkey database", + "value": { + "allow_list": [ + "192.0.2.61/24", + "192.0.2.124/24" + ], + "cluster_size": 1, + "engine": "valkey/8", + "engine_config": { + "frequent_snapshots": true, + "valkey_active_expire_effort": 3, + "valkey_lfu_decay_time": 20 + }, + "label": "example-db", + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, + "region": "us-east", + "ssl_connection": true, + "type": "g6-standard-2" + } }, - "schema": { - "additionalProperties": false, - "properties": { - "data": { - "items": { + "fork-valkey-cluster": { + "summary": "Restore Valkey database", + "value": { + "allow_list": [ + "192.0.2.61/24", + "192.0.2.124/24" + ], + "cluster_size": 1, + "engine_config": { + "frequent_snapshots": true, + "valkey_active_expire_effort": 3, + "valkey_lfu_decay_time": 20 + }, + "fork": { + "restore_time": "2025-12-29T20:40:15", + "source": 1234 + }, + "label": "example-db", + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, + "region": "us-east", + "ssl_connection": true, + "type": "g6-standard-2" + } + } + }, + "schema": { + "additionalProperties": false, + "description": "Managed Valkey Database request object.", + "oneOf": [ + { + "additionalProperties": false, + "description": "Managed Valkey Database request object.", + "properties": { + "allow_list": { + "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` node.", + "enum": [ + 1, + 2, + 3 + ], + "example": 3, + "type": "integer", + "x-linode-cli-display": 5 + }, + "engine": { + "description": "The `id` of the Managed Database engine. To get the available values, run the [List Managed Databases engines](https://techdocs.akamai.com/linode-api/reference/get-databases-engines) operation.", + "example": "valkey/8", + "type": "string" + }, + "engine_config": { "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.", + "description": "Advanced parameters applied to a Valkey Managed Database, via our partner [Aiven's specification](https://aiven.io/docs/products/valkey/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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification. Currently, only those listed here are supported for use in a Valkey Managed Database. You can also run the [Get Valkey Managed Database advanced parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-config) operation to see an up-to-date list.", "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.\n\n> \ud83d\udcd8\n>\n> 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" + "backup_hour": { + "description": "The hour of day (in UTC) when the backup for the service starts. New backups only start if the previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "type": "integer" }, - "description": { - "description": "A description for this domain. This is for display purposes only.", - "example": null, - "maxLength": 253, - "minLength": 1, + "backup_minute": { + "description": "The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.", + "maximum": 23, + "minimum": 0, "nullable": true, + "type": "integer" + }, + "frequent_snapshots": { + "description": "When enabled, Valkey creates frequent local RDB snapshots. When disabled, Valkey only takes RDB snapshots when a backup is created, based on the backup schedule. This setting is ignored when `valkey_persistence` is set to off.", + "type": "boolean" + }, + "valkey_acl_channels_default": { + "description": "Default ACL for pub/sub channels used when a Valkey user is created. Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.", "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 + "valkey_active_expire_effort": { + "default": 1, + "description": "Active expire effort. Valkey reclaims expired keys both when accessed and in the background. The background process scans for expired keys to free memory. Increasing the active-expire-effort setting uses more CPU to reclaim expired keys faster, reducing memory usage but potentially increasing latency.", + "maximum": 10, + "minimum": 1, + "type": "integer" }, - "expire_sec": { - "default": 0, - "description": "The amount of time in seconds that may pass before this domain is no longer authoritative.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", - "example": 300, + "valkey_activedefrag": { + "default": false, + "description": "Enables active memory defragmentation. When enabled, Valkey relocates objects off sparsely-used memory pages to reduce fragmentation and return memory to the operating system. Defragmentation runs on the main thread and consumes CPU, so it may increase latency under load.", + "example": false, + "type": "boolean" + }, + "valkey_lfu_decay_time": { + "default": 1, + "description": "LFU maxmemory-policy counter decay time in minutes.", + "maximum": 120, + "minimum": 1, "type": "integer" }, - "group": { - "deprecated": true, - "description": "__Deprecated__, __Filterable__ The group this domain belongs to. This is for display purposes only.", - "example": null, - "maxLength": 50, - "minLength": 1, + "valkey_lfu_log_factor": { + "default": 10, + "description": "Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies.", + "maximum": 100, + "type": "integer" + }, + "valkey_maxmemory_policy": { + "default": "noeviction", + "description": "Valkey maxmemory-policy.", "nullable": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ], - "status": "DEPRECATED" - }, - "x-linode-filterable": true + "type": "string" }, - "id": { - "description": "__Read-only__ This domain's unique ID.", - "example": 1234, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 + "valkey_number_of_databases": { + "description": "Set number of Valkey databases. Changing this will cause a restart of the Valkey service.", + "maximum": 128, + "minimum": 1, + "type": "integer" }, - "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" + "valkey_persistence": { + "default": "rdb", + "description": "- If set to `rdb`, Valkey generates periodic snapshots at least according to the backup schedule (either every twelve hours with an initial time chosen by the system or every 24 hours based on `backup_hour` and `backup_minute`, if set). Combined with the `frequent_snapshots` parameter set to `true`, Valkey generates snapshots every ten minutes if data has changed, which limits data loss in case nodes have to restart for any reason.\n\n- If set to `off`, Valkey never takes snapshots. This means no backups and no possibility of restoring the cluster. Service restarts are guaranteed to lose data. The benefit is avoiding the performance penalty creating a snapshot entails.\n\n> \ud83d\udcd8\n>\n>`valkey_persistence` can't be set `off`, if `backup_hour` or `backup_minute` are configured. When set to `off`, you can't configure the maintentace window when [Updating a Valkey Managed Database](https://techdocs.akamai.com/linode-api/reference/put-databases-valkey-instance).", + "enum": [ + "off", + "rdb" + ], + "type": "string" }, - "refresh_sec": { - "default": 0, - "description": "The amount of time in seconds before this domain should be refreshed.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", - "example": 300, + "valkey_pubsub_client_output_buffer_limit": { + "description": "Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.", + "maximum": 262144, + "minimum": 32, "type": "integer" }, - "retry_sec": { - "default": 0, - "description": "The interval, in seconds, at which a failed refresh should be retried.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", - "example": 300, + "valkey_timeout": { + "default": 300, + "description": "Valkey idle connection timeout in seconds.", + "maximum": 2073600, "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/database-valkey-engine-config.yaml" + } + }, + "label": { + "description": "__Filterable__ A name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either engine type.", + "example": "example-db", + "maxLength": 32, + "minLength": 3, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a Valkey Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` to allow clients outside of the VPC to connect to the database using a public IP address. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" }, - "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 + "subnet_id": { + "description": "If the `vpc_id` includes subnets, you can include the one you want to limit access to the database. From the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation, store the `id` for the applicable `subnets` object.", + "example": 456, + "type": "integer" }, - "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 + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the `id` for the applicable VPC.", + "example": 123, + "type": "integer" + } + }, + "type": "object" + }, + "region": { + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", + "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 Valkey Managed Database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instance-credentials) operation for access information.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "__Filterable__ The `id` of 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 + } + }, + "required": [ + "label", + "type", + "engine", + "region" + ], + "title": "Create Valkey database", + "type": "object", + "x-akamai": { + "file-path": "schemas/database-valkey-create.yaml" + } + }, + { + "additionalProperties": false, + "description": "Managed Valkey Database request object.", + "properties": { + "allow_list": { + "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` node.", + "enum": [ + 1, + 2, + 3 + ], + "example": 3, + "type": "integer", + "x-linode-cli-display": 5 + }, + "engine_config": { + "additionalProperties": false, + "description": "Advanced parameters applied to a Valkey Managed Database, via our partner [Aiven's specification](https://aiven.io/docs/products/valkey/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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification. Currently, only those listed here are supported for use in a Valkey Managed Database. You can also run the [Get Valkey Managed Database advanced parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-config) operation to see an up-to-date list.", + "properties": { + "backup_hour": { + "description": "The hour of day (in UTC) when the backup for the service starts. New backups only start if the previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "type": "integer" }, - "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 + "backup_minute": { + "description": "The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "nullable": true, + "type": "integer" }, - "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 86400.", - "example": 300, + "frequent_snapshots": { + "description": "When enabled, Valkey creates frequent local RDB snapshots. When disabled, Valkey only takes RDB snapshots when a backup is created, based on the backup schedule. This setting is ignored when `valkey_persistence` is set to off.", + "type": "boolean" + }, + "valkey_acl_channels_default": { + "description": "Default ACL for pub/sub channels used when a Valkey user is created. Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.", + "type": "string" + }, + "valkey_active_expire_effort": { + "default": 1, + "description": "Active expire effort. Valkey reclaims expired keys both when accessed and in the background. The background process scans for expired keys to free memory. Increasing the active-expire-effort setting uses more CPU to reclaim expired keys faster, reducing memory usage but potentially increasing latency.", + "maximum": 10, + "minimum": 1, "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`).", + "valkey_activedefrag": { + "default": false, + "description": "Enables active memory defragmentation. When enabled, Valkey relocates objects off sparsely-used memory pages to reduce fragmentation and return memory to the operating system. Defragmentation runs on the main thread and consumes CPU, so it may increase latency under load.", + "example": false, + "type": "boolean" + }, + "valkey_lfu_decay_time": { + "default": 1, + "description": "LFU maxmemory-policy counter decay time in minutes.", + "maximum": 120, + "minimum": 1, + "type": "integer" + }, + "valkey_lfu_log_factor": { + "default": 10, + "description": "Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies.", + "maximum": 100, + "type": "integer" + }, + "valkey_maxmemory_policy": { + "default": "noeviction", + "description": "Valkey maxmemory-policy.", + "nullable": true, + "type": "string" + }, + "valkey_number_of_databases": { + "description": "Set number of Valkey databases. Changing this will cause a restart of the Valkey service.", + "maximum": 128, + "minimum": 1, + "type": "integer" + }, + "valkey_persistence": { + "default": "rdb", + "description": "- If set to `rdb`, Valkey generates periodic snapshots at least according to the backup schedule (either every twelve hours with an initial time chosen by the system or every 24 hours based on `backup_hour` and `backup_minute`, if set). Combined with the `frequent_snapshots` parameter set to `true`, Valkey generates snapshots every ten minutes if data has changed, which limits data loss in case nodes have to restart for any reason.\n\n- If set to `off`, Valkey never takes snapshots. This means no backups and no possibility of restoring the cluster. Service restarts are guaranteed to lose data. The benefit is avoiding the performance penalty creating a snapshot entails.\n\n> \ud83d\udcd8\n>\n>`valkey_persistence` can't be set `off`, if `backup_hour` or `backup_minute` are configured. When set to `off`, you can't configure the maintentace window when [Updating a Valkey Managed Database](https://techdocs.akamai.com/linode-api/reference/put-databases-valkey-instance).", "enum": [ - "master", - "slave" + "off", + "rdb" ], - "example": "master", - "type": "string", - "x-linode-cli-display": 3 + "type": "string" + }, + "valkey_pubsub_client_output_buffer_limit": { + "description": "Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.", + "maximum": 262144, + "minimum": 32, + "type": "integer" + }, + "valkey_timeout": { + "default": 300, + "description": "Valkey idle connection timeout in seconds.", + "maximum": 2073600, + "type": "integer" } }, - "title": "Domain", "type": "object", "x-akamai": { - "file-path": "schemas/domain.yaml" + "file-path": "schemas/database-valkey-engine-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-domains-200.yaml" - } - } - } - }, - "description": "A paginated list of Domains you have registered." - }, - "default": { - "content": { - "application/json": { - "example": { - "errors": [ - { - "reason": "Invalid JSON" - } - ] - }, - "schema": { - "additionalProperties": false, - "properties": { - "errors": { - "items": { + "fork": { "additionalProperties": false, - "description": "An object for describing a single error that occurred during the processing of a request.", + "description": "Include this object to restore a Managed Database by forking from a backup.\n\n- If you include this object, all other fields are optional.\n\n- Don't include this object if you're creating a new Managed Database.", "properties": { - "field": { - "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", - "example": "fieldname", + "restore_time": { + "description": "A specific database timestamp to restore from. To get available values, run the [List Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-instances) operation and check `available_restore_times` for the Valkey cluster you want to create a fork from. If you don't provide this value, the fork is created from the latest available time.", + "example": "2024-10-14T19:55:12", "type": "string" }, - "reason": { - "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", - "example": "fieldname must be a valid value", - "type": "string" + "source": { + "description": "The unique identifier for the database to fork from. This is the `id` value returned by the [List Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-instances) operation.", + "example": 176881, + "type": "integer" } }, + "required": [ + "source" + ], "type": "object", "x-akamai": { - "file-path": "schemas/error-object.yaml" + "file-path": "schemas/database-restore-fork-valkey.yaml" } }, - "type": "array" + "label": { + "description": "__Filterable__ A name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either engine type.", + "example": "example-db", + "maxLength": 32, + "minLength": 3, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a Valkey Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` to allow clients outside of the VPC to connect to the database using a public IP address. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "If the `vpc_id` includes subnets, you can include the one you want to limit access to the database. From the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation, store the `id` for the applicable `subnets` object.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the `id` for the applicable VPC.", + "example": 123, + "type": "integer" + } + }, + "type": "object" + }, + "region": { + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", + "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 Valkey Managed Database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instance-credentials) operation for access information.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "__Filterable__ The `id` of 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 + } + }, + "required": [ + "fork" + ], + "title": "Restore Valkey database", + "type": "object", + "x-akamai": { + "file-path": "schemas/database-valkey-restore.yaml" } - }, - "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": "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" - } - ] - }, - "x-linode-cli-action": [ - "list", - "ls" - ], - "x-linode-grant": "read_only", - "x-linode-iam": [ - { - "roles": [ - "domain_viewer" - ] - } - ] - }, - "parameters": [ - { - "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", - "example": "{{apiVersion}}", - "in": "path", - "name": "apiVersion", - "required": true, - "schema": { - "enum": [ - "v4", - "v4beta" - ], - "example": "v4", - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/api-version-path.yaml" - } - } - ], - "x-akamai": { - "file-path": "paths/domains.yaml", - "path-info": "/{apiVersion}/domains" - }, - "x-linode-cli-command": "domains" - }, - "/{apiVersion}/domains/import": { - "post": { - "description": "Imports a domain zone from a remote nameserver. Your nameserver must allow zone transfers (AXFR) from the following IPs:\n\n- 96.126.114.97\n- 96.126.114.98\n- 2600:3c00::5e\n- 2600:3c00::5f\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains import --domain example.com --remote_nameserver examplenameserver.com\n```\n\n[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-import-domain" - }, - "operationId": "post-import-domain", - "requestBody": { - "content": { - "application/json": { - "example": { - "domain": "example.com", - "remote_nameserver": "examplenameserver.com" - }, - "schema": { - "additionalProperties": false, - "properties": { - "domain": { - "description": "The domain to import.", - "example": "{{domain}}", - "type": "string" - }, - "remote_nameserver": { - "description": "The remote nameserver that allows zone transfers (AXFR).", - "example": "{{remote_nameserver}}", - "type": "string" } - }, - "required": [ - "domain", - "remote_nameserver" ], "type": "object", "x-akamai": { - "file-path": "schemas/added-post-import-domain.yaml" + "file-path": "schemas/database-valkey-request.yaml" } } } - } + }, + "required": true, + "x-linode-cli-allowed-defaults": [ + "engine", + "region", + "type" + ] }, "responses": { "200": { "content": { "application/json": { "example": { - "axfr_ips": [], - "description": null, - "domain": "example.org", - "expire_sec": 300, - "id": 1234, - "master_ips": [], - "refresh_sec": 300, - "retry_sec": 300, - "soa_email": "admin@example.org", - "status": "active", - "tags": [ - "example tag", - "another example" + "allow_list": [ + "192.0.2.61/24", + "192.0.2.124/24" ], - "ttl_sec": 300, - "type": "master" + "available_restore_times": [], + "cluster_size": 1, + "created": "2025-12-29T20:29:15", + "encrypted": true, + "engine": "valkey", + "engine_config": { + "frequent_snapshots": true, + "valkey_active_expire_effort": 1, + "valkey_lfu_decay_time": 1, + "valkey_lfu_log_factor": 10, + "valkey_maxmemory_policy": "noeviction", + "valkey_timeout": 300 + }, + "hosts": { + "primary": "a29-akamai-testuser-1000-default.g2a.akamaidb.net" + }, + "id": 29, + "label": "sampledb-valkey", + "members": {}, + "port": 13670, + "private_network": null, + "region": "us-east", + "ssl_connection": true, + "status": "provisioning", + "total_disk_size_gb": 0, + "type": "g6-nanode-1", + "updated": "2025-12-29T20:29:16", + "updates": { + "day_of_week": 7, + "duration": 4, + "frequency": "weekly", + "hour_of_day": 15, + "pending": [] + }, + "used_disk_size_gb": null, + "version": "8.1" }, "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.", + "description": "Managed PostgreSQL Databases object.", "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.\n\n> \ud83d\udcd8\n>\n> This is potentially dangerous, and should be set to an empty list unless you intend to use it.", - "example": [], + "allow_list": { + "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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": "ip", + "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" }, - "description": { - "description": "A description for this domain. This is for display purposes only.", - "example": null, - "maxLength": 253, - "minLength": 1, + "available_restore_times": { + "description": "Possible times you can create a fork from for a Valkey database.", + "items": { + "example": "2024-10-03T20:48:05", + "type": "string" + }, "nullable": true, + "type": "array" + }, + "cluster_size": { + "default": 1, + "description": "The number of Linode instance nodes deployed to the Managed Database, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` 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", + "readOnly": 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]+)$", + "encrypted": { + "default": true, + "description": "__Read-only__ Whether the Managed Databases is encrypted. Currently the only possible value is `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": 2, + "x-linode-cli-display": 6, "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", - "example": 300, - "type": "integer" + "engine_config": { + "additionalProperties": false, + "description": "Advanced parameters applied to a Valkey Managed Database, via our partner [Aiven's specification](https://aiven.io/docs/products/valkey/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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification. Currently, only those listed here are supported for use in a Valkey Managed Database. You can also run the [Get Valkey Managed Database advanced parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-config) operation to see an up-to-date list.", + "properties": { + "backup_hour": { + "description": "The hour of day (in UTC) when the backup for the service starts. New backups only start if the previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "backup_minute": { + "description": "The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "nullable": true, + "type": "integer" + }, + "frequent_snapshots": { + "description": "When enabled, Valkey creates frequent local RDB snapshots. When disabled, Valkey only takes RDB snapshots when a backup is created, based on the backup schedule. This setting is ignored when `valkey_persistence` is set to off.", + "type": "boolean" + }, + "valkey_acl_channels_default": { + "description": "Default ACL for pub/sub channels used when a Valkey user is created. Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.", + "type": "string" + }, + "valkey_active_expire_effort": { + "default": 1, + "description": "Active expire effort. Valkey reclaims expired keys both when accessed and in the background. The background process scans for expired keys to free memory. Increasing the active-expire-effort setting uses more CPU to reclaim expired keys faster, reducing memory usage but potentially increasing latency.", + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "valkey_activedefrag": { + "default": false, + "description": "Enables active memory defragmentation. When enabled, Valkey relocates objects off sparsely-used memory pages to reduce fragmentation and return memory to the operating system. Defragmentation runs on the main thread and consumes CPU, so it may increase latency under load.", + "example": false, + "type": "boolean" + }, + "valkey_lfu_decay_time": { + "default": 1, + "description": "LFU maxmemory-policy counter decay time in minutes.", + "maximum": 120, + "minimum": 1, + "type": "integer" + }, + "valkey_lfu_log_factor": { + "default": 10, + "description": "Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies.", + "maximum": 100, + "type": "integer" + }, + "valkey_maxmemory_policy": { + "default": "noeviction", + "description": "Valkey maxmemory-policy.", + "nullable": true, + "type": "string" + }, + "valkey_number_of_databases": { + "description": "Set number of Valkey databases. Changing this will cause a restart of the Valkey service.", + "maximum": 128, + "minimum": 1, + "type": "integer" + }, + "valkey_persistence": { + "default": "rdb", + "description": "- If set to `rdb`, Valkey generates periodic snapshots at least according to the backup schedule (either every twelve hours with an initial time chosen by the system or every 24 hours based on `backup_hour` and `backup_minute`, if set). Combined with the `frequent_snapshots` parameter set to `true`, Valkey generates snapshots every ten minutes if data has changed, which limits data loss in case nodes have to restart for any reason.\n\n- If set to `off`, Valkey never takes snapshots. This means no backups and no possibility of restoring the cluster. Service restarts are guaranteed to lose data. The benefit is avoiding the performance penalty creating a snapshot entails.\n\n> \ud83d\udcd8\n>\n>`valkey_persistence` can't be set `off`, if `backup_hour` or `backup_minute` are configured. When set to `off`, you can't configure the maintentace window when [Updating a Valkey Managed Database](https://techdocs.akamai.com/linode-api/reference/put-databases-valkey-instance).", + "enum": [ + "off", + "rdb" + ], + "type": "string" + }, + "valkey_pubsub_client_output_buffer_limit": { + "description": "Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.", + "maximum": 262144, + "minimum": 32, + "type": "integer" + }, + "valkey_timeout": { + "default": 300, + "description": "Valkey idle connection timeout in seconds.", + "maximum": 2073600, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/database-valkey-engine-config.yaml" + }, + "x-linode-cli-display": 7 }, - "group": { - "deprecated": true, - "description": "__Deprecated__, __Filterable__ The group this domain belongs to. This is for display purposes only.", - "example": null, - "maxLength": 50, - "minLength": 1, - "nullable": 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 database.", + "properties": { + "restore_time": { + "description": "The database timestamp from which it was restored. This is _not_ when the fork was created.", + "example": "2024-10-14T19:55:12", + "type": "string" + }, + "source": { + "description": "The unique identifier for the database that was forked from.", + "example": 176881, + "type": "integer" + } + }, + "type": "object" + }, + "hosts": { + "additionalProperties": false, + "description": "__Read-only__ The primary hostname and standby read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", + "properties": { + "endpoints": { + "description": "__Read-only__ A structured inventory of all connection points for a Managed Database instance.", + "items": { + "additionalProperties": false, + "properties": { + "address": { + "description": "The DNS hostname that resolves to either the `primary` or `standby` host, based on this object's `role`.", + "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "type": "string" + }, + "port": { + "description": "The port number used for the connection.", + "example": 3306, + "type": "integer" + }, + "public_access": { + "description": "Whether `public_access` has been enabled for the connection point.", + "example": false, + "type": "boolean" + }, + "role": { + "description": "Whether the endpoint connects to the `primary` or `standby` hostname, as defined in `hosts`.", + "enum": [ + "primary", + "standby" + ], + "example": "primary", + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, + "primary": { + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "format": "hostname", + "nullable": true, + "type": "string" + }, + "standby": { + "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "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 name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either engine type.", + "example": "example-db", + "maxLength": 32, + "minLength": 3, "type": "string", "x-akamai": { "labels": [ "Filterable" - ], - "status": "DEPRECATED" + ] }, + "x-linode-cli-display": 2, "x-linode-filterable": true }, - "id": { - "description": "__Read-only__ This domain's unique ID.", - "example": 1234, + "members": { + "additionalProperties": { + "enum": [ + "primary", + "failover" + ], + "type": "string" + }, + "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": "integer", - "x-linode-cli-display": 1 + "type": "object" }, - "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" + "platform": { + "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service, either `rdbms-legacy` or `rdbms-default`.", + "enum": [ + "rdbms-legacy", + "rdbms-default" + ], + "example": "rdbms-default", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] }, - "type": "array" + "x-linode-cli-display": 8, + "x-linode-filterable": true }, - "refresh_sec": { - "default": 0, - "description": "The amount of time in seconds before this domain should be refreshed.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", - "example": 300, + "port": { + "description": "__Read-only__ The access port for this Managed Database.", + "example": 3306, + "readOnly": true, "type": "integer" }, - "retry_sec": { - "default": 0, - "description": "The interval, in seconds, at which a failed refresh should be retried.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", - "example": 300, - "type": "integer" + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` allows clients outside of the VPC to connect to the database using a public IP address.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The VPC's `subnet_id` used to control access to the database.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database.", + "example": 123, + "type": "integer" + } + }, + "type": "object" }, - "soa_email": { - "description": "Start of Authority email address. This is required for `type` master domains.", - "example": "admin@example.org", - "format": "email", + "region": { + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", + "example": "us-east", "type": "string", - "x-linode-cli-display": 5 + "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": { - "default": "active", - "description": "Used to control whether this domain is currently being rendered.", + "description": "__Filterable__, __Read-only__ The operating status of the Managed Database, which can be one of the following: `provisioning`, `active`, `suspending`, `suspended`, `resuming`, `updating`, or `resizing`.", "enum": [ - "disabled", - "active" + "provisioning", + "active", + "suspending", + "suspended", + "resuming", + "updating", + "resizing" ], "example": "active", + "readOnly": true, "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-cli-color": { "active": "green", - "default_": "red", - "disabled": "yellow", - "edit_mode": "yellow" + "default_": "white", + "degraded": "red", + "failed": "red", + "provisioning": "yellow", + "restoring": "yellow", + "resuming": "yellow" }, - "x-linode-cli-display": 4 + "x-linode-cli-display": 100, + "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", + "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 `id` of 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 }, - "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 86400.", - "example": 300, + "updated": { + "description": "__Read-only__ When this Managed Database was last updated.", + "example": "2022-01-01T00:01:01", + "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": { + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, + "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", + "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 time when a maintenance update will be applied.", + "example": "2024-10-14T19:55:12", + "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. This is `null` for Valkey", + "example": 2, + "nullable": true, + "readOnly": true, "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", + "version": { + "description": "__Filterable__ The Managed Database engine version.", + "example": "13.2", "type": "string", - "x-linode-cli-display": 3 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 8, + "x-linode-filterable": true } }, - "title": "Domain", "type": "object", "x-akamai": { - "file-path": "schemas/domain.yaml" + "file-path": "schemas/database-valkey-response.yaml" } } } }, - "description": "A single Domain in Linode's DNS Manager." + "description": "A new Valkey Managed Database is provisioning." }, "default": { "content": { @@ -43605,6 +46645,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -43641,243 +46682,1308 @@ }, { "oauth": [ - "domains:read_write" + "databases:read_write" ] } ], - "summary": "Import a domain", + "summary": "Create or restore a Valkey Managed Database", "tags": [ - "Domains" + "Valkey" ], "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" - } - ] + "status": "LA" }, - "x-linode-cli-action": "import", - "x-linode-cli-command": "domains", - "x-linode-grant": "read_write", + "x-linode-cli-skip": true, + "x-linode-grant": "add_databases", "x-linode-iam": [ { "roles": [ - "domain_admin" + "account_database_creator" ] } ] }, - "parameters": [ - { - "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", - "example": "{{apiVersion}}", - "in": "path", - "name": "apiVersion", - "required": true, - "schema": { - "enum": [ - "v4", - "v4beta" - ], - "example": "v4", - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/api-version-path.yaml" - } - } - ], - "x-akamai": { - "file-path": "paths/domains-import.yaml", - "path-info": "/{apiVersion}/domains/import" - }, - "x-linode-cli-command": "domains" - }, - "/{apiVersion}/domains/{domainId}": { "get": { - "description": "This is a single domain that you have registered in DNS Manager. For this domain record to resolve, you must own the domain and point your registrar at Akamai Cloud's nameservers. Akamai Cloud does not act as a registrar.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `domains:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli domains view 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "__Limited availability__ Display all accessible Valkey Managed Databases.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", - "url": "https://techdocs.akamai.com/linode-api/reference/get-domain" + "url": "https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instances" }, - "operationId": "get-domain", + "operationId": "get-databases-valkey-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": { "content": { "application/json": { "example": { - "axfr_ips": [], - "description": null, - "domain": "example.org", - "expire_sec": 300, - "id": 1234, - "master_ips": [], - "refresh_sec": 300, - "retry_sec": 300, - "soa_email": "admin@example.org", - "status": "active", - "tags": [ - "example tag", - "another example" + "data": [ + { + "allow_list": [], + "available_restore_times": [ + "2025-12-29T20:40:15" + ], + "cluster_size": 1, + "created": "2025-12-29T20:29:15", + "encrypted": true, + "engine": "valkey", + "engine_config": { + "frequent_snapshots": true, + "valkey_active_expire_effort": 1, + "valkey_lfu_decay_time": 1, + "valkey_lfu_log_factor": 10, + "valkey_maxmemory_policy": "noeviction", + "valkey_timeout": 300 + }, + "hosts": { + "primary": "a29-akamai-testuser-1000-default.g2a.akamaidb.net" + }, + "id": 29, + "label": "sampledb-valkey", + "members": {}, + "port": 13670, + "private_network": null, + "region": "us-east", + "ssl_connection": true, + "status": "provisioning", + "total_disk_size_gb": 0, + "type": "g6-nanode-1", + "updated": "2025-12-29T20:29:16", + "updates": { + "day_of_week": 7, + "duration": 4, + "frequency": "weekly", + "hour_of_day": 15, + "pending": [] + }, + "used_disk_size_gb": null, + "version": "8.1" + }, + { + "allow_list": [], + "available_restore_times": [ + "2025-12-29T20:40:15" + ], + "cluster_size": 1, + "created": "2025-12-29T20:29:15", + "encrypted": true, + "engine": "valkey", + "engine_config": { + "frequent_snapshots": true, + "valkey_active_expire_effort": 1, + "valkey_lfu_decay_time": 1, + "valkey_lfu_log_factor": 10, + "valkey_maxmemory_policy": "noeviction", + "valkey_timeout": 300 + }, + "hosts": { + "primary": "a30-akamai-testuser-1000-default.g2a.akamaidb.net" + }, + "id": 30, + "label": "sampledb-valkey", + "members": {}, + "port": 13670, + "private_network": null, + "region": "us-east", + "ssl_connection": true, + "status": "provisioning", + "total_disk_size_gb": 0, + "type": "g6-nanode-1", + "updated": "2025-12-29T20:29:16", + "updates": { + "day_of_week": 7, + "duration": 4, + "frequency": "weekly", + "hour_of_day": 15, + "pending": [] + }, + "used_disk_size_gb": null, + "version": "8.1" + } ], - "ttl_sec": 300, - "type": "master" + "page": 1, + "pages": 1, + "results": 2 }, "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.\n\n> \ud83d\udcd8\n>\n> This is potentially dangerous, and should be set to an empty list unless you intend to use it.", - "example": [], + "data": { + "description": "A list of objects returned for a response.", "items": { - "format": "ip", + "additionalProperties": false, + "description": "Managed Valkey Databases object.", + "properties": { + "allow_list": { + "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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" + }, + "available_restore_times": { + "description": "__Read-only__ Possible times you can create a fork from for a Valkey database.", + "items": { + "example": "2024-10-03T20:48:05", + "type": "string" + }, + "minItems": 0, + "readOnly": true, + "type": "array" + }, + "cluster_size": { + "default": 1, + "description": "The number of Linode instance nodes deployed to the Managed Database, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` 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", + "readOnly": true, + "type": "string" + }, + "encrypted": { + "default": true, + "description": "__Read-only__ Whether the Managed Databases is encrypted. Currently the only possible value is `true`.", + "example": true, + "readOnly": true, + "type": "boolean" + }, + "engine": { + "description": "__Filterable__, __Read-only__ The Managed Database engine type.", + "example": "valkey", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 6, + "x-linode-filterable": true + }, + "engine_config": { + "additionalProperties": false, + "description": "Advanced parameters applied to a Valkey Managed Database, via our partner [Aiven's specification](https://aiven.io/docs/products/valkey/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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification. Currently, only those listed here are supported for use in a Valkey Managed Database. You can also run the [Get Valkey Managed Database advanced parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-config) operation to see an up-to-date list.", + "properties": { + "backup_hour": { + "description": "The hour of day (in UTC) when the backup for the service starts. New backups only start if the previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "backup_minute": { + "description": "The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "nullable": true, + "type": "integer" + }, + "frequent_snapshots": { + "description": "When enabled, Valkey creates frequent local RDB snapshots. When disabled, Valkey only takes RDB snapshots when a backup is created, based on the backup schedule. This setting is ignored when `valkey_persistence` is set to off.", + "type": "boolean" + }, + "valkey_acl_channels_default": { + "description": "Default ACL for pub/sub channels used when a Valkey user is created. Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.", + "type": "string" + }, + "valkey_active_expire_effort": { + "default": 1, + "description": "Active expire effort. Valkey reclaims expired keys both when accessed and in the background. The background process scans for expired keys to free memory. Increasing the active-expire-effort setting uses more CPU to reclaim expired keys faster, reducing memory usage but potentially increasing latency.", + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "valkey_activedefrag": { + "default": false, + "description": "Enables active memory defragmentation. When enabled, Valkey relocates objects off sparsely-used memory pages to reduce fragmentation and return memory to the operating system. Defragmentation runs on the main thread and consumes CPU, so it may increase latency under load.", + "example": false, + "type": "boolean" + }, + "valkey_lfu_decay_time": { + "default": 1, + "description": "LFU maxmemory-policy counter decay time in minutes.", + "maximum": 120, + "minimum": 1, + "type": "integer" + }, + "valkey_lfu_log_factor": { + "default": 10, + "description": "Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies.", + "maximum": 100, + "type": "integer" + }, + "valkey_maxmemory_policy": { + "default": "noeviction", + "description": "Valkey maxmemory-policy.", + "nullable": true, + "type": "string" + }, + "valkey_number_of_databases": { + "description": "Set number of Valkey databases. Changing this will cause a restart of the Valkey service.", + "maximum": 128, + "minimum": 1, + "type": "integer" + }, + "valkey_persistence": { + "default": "rdb", + "description": "- If set to `rdb`, Valkey generates periodic snapshots at least according to the backup schedule (either every twelve hours with an initial time chosen by the system or every 24 hours based on `backup_hour` and `backup_minute`, if set). Combined with the `frequent_snapshots` parameter set to `true`, Valkey generates snapshots every ten minutes if data has changed, which limits data loss in case nodes have to restart for any reason.\n\n- If set to `off`, Valkey never takes snapshots. This means no backups and no possibility of restoring the cluster. Service restarts are guaranteed to lose data. The benefit is avoiding the performance penalty creating a snapshot entails.\n\n> \ud83d\udcd8\n>\n>`valkey_persistence` can't be set `off`, if `backup_hour` or `backup_minute` are configured. When set to `off`, you can't configure the maintentace window when [Updating a Valkey Managed Database](https://techdocs.akamai.com/linode-api/reference/put-databases-valkey-instance).", + "enum": [ + "off", + "rdb" + ], + "type": "string" + }, + "valkey_pubsub_client_output_buffer_limit": { + "description": "Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.", + "maximum": 262144, + "minimum": 32, + "type": "integer" + }, + "valkey_timeout": { + "default": 300, + "description": "Valkey idle connection timeout in seconds.", + "maximum": 2073600, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/database-valkey-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 database.", + "properties": { + "restore_time": { + "description": "The database timestamp from which it was restored. This is _not_ when the fork was created.", + "example": "2024-10-14T19:55:12", + "type": "string" + }, + "source": { + "description": "The unique identifier for the database that was forked from.", + "example": 176881, + "type": "integer" + } + }, + "type": "object" + }, + "hosts": { + "additionalProperties": false, + "description": "__Read-only__ The primary hostname and standby read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", + "properties": { + "endpoints": { + "description": "__Read-only__ A structured inventory of all connection points for a Managed Database instance.", + "items": { + "additionalProperties": false, + "properties": { + "address": { + "description": "The DNS hostname that resolves to either the `primary` or `standby` host, based on this object's `role`.", + "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "type": "string" + }, + "port": { + "description": "The port number used for the connection.", + "example": 3306, + "type": "integer" + }, + "public_access": { + "description": "Whether `public_access` has been enabled for the connection point.", + "example": false, + "type": "boolean" + }, + "role": { + "description": "Whether the endpoint connects to the `primary` or `standby` hostname, as defined in `hosts`.", + "enum": [ + "primary", + "standby" + ], + "example": "primary", + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, + "primary": { + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "format": "hostname", + "nullable": true, + "type": "string" + }, + "standby": { + "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "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 name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either 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": { + "additionalProperties": { + "enum": [ + "primary", + "failover" + ], + "type": "string" + }, + "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, either `rdbms-legacy` or `rdbms-default`.", + "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" + }, + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` allows clients outside of the VPC to connect to the database using a public IP address.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The VPC's `subnet_id` used to control access to the database.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database.", + "example": 123, + "type": "integer" + } + }, + "type": "object" + }, + "region": { + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", + "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 Valkey Managed Database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instance-credentials) operation for access information.", + "example": true, + "type": "boolean" + }, + "status": { + "description": "__Filterable__, __Read-only__ The operating status of the Managed Database, which can be one of the following: `provisioning`, `active`, `suspending`, `suspended`, `resuming`, `updating`, or `resizing`.", + "enum": [ + "provisioning", + "active", + "suspending", + "suspended", + "resuming", + "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 `id` of 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", + "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": { + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, + "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", + "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 time when a maintenance update will be applied.", + "example": "2024-10-14T19:55:12", + "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. This is `null` for Valkey", + "example": 2, + "nullable": true, + "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-valkey.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-databases-valkey-instances-200.yaml" + } + } + } + }, + "description": "Returns a paginated list of all accessible Valkey Managed Databases on your account." + }, + "default": { + "content": { + "application/json": { + "example": { + "errors": [ + { + "reason": "Invalid JSON" + } + ] + }, + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "description": "Any warnings associated with a response.", + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "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 Valkey Managed Databases", + "tags": [ + "Valkey" + ], + "x-akamai": { + "status": "LA" + }, + "x-linode-cli-skip": true, + "x-linode-grant": "read_only", + "x-linode-iam": [ + { + "roles": [ + "database_viewer" + ] + } + ] + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "example": "v4", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/valkey-instances.yaml", + "path-info": "/{apiVersion}/databases/valkey/instances" + }, + "x-linode-cli-command": "databases" + }, + "/{apiVersion}/databases/valkey/instances/{valkeyInstanceId}": { + "get": { + "description": "__Limited availability__ Displays information for a single, accessible Valkey Managed Database.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instance" + }, + "operationId": "get-databases-valkey-instance", + "responses": { + "200": { + "content": { + "application/json": { + "example": { + "allow_list": [], + "available_restore_times": [ + "2025-12-29T20:40:15" + ], + "cluster_size": 1, + "created": "2025-12-29T20:29:15", + "encrypted": true, + "engine": "valkey", + "engine_config": { + "frequent_snapshots": true, + "valkey_active_expire_effort": 1, + "valkey_lfu_decay_time": 1, + "valkey_lfu_log_factor": 10, + "valkey_maxmemory_policy": "noeviction", + "valkey_timeout": 300 + }, + "hosts": { + "primary": "a29-akamai-testuser-1000-default.g2a.akamaidb.net" + }, + "id": 29, + "label": "sampledb-valkey", + "members": {}, + "port": 13670, + "private_network": null, + "region": "us-east", + "ssl_connection": true, + "status": "provisioning", + "total_disk_size_gb": 0, + "type": "g6-nanode-1", + "updated": "2025-12-29T20:29:16", + "updates": { + "day_of_week": 7, + "duration": 4, + "frequency": "weekly", + "hour_of_day": 15, + "pending": [] + }, + "used_disk_size_gb": null, + "version": "8.1" + }, + "schema": { + "additionalProperties": false, + "description": "Managed Valkey Databases object.", + "properties": { + "allow_list": { + "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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" }, - "description": { - "description": "A description for this domain. This is for display purposes only.", - "example": null, - "maxLength": 253, - "minLength": 1, - "nullable": true, + "available_restore_times": { + "description": "__Read-only__ Possible times you can create a fork from for a Valkey database.", + "items": { + "example": "2024-10-03T20:48:05", + "type": "string" + }, + "minItems": 0, + "readOnly": true, + "type": "array" + }, + "cluster_size": { + "default": 1, + "description": "The number of Linode instance nodes deployed to the Managed Database, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` 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", + "readOnly": 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]+)$", + "encrypted": { + "default": true, + "description": "__Read-only__ Whether the Managed Databases is encrypted. Currently the only possible value is `true`.", + "example": true, + "readOnly": true, + "type": "boolean" + }, + "engine": { + "description": "__Filterable__, __Read-only__ The Managed Database engine type.", + "example": "valkey", + "readOnly": true, "type": "string", "x-akamai": { "labels": [ "Filterable" ] }, - "x-linode-cli-display": 2, + "x-linode-cli-display": 6, "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", - "example": 300, - "type": "integer" + "engine_config": { + "additionalProperties": false, + "description": "Advanced parameters applied to a Valkey Managed Database, via our partner [Aiven's specification](https://aiven.io/docs/products/valkey/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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification. Currently, only those listed here are supported for use in a Valkey Managed Database. You can also run the [Get Valkey Managed Database advanced parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-config) operation to see an up-to-date list.", + "properties": { + "backup_hour": { + "description": "The hour of day (in UTC) when the backup for the service starts. New backups only start if the previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "backup_minute": { + "description": "The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "nullable": true, + "type": "integer" + }, + "frequent_snapshots": { + "description": "When enabled, Valkey creates frequent local RDB snapshots. When disabled, Valkey only takes RDB snapshots when a backup is created, based on the backup schedule. This setting is ignored when `valkey_persistence` is set to off.", + "type": "boolean" + }, + "valkey_acl_channels_default": { + "description": "Default ACL for pub/sub channels used when a Valkey user is created. Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.", + "type": "string" + }, + "valkey_active_expire_effort": { + "default": 1, + "description": "Active expire effort. Valkey reclaims expired keys both when accessed and in the background. The background process scans for expired keys to free memory. Increasing the active-expire-effort setting uses more CPU to reclaim expired keys faster, reducing memory usage but potentially increasing latency.", + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "valkey_activedefrag": { + "default": false, + "description": "Enables active memory defragmentation. When enabled, Valkey relocates objects off sparsely-used memory pages to reduce fragmentation and return memory to the operating system. Defragmentation runs on the main thread and consumes CPU, so it may increase latency under load.", + "example": false, + "type": "boolean" + }, + "valkey_lfu_decay_time": { + "default": 1, + "description": "LFU maxmemory-policy counter decay time in minutes.", + "maximum": 120, + "minimum": 1, + "type": "integer" + }, + "valkey_lfu_log_factor": { + "default": 10, + "description": "Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies.", + "maximum": 100, + "type": "integer" + }, + "valkey_maxmemory_policy": { + "default": "noeviction", + "description": "Valkey maxmemory-policy.", + "nullable": true, + "type": "string" + }, + "valkey_number_of_databases": { + "description": "Set number of Valkey databases. Changing this will cause a restart of the Valkey service.", + "maximum": 128, + "minimum": 1, + "type": "integer" + }, + "valkey_persistence": { + "default": "rdb", + "description": "- If set to `rdb`, Valkey generates periodic snapshots at least according to the backup schedule (either every twelve hours with an initial time chosen by the system or every 24 hours based on `backup_hour` and `backup_minute`, if set). Combined with the `frequent_snapshots` parameter set to `true`, Valkey generates snapshots every ten minutes if data has changed, which limits data loss in case nodes have to restart for any reason.\n\n- If set to `off`, Valkey never takes snapshots. This means no backups and no possibility of restoring the cluster. Service restarts are guaranteed to lose data. The benefit is avoiding the performance penalty creating a snapshot entails.\n\n> \ud83d\udcd8\n>\n>`valkey_persistence` can't be set `off`, if `backup_hour` or `backup_minute` are configured. When set to `off`, you can't configure the maintentace window when [Updating a Valkey Managed Database](https://techdocs.akamai.com/linode-api/reference/put-databases-valkey-instance).", + "enum": [ + "off", + "rdb" + ], + "type": "string" + }, + "valkey_pubsub_client_output_buffer_limit": { + "description": "Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.", + "maximum": 262144, + "minimum": 32, + "type": "integer" + }, + "valkey_timeout": { + "default": 300, + "description": "Valkey idle connection timeout in seconds.", + "maximum": 2073600, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/database-valkey-engine-config.yaml" + }, + "x-linode-cli-display": 7 }, - "group": { - "deprecated": true, - "description": "__Deprecated__, __Filterable__ The group this domain belongs to. This is for display purposes only.", - "example": null, - "maxLength": 50, - "minLength": 1, - "nullable": 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 database.", + "properties": { + "restore_time": { + "description": "The database timestamp from which it was restored. This is _not_ when the fork was created.", + "example": "2024-10-14T19:55:12", + "type": "string" + }, + "source": { + "description": "The unique identifier for the database that was forked from.", + "example": 176881, + "type": "integer" + } + }, + "type": "object" + }, + "hosts": { + "additionalProperties": false, + "description": "__Read-only__ The primary hostname and standby read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", + "properties": { + "endpoints": { + "description": "__Read-only__ A structured inventory of all connection points for a Managed Database instance.", + "items": { + "additionalProperties": false, + "properties": { + "address": { + "description": "The DNS hostname that resolves to either the `primary` or `standby` host, based on this object's `role`.", + "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "type": "string" + }, + "port": { + "description": "The port number used for the connection.", + "example": 3306, + "type": "integer" + }, + "public_access": { + "description": "Whether `public_access` has been enabled for the connection point.", + "example": false, + "type": "boolean" + }, + "role": { + "description": "Whether the endpoint connects to the `primary` or `standby` hostname, as defined in `hosts`.", + "enum": [ + "primary", + "standby" + ], + "example": "primary", + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, + "primary": { + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "format": "hostname", + "nullable": true, + "type": "string" + }, + "standby": { + "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "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 name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either engine type.", + "example": "example-db", + "maxLength": 32, + "minLength": 3, "type": "string", "x-akamai": { "labels": [ "Filterable" - ], - "status": "DEPRECATED" + ] }, + "x-linode-cli-display": 2, "x-linode-filterable": true }, - "id": { - "description": "__Read-only__ This domain's unique ID.", - "example": 1234, + "members": { + "additionalProperties": { + "enum": [ + "primary", + "failover" + ], + "type": "string" + }, + "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": "integer", - "x-linode-cli-display": 1 + "type": "object" }, - "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" + "platform": { + "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service, either `rdbms-legacy` or `rdbms-default`.", + "enum": [ + "rdbms-legacy", + "rdbms-default" + ], + "example": "rdbms-default", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] }, - "type": "array" + "x-linode-cli-display": 8, + "x-linode-filterable": true }, - "refresh_sec": { - "default": 0, - "description": "The amount of time in seconds before this domain should be refreshed.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", - "example": 300, + "port": { + "description": "__Read-only__ The access port for this Managed Database.", + "example": 3306, + "readOnly": true, "type": "integer" }, - "retry_sec": { - "default": 0, - "description": "The interval, in seconds, at which a failed refresh should be retried.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", - "example": 300, - "type": "integer" + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` allows clients outside of the VPC to connect to the database using a public IP address.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The VPC's `subnet_id` used to control access to the database.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database.", + "example": 123, + "type": "integer" + } + }, + "type": "object" }, - "soa_email": { - "description": "Start of Authority email address. This is required for `type` master domains.", - "example": "admin@example.org", - "format": "email", + "region": { + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", + "example": "us-east", "type": "string", - "x-linode-cli-display": 5 + "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 Valkey Managed Database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instance-credentials) operation for access information.", + "example": true, + "type": "boolean" }, "status": { - "default": "active", - "description": "Used to control whether this domain is currently being rendered.", + "description": "__Filterable__, __Read-only__ The operating status of the Managed Database, which can be one of the following: `provisioning`, `active`, `suspending`, `suspended`, `resuming`, `updating`, or `resizing`.", "enum": [ - "disabled", - "active" + "provisioning", + "active", + "suspending", + "suspended", + "resuming", + "updating", + "resizing" ], "example": "active", + "readOnly": true, "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-cli-color": { "active": "green", - "default_": "red", - "disabled": "yellow", - "edit_mode": "yellow" + "default_": "white", + "degraded": "red", + "failed": "red", + "provisioning": "yellow", + "restoring": "yellow", + "resuming": "yellow" }, - "x-linode-cli-display": 4 + "x-linode-cli-display": 100, + "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", + "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 `id` of 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 }, - "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 86400.", - "example": 300, + "updated": { + "description": "__Read-only__ When this Managed Database was last updated.", + "example": "2022-01-01T00:01:01", + "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": { + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, + "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", + "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 time when a maintenance update will be applied.", + "example": "2024-10-14T19:55:12", + "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. This is `null` for Valkey", + "example": 2, + "nullable": true, + "readOnly": true, "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", + "version": { + "description": "__Filterable__ The Managed Database engine version.", + "example": "13.2", "type": "string", - "x-linode-cli-display": 3 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 7, + "x-linode-filterable": true } }, - "title": "Domain", "type": "object", "x-akamai": { - "file-path": "schemas/domain.yaml" + "file-path": "schemas/database-valkey.yaml" } } } }, - "description": "A single Domain in Linode's DNS Manager." + "description": "Returns information for a single Valkey Managed Database." }, "default": { "content": { @@ -43893,6 +47999,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -43929,80 +48036,171 @@ }, { "oauth": [ - "domains:read_only" + "databases:read_only" ] } ], - "summary": "Get a domain", + "summary": "Get a Valkey Managed Database", "tags": [ - "Domains" + "Valkey" ], "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" - } - ] + "status": "LA" }, - "x-linode-cli-action": "view", + "x-linode-cli-skip": true, "x-linode-grant": "read_only", "x-linode-iam": [ { "roles": [ - "domain_viewer" + "database_viewer" ] } ] }, "put": { - "description": "Update information about a domain in DNS Manager.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains update 1234 \\\n --retry_sec 7200 \\\n --ttl_sec 300\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "__Limited availability__ Updates an existing Valkey Managed Database. All values added in the request body overwrite the current cluster settings. Remaining values don't change.\n\n- The database's status can't be `suspended`. This applies also to `engine_config` advanced parameter settings for a suspended database. You need to [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-valkey-instance) it first.\n\n- Updates to your `allow_list` may take a short period of time to complete, making this operation inappropriate for rapid successive updates.\n\n- You can resize the database cluster to a larger one.\n\n- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed Valkey Database. Use the `updates` object in this operation to modify the maintenance window for these updates.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n- You can update an existing Valkey Managed Database to move it to a Virtual Private Cloud (VPC) using the `private_network` object in the request.\n\n > \ud83d\udcd8\n >\n > Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.\n\n- This operation is asynchronous. The 200 response body with the `provisioning` and `updating` status may contain legacy values.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", - "url": "https://techdocs.akamai.com/linode-api/reference/put-domain" + "url": "https://techdocs.akamai.com/linode-api/reference/put-databases-valkey-instance" }, - "operationId": "put-domain", + "operationId": "put-databases-valkey-instance", "requestBody": { "content": { "application/json": { "example": { - "domain": "example.org", - "expire_sec": 300, - "refresh_sec": 300, - "retry_sec": 300, - "soa_email": "admin@example.org", - "status": "active", - "ttl_sec": 300, - "type": "master" + "cluster_size": 2, + "engine_config": { + "valkey_maxmemory_policy": "allkeys-lru" + }, + "label": "sampledb-valkey", + "region": "us-west", + "type": "g6-standard-4" }, "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.", + "description": "Updated information for the Managed Valkey Database.", "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.\n\n> \ud83d\udcd8\n>\n> This is potentially dangerous, and should be set to an empty list unless you intend to use it.", - "example": [], + "allow_list": { + "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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": "ip", + "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" }, - "description": { - "description": "A description for this domain. This is for display purposes only.", - "example": "{{description}}", - "maxLength": 253, - "minLength": 1, - "nullable": true, - "type": "string" + "cluster_size": { + "default": 1, + "description": "The number of Linode instance nodes deployed to the Managed Database, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` node.", + "enum": [ + 1, + 2, + 3 + ], + "example": "{{cluster_size}}", + "type": "integer", + "x-linode-cli-display": 5 }, - "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]+)$", + "engine_config": { + "additionalProperties": false, + "description": "Advanced parameters applied to a Valkey Managed Database, via our partner [Aiven's specification](https://aiven.io/docs/products/valkey/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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification. Currently, only those listed here are supported for use in a Valkey Managed Database. You can also run the [Get Valkey Managed Database advanced parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-config) operation to see an up-to-date list.", + "properties": { + "backup_hour": { + "description": "The hour of day (in UTC) when the backup for the service starts. New backups only start if the previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "backup_minute": { + "description": "The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "nullable": true, + "type": "integer" + }, + "frequent_snapshots": { + "description": "When enabled, Valkey creates frequent local RDB snapshots. When disabled, Valkey only takes RDB snapshots when a backup is created, based on the backup schedule. This setting is ignored when `valkey_persistence` is set to off.", + "type": "boolean" + }, + "valkey_acl_channels_default": { + "description": "Default ACL for pub/sub channels used when a Valkey user is created. Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.", + "type": "string" + }, + "valkey_active_expire_effort": { + "default": 1, + "description": "Active expire effort. Valkey reclaims expired keys both when accessed and in the background. The background process scans for expired keys to free memory. Increasing the active-expire-effort setting uses more CPU to reclaim expired keys faster, reducing memory usage but potentially increasing latency.", + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "valkey_activedefrag": { + "default": false, + "description": "Enables active memory defragmentation. When enabled, Valkey relocates objects off sparsely-used memory pages to reduce fragmentation and return memory to the operating system. Defragmentation runs on the main thread and consumes CPU, so it may increase latency under load.", + "example": false, + "type": "boolean" + }, + "valkey_lfu_decay_time": { + "default": 1, + "description": "LFU maxmemory-policy counter decay time in minutes.", + "maximum": 120, + "minimum": 1, + "type": "integer" + }, + "valkey_lfu_log_factor": { + "default": 10, + "description": "Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies.", + "maximum": 100, + "type": "integer" + }, + "valkey_maxmemory_policy": { + "default": "noeviction", + "description": "Valkey maxmemory-policy.", + "nullable": true, + "type": "string" + }, + "valkey_number_of_databases": { + "description": "Set number of Valkey databases. Changing this will cause a restart of the Valkey service.", + "maximum": 128, + "minimum": 1, + "type": "integer" + }, + "valkey_persistence": { + "default": "rdb", + "description": "- If set to `rdb`, Valkey generates periodic snapshots at least according to the backup schedule (either every twelve hours with an initial time chosen by the system or every 24 hours based on `backup_hour` and `backup_minute`, if set). Combined with the `frequent_snapshots` parameter set to `true`, Valkey generates snapshots every ten minutes if data has changed, which limits data loss in case nodes have to restart for any reason.\n\n- If set to `off`, Valkey never takes snapshots. This means no backups and no possibility of restoring the cluster. Service restarts are guaranteed to lose data. The benefit is avoiding the performance penalty creating a snapshot entails.\n\n> \ud83d\udcd8\n>\n>`valkey_persistence` can't be set `off`, if `backup_hour` or `backup_minute` are configured. When set to `off`, you can't configure the maintentace window when [Updating a Valkey Managed Database](https://techdocs.akamai.com/linode-api/reference/put-databases-valkey-instance).", + "enum": [ + "off", + "rdb" + ], + "type": "string" + }, + "valkey_pubsub_client_output_buffer_limit": { + "description": "Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.", + "maximum": 262144, + "minimum": 32, + "type": "integer" + }, + "valkey_timeout": { + "default": 300, + "description": "Valkey idle connection timeout in seconds.", + "maximum": 2073600, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/database-valkey-engine-config.yaml" + } + }, + "label": { + "description": "__Filterable__ A name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either engine type.", + "example": "{{label}}", + "maxLength": 32, + "minLength": 3, "type": "string", "x-akamai": { "labels": [ @@ -44012,118 +48210,130 @@ "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", - "example": "{{expire_sec}}", - "type": "integer" - }, - "group": { - "deprecated": true, - "description": "__Deprecated__, __Filterable__ The group this domain belongs to. This is for display purposes only.", - "example": "{{group}}", - "maxLength": 50, - "minLength": 1, + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. Displayed as `null` if no VPC is configured.", "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` allows clients outside of the VPC to connect to the database using a public IP address.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The VPC's `subnet_id` used to control access to the database.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database.", + "example": 123, + "type": "integer" + } + }, + "type": "object" + }, + "region": { + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", + "example": "{{region}}", "type": "string", "x-akamai": { "labels": [ "Filterable" - ], - "status": "DEPRECATED" + ] }, + "x-linode-cli-display": 3, "x-linode-filterable": true }, - "id": { - "description": "__Read-only__ This domain's unique ID.", - "example": "{{id}}", - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 + "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.\n\n- Needs to be a Linode type with more disk space than your current Linode.\n\n- 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.\n\n- You can't update the `allow_list` and set a new `type` in the same request.\n\n- 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" }, - "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" + "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": { + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, + "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", + "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 time when a maintenance update will be applied.", + "example": "2024-10-14T19:55:12", + "nullable": true, + "type": "string" + } + }, + "type": "object" + }, + "minItems": 0, + "readOnly": true, + "type": "array" + } }, - "type": "array" - }, - "refresh_sec": { - "default": 0, - "description": "The amount of time in seconds before this domain should be refreshed.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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 + "type": "object" }, - "status": { - "default": "active", - "description": "Used to control whether this domain is currently being rendered.", - "enum": [ - "disabled", - "active" - ], - "example": "{{status}}", + "version": { + "description": "__Filterable__ The Managed Database engine version.", + "example": "{{version}}", "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-cli-display": 7, "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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" + "file-path": "schemas/put-databases-valkey-instance.yaml" } } } @@ -44135,176 +48345,528 @@ "content": { "application/json": { "example": { - "axfr_ips": [], - "description": null, - "domain": "example.org", - "expire_sec": 300, - "id": 1234, - "master_ips": [], - "refresh_sec": 300, - "retry_sec": 300, - "soa_email": "admin@example.org", - "status": "active", - "tags": [ - "example tag", - "another example" + "allow_list": [], + "available_restore_times": [ + "2025-12-29T20:40:15" ], - "ttl_sec": 300, - "type": "master" + "cluster_size": 1, + "created": "2025-12-29T20:29:15", + "encrypted": true, + "engine": "valkey", + "engine_config": { + "frequent_snapshots": true, + "valkey_active_expire_effort": 1, + "valkey_lfu_decay_time": 1, + "valkey_lfu_log_factor": 10, + "valkey_maxmemory_policy": "noeviction", + "valkey_timeout": 300 + }, + "hosts": { + "primary": "a29-akamai-testuser-1000-default.g2a.akamaidb.net" + }, + "id": 29, + "label": "sampledb-valkey", + "members": {}, + "port": 13670, + "private_network": null, + "region": "us-east", + "ssl_connection": true, + "status": "provisioning", + "total_disk_size_gb": 0, + "type": "g6-nanode-1", + "updated": "2025-12-29T20:29:16", + "updates": { + "day_of_week": 7, + "duration": 4, + "frequency": "weekly", + "hour_of_day": 15, + "pending": [] + }, + "used_disk_size_gb": null, + "version": "8.1" }, "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.", + "description": "Managed Valkey Databases object.", "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.\n\n> \ud83d\udcd8\n>\n> This is potentially dangerous, and should be set to an empty list unless you intend to use it.", - "example": [], + "allow_list": { + "description": "Controls access to the Managed Database.\n\n- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked.\n\n- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database.\n\n- 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": "ip", + "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" }, - "description": { - "description": "A description for this domain. This is for display purposes only.", - "example": null, - "maxLength": 253, - "minLength": 1, - "nullable": true, + "available_restore_times": { + "description": "__Read-only__ Possible times you can create a fork from for a Valkey database.", + "items": { + "example": "2024-10-03T20:48:05", + "type": "string" + }, + "minItems": 0, + "readOnly": true, + "type": "array" + }, + "cluster_size": { + "default": 1, + "description": "The number of Linode instance nodes deployed to the Managed Database, from `1` to `3`. Consider these points when setting a `cluster_size`:\n\n- Choose `3` nodes to create a high availability cluster that consists of one `primary` node and two `standby` nodes.\n\n- A `2` node cluster is only available with a dedicated plan. It consists of one `primary` node and one `standby` 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", + "readOnly": 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]+)$", + "encrypted": { + "default": true, + "description": "__Read-only__ Whether the Managed Databases is encrypted. Currently the only possible value is `true`.", + "example": true, + "readOnly": true, + "type": "boolean" + }, + "engine": { + "description": "__Filterable__, __Read-only__ The Managed Database engine type.", + "example": "valkey", + "readOnly": true, "type": "string", "x-akamai": { "labels": [ "Filterable" ] }, - "x-linode-cli-display": 2, + "x-linode-cli-display": 6, "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", - "example": 300, - "type": "integer" + "engine_config": { + "additionalProperties": false, + "description": "Advanced parameters applied to a Valkey Managed Database, via our partner [Aiven's specification](https://aiven.io/docs/products/valkey/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.\n\n> \ud83d\udcd8\n>\n> Aiven may offer additional parameters in their specification. Currently, only those listed here are supported for use in a Valkey Managed Database. You can also run the [Get Valkey Managed Database advanced parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-config) operation to see an up-to-date list.", + "properties": { + "backup_hour": { + "description": "The hour of day (in UTC) when the backup for the service starts. New backups only start if the previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "backup_minute": { + "description": "The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.", + "maximum": 23, + "minimum": 0, + "nullable": true, + "type": "integer" + }, + "frequent_snapshots": { + "description": "When enabled, Valkey creates frequent local RDB snapshots. When disabled, Valkey only takes RDB snapshots when a backup is created, based on the backup schedule. This setting is ignored when `valkey_persistence` is set to off.", + "type": "boolean" + }, + "valkey_acl_channels_default": { + "description": "Default ACL for pub/sub channels used when a Valkey user is created. Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.", + "type": "string" + }, + "valkey_active_expire_effort": { + "default": 1, + "description": "Active expire effort. Valkey reclaims expired keys both when accessed and in the background. The background process scans for expired keys to free memory. Increasing the active-expire-effort setting uses more CPU to reclaim expired keys faster, reducing memory usage but potentially increasing latency.", + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "valkey_activedefrag": { + "default": false, + "description": "Enables active memory defragmentation. When enabled, Valkey relocates objects off sparsely-used memory pages to reduce fragmentation and return memory to the operating system. Defragmentation runs on the main thread and consumes CPU, so it may increase latency under load.", + "example": false, + "type": "boolean" + }, + "valkey_lfu_decay_time": { + "default": 1, + "description": "LFU maxmemory-policy counter decay time in minutes.", + "maximum": 120, + "minimum": 1, + "type": "integer" + }, + "valkey_lfu_log_factor": { + "default": 10, + "description": "Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies.", + "maximum": 100, + "type": "integer" + }, + "valkey_maxmemory_policy": { + "default": "noeviction", + "description": "Valkey maxmemory-policy.", + "nullable": true, + "type": "string" + }, + "valkey_number_of_databases": { + "description": "Set number of Valkey databases. Changing this will cause a restart of the Valkey service.", + "maximum": 128, + "minimum": 1, + "type": "integer" + }, + "valkey_persistence": { + "default": "rdb", + "description": "- If set to `rdb`, Valkey generates periodic snapshots at least according to the backup schedule (either every twelve hours with an initial time chosen by the system or every 24 hours based on `backup_hour` and `backup_minute`, if set). Combined with the `frequent_snapshots` parameter set to `true`, Valkey generates snapshots every ten minutes if data has changed, which limits data loss in case nodes have to restart for any reason.\n\n- If set to `off`, Valkey never takes snapshots. This means no backups and no possibility of restoring the cluster. Service restarts are guaranteed to lose data. The benefit is avoiding the performance penalty creating a snapshot entails.\n\n> \ud83d\udcd8\n>\n>`valkey_persistence` can't be set `off`, if `backup_hour` or `backup_minute` are configured. When set to `off`, you can't configure the maintentace window when [Updating a Valkey Managed Database](https://techdocs.akamai.com/linode-api/reference/put-databases-valkey-instance).", + "enum": [ + "off", + "rdb" + ], + "type": "string" + }, + "valkey_pubsub_client_output_buffer_limit": { + "description": "Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.", + "maximum": 262144, + "minimum": 32, + "type": "integer" + }, + "valkey_timeout": { + "default": 300, + "description": "Valkey idle connection timeout in seconds.", + "maximum": 2073600, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/database-valkey-engine-config.yaml" + }, + "x-linode-cli-display": 7 }, - "group": { - "deprecated": true, - "description": "__Deprecated__, __Filterable__ The group this domain belongs to. This is for display purposes only.", - "example": null, - "maxLength": 50, - "minLength": 1, - "nullable": 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 database.", + "properties": { + "restore_time": { + "description": "The database timestamp from which it was restored. This is _not_ when the fork was created.", + "example": "2024-10-14T19:55:12", + "type": "string" + }, + "source": { + "description": "The unique identifier for the database that was forked from.", + "example": 176881, + "type": "integer" + } + }, + "type": "object" + }, + "hosts": { + "additionalProperties": false, + "description": "__Read-only__ The primary hostname and standby read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", + "properties": { + "endpoints": { + "description": "__Read-only__ A structured inventory of all connection points for a Managed Database instance.", + "items": { + "additionalProperties": false, + "properties": { + "address": { + "description": "The DNS hostname that resolves to either the `primary` or `standby` host, based on this object's `role`.", + "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "type": "string" + }, + "port": { + "description": "The port number used for the connection.", + "example": 3306, + "type": "integer" + }, + "public_access": { + "description": "Whether `public_access` has been enabled for the connection point.", + "example": false, + "type": "boolean" + }, + "role": { + "description": "Whether the endpoint connects to the `primary` or `standby` hostname, as defined in `hosts`.", + "enum": [ + "primary", + "standby" + ], + "example": "primary", + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, + "primary": { + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", + "format": "hostname", + "nullable": true, + "type": "string" + }, + "standby": { + "description": "A DNS name that resolves to the IP addresses assigned to the Managed Database's read-only standby hosts. You can use this hostname to configure applications that only need to view data in the database, in an effort to limit the load on the `primary`.\n\n> \ud83d\udcd8\n>\n> - This only applies to Managed Databases with a `cluster_size` of `2` or `3`.\n>\n> - This DNS name is publicly visible and accessible. Connections to it are over the public internet unless the Managed Database is inside a VPC.\n>\n> - Network traffic to this DNS name is billable unless the client connects over IPv6 from the same `region`.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to one or more private IPv4 addresses within that VPC subnet's address range.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", + "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 name used to identify the Managed Database. This needs to be unique per Managed Database `engine` type. For example, you could use `database_1`, `database_2`, and `database_3` for three unique MySQL Managed Databases. You can also use these same names for three unique PostgreSQL Managed Databases. However, you can't repeat any of these names for either engine type.", + "example": "example-db", + "maxLength": 32, + "minLength": 3, "type": "string", "x-akamai": { "labels": [ "Filterable" - ], - "status": "DEPRECATED" + ] }, + "x-linode-cli-display": 2, "x-linode-filterable": true }, - "id": { - "description": "__Read-only__ This domain's unique ID.", - "example": 1234, + "members": { + "additionalProperties": { + "enum": [ + "primary", + "failover" + ], + "type": "string" + }, + "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": "integer", - "x-linode-cli-display": 1 + "type": "object" }, - "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" + "platform": { + "description": "__Filterable__, __Read-only__ The back-end platform for relational databases used by the service, either `rdbms-legacy` or `rdbms-default`.", + "enum": [ + "rdbms-legacy", + "rdbms-default" + ], + "example": "rdbms-default", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] }, - "type": "array" + "x-linode-cli-display": 8, + "x-linode-filterable": true }, - "refresh_sec": { - "default": 0, - "description": "The amount of time in seconds before this domain should be refreshed.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", - "example": 300, + "port": { + "description": "__Read-only__ The access port for this Managed Database.", + "example": 3306, + "readOnly": true, "type": "integer" }, - "retry_sec": { - "default": 0, - "description": "The interval, in seconds, at which a failed refresh should be retried.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", - "example": 300, - "type": "integer" + "private_network": { + "additionalProperties": false, + "description": "Restricts access on a Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` allows clients outside of the VPC to connect to the database using a public IP address.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The VPC's `subnet_id` used to control access to the database.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database.", + "example": 123, + "type": "integer" + } + }, + "type": "object" }, - "soa_email": { - "description": "Start of Authority email address. This is required for `type` master domains.", - "example": "admin@example.org", - "format": "email", + "region": { + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", + "example": "us-east", "type": "string", - "x-linode-cli-display": 5 + "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 Valkey Managed Database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instance-credentials) operation for access information.", + "example": true, + "type": "boolean" }, "status": { - "default": "active", - "description": "Used to control whether this domain is currently being rendered.", + "description": "__Filterable__, __Read-only__ The operating status of the Managed Database, which can be one of the following: `provisioning`, `active`, `suspending`, `suspended`, `resuming`, `updating`, or `resizing`.", "enum": [ - "disabled", - "active" + "provisioning", + "active", + "suspending", + "suspended", + "resuming", + "updating", + "resizing" ], "example": "active", + "readOnly": true, "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-cli-color": { "active": "green", - "default_": "red", - "disabled": "yellow", - "edit_mode": "yellow" + "default_": "white", + "degraded": "red", + "failed": "red", + "provisioning": "yellow", + "restoring": "yellow", + "resuming": "yellow" }, - "x-linode-cli-display": 4 + "x-linode-cli-display": 100, + "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", + "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 `id` of 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 }, - "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 86400.", - "example": 300, + "updated": { + "description": "__Read-only__ When this Managed Database was last updated.", + "example": "2022-01-01T00:01:01", + "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": { + "default": 4, + "description": "The maximum maintenance window time in hours. Currently can only be `4`.", + "example": 4, + "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", + "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 time when a maintenance update will be applied.", + "example": "2024-10-14T19:55:12", + "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. This is `null` for Valkey", + "example": 2, + "nullable": true, + "readOnly": true, "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", + "version": { + "description": "__Filterable__ The Managed Database engine version.", + "example": "13.2", "type": "string", - "x-linode-cli-display": 3 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 7, + "x-linode-filterable": true } }, - "title": "Domain", "type": "object", "x-akamai": { - "file-path": "schemas/domain.yaml" + "file-path": "schemas/database-valkey.yaml" } } } }, - "description": "Domain update successful." + "description": "Valkey Managed Database updated successfully." }, "default": { "content": { @@ -44320,6 +48882,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -44356,40 +48919,34 @@ }, { "oauth": [ - "domains:read_write" + "databases:read_write" ] } ], - "summary": "Update a domain", + "summary": "Update a Valkey Managed Database", "tags": [ - "Domains" + "Valkey" ], "x-akamai": { - "tabs": [ - { - "syntax": "linode-cli domains update 1234 \\\n --retry_sec 7200 \\\n --ttl_sec 300", - "title": "CLI", - "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" - } - ] + "status": "LA" }, - "x-linode-cli-action": "update", + "x-linode-cli-skip": true, "x-linode-grant": "read_write", "x-linode-iam": [ { "roles": [ - "domain_admin" + "database_admin" ] } ] }, "delete": { - "description": "Deletes a domain from DNS Manager. The domain will be removed from our nameservers shortly after this operation completes. This also deletes all associated domain records.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains delete 1234\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "__Limited availability__ Deletes a Valkey Managed Database from your account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", - "url": "https://techdocs.akamai.com/linode-api/reference/delete-domain" + "url": "https://techdocs.akamai.com/linode-api/reference/delete-databases-valkey-instance" }, - "operationId": "delete-domain", + "operationId": "delete-databases-valkey-instance", "responses": { "200": { "content": { @@ -44405,7 +48962,7 @@ } } }, - "description": "Domain deleted successfully." + "description": "Valkey Managed Database successfully deleted." }, "default": { "content": { @@ -44421,6 +48978,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -44457,32 +49015,23 @@ }, { "oauth": [ - "domains:read_write" + "databases:read_write" ] } ], - "summary": "Delete a domain", + "summary": "Delete a Valkey Managed Database", "tags": [ - "Domains" + "Valkey" ], "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" - } - ] + "status": "LA" }, - "x-linode-cli-action": [ - "delete", - "rm" - ], + "x-linode-cli-skip": true, "x-linode-grant": "read_write", "x-linode-iam": [ { "roles": [ - "domain_admin" + "database_admin" ] } ] @@ -44507,245 +49056,69 @@ } }, { - "description": "The ID of the Domain to access.", - "example": "{{domainId}}", + "description": "The unique identifier for a Valkey Managed Database. Run the [List Valkey Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instances) operation and store the `id` for the desired one.", + "example": "{{valkeyInstanceId}}", "in": "path", - "name": "domainId", + "name": "valkeyInstanceId", "required": true, "schema": { - "example": 12345, + "example": 123458, "type": "integer" }, "x-akamai": { - "file-path": "parameters/domain-id-path-6aab9d6d.yaml" + "file-path": "parameters/valkey-instance-id-path.yaml" } } ], "x-akamai": { - "file-path": "paths/domain.yaml", - "path-info": "/{apiVersion}/domains/{domainId}" + "file-path": "paths/valkey-instance.yaml", + "path-info": "/{apiVersion}/databases/valkey/instances/{valkeyInstanceId}" }, - "x-linode-cli-command": "domains" + "x-linode-cli-command": "databases" }, - "/{apiVersion}/domains/{domainId}/clone": { - "post": { - "description": "Clones a domain and all associated DNS records from a domain that is registered in DNS manager.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains clone 123 --domain example.com\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "/{apiVersion}/databases/valkey/instances/{valkeyInstanceId}/credentials": { + "get": { + "description": "__Limited availability__ Displays the root username and password for an accessible Valkey Managed Database. The database's status can't be `suspended`.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`", "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": { - "example": { - "domain": "example.org" - }, - "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" - } - } - } - }, - "required": true + "url": "https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instance-credentials" }, + "operationId": "get-databases-valkey-instance-credentials", "responses": { "200": { "content": { "application/json": { "example": { - "axfr_ips": [], - "description": null, - "domain": "example.org", - "expire_sec": 300, - "id": 1234, - "master_ips": [], - "refresh_sec": 300, - "retry_sec": 300, - "soa_email": "admin@example.org", - "status": "active", - "tags": [ - "example tag", - "another example" - ], - "ttl_sec": 300, - "type": "master" + "password": "s3cur3P@ssw0rd", + "username": "adevi" }, "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.", + "description": "Managed Database object for database credentials.", "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.\n\n> \ud83d\udcd8\n>\n> 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", - "example": 300, - "type": "integer" - }, - "group": { - "deprecated": true, - "description": "__Deprecated__, __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" - ], - "status": "DEPRECATED" - }, - "x-linode-filterable": true - }, - "id": { - "description": "__Read-only__ This domain's unique ID.", - "example": 1234, + "password": { + "description": "__Read-only__ The randomly generated root password for the Managed Database instance.", + "example": "s3cur3P@ssw0rd", "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 86400.", - "example": 300, - "type": "integer" + "x-linode-cli-display": 2 }, - "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", + "username": { + "description": "__Read-only__ The root username for the Managed Database instance.", + "example": "linroot", + "readOnly": true, "type": "string", - "x-linode-cli-display": 3 + "x-linode-cli-display": 1 } }, - "title": "Domain", "type": "object", "x-akamai": { - "file-path": "schemas/domain.yaml" + "file-path": "schemas/database-credentials.yaml" } } } }, - "description": "A new Domain in Linode's DNS Manager, based on a cloned Domain." + "description": "Valkey Managed Database root username and password." }, "default": { "content": { @@ -44761,6 +49134,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -44797,29 +49171,23 @@ }, { "oauth": [ - "domains:read_write" + "databases:read_only" ] } ], - "summary": "Clone a domain", + "summary": "Get Valkey Managed Database credentials", "tags": [ - "Domains" + "Valkey" ], "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" - } - ] + "status": "LA" }, - "x-linode-cli-action": "clone", - "x-linode-grant": "read_write", + "x-linode-cli-skip": true, + "x-linode-grant": "read_only", "x-linode-iam": [ { "roles": [ - "domain_admin" + "database_viewer" ] } ] @@ -44844,360 +49212,187 @@ } }, { - "description": "ID of the Domain to clone.", - "example": "{{domainId}}", + "description": "The unique identifier for a Valkey Managed Database. Run the [List Valkey Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instances) operation and store the `id` for the desired one.", + "example": "{{valkeyInstanceId}}", "in": "path", - "name": "domainId", + "name": "valkeyInstanceId", "required": true, "schema": { - "example": 12345, + "example": 123458, "type": "integer" }, "x-akamai": { - "file-path": "parameters/domain-id-path-f5ed829a.yaml" + "file-path": "parameters/valkey-instance-id-path.yaml" } } ], "x-akamai": { - "file-path": "paths/domains-clone.yaml", - "path-info": "/{apiVersion}/domains/{domainId}/clone" + "file-path": "paths/valkey-credentials.yaml", + "path-info": "/{apiVersion}/databases/valkey/instances/{valkeyInstanceId}/credentials" }, - "x-linode-cli-command": "domains" + "x-linode-cli-command": "databases" }, - "/{apiVersion}/domains/{domainId}/records": { + "/{apiVersion}/databases/valkey/instances/{valkeyInstanceId}/credentials/reset": { "post": { - "description": "Adds a new domain record to the zonefile this domain represents.\n\nEach domain can have up to 12,000 active records.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `account_domain_creator`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains records-create 123 \\\n --type A \\\n --name test \\\n --target 203.0.113.1 \\\n --priority 50 \\\n --weight 50 \\\n --port 80 \\\n --ttl_sec 604800\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "__Limited availability__ Resets the root password for a Valkey Managed Database. A new root password is randomly generated and accessible with the [Get Valkey Managed Database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instance-credentials) operation.\n\n- The database's status can't be `suspended`.\n\n- It may take several seconds for credentials to reset.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", - "url": "https://techdocs.akamai.com/linode-api/reference/post-domain-record" + "url": "https://techdocs.akamai.com/linode-api/reference/post-databases-valkey-instance-credentials-reset" }, - "operationId": "post-domain-record", - "requestBody": { - "content": { - "application/json": { - "example": { - "name": "test", - "port": 80, - "priority": 50, - "target": "192.0.2.0", - "ttl_sec": 604800, - "type": "A", - "weight": 50 - }, - "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:\n\n`A` and `AAAA`: The hostname or FQDN of the Record.\n\n`NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported.\n\n`MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com` Domain.\n\n- The left-most subdomain component may be an asterisk (`*`) to designate a wildcard subdomain.\n- 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.\n- Must be an empty string (`\"\"`) for a Null MX Record.\n\n`CNAME`: The hostname. Must be unique. Required.\n\n`TXT`: The hostname.\n\n`SRV`: Unused. Use the `service` property to set the service name for this record.\n\n`CAA`: The subdomain. Omit or enter an empty string (`\"\"`) to apply to the entire Domain.\n\n`PTR`: See our guide on how to [Configure Your Linode for Reverse DNS\n(rDNS)](https://www.linode.com/docs/guides/configure-rdns/).", - "example": "test", - "maxLength": 100, - "minLength": 1, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] + "operationId": "post-databases-valkey-instance-credentials-reset", + "responses": { + "200": { + "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": "Valkey Managed Database instance credentials successfully reset." + }, + "default": { + "content": { + "application/json": { + "example": { + "errors": [ + { + "reason": "Invalid JSON" + } + ] + }, + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "description": "Any warnings associated with a response.", + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } }, - "x-linode-cli-display": 3, - "x-linode-filterable": true + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } }, - "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.\n\nDefaults 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:\n\n`A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required.\n\n`NS`: The name server. Must be a valid domain. Required.\n\n`MX`: The mail server. Must be a valid domain unless creating a Null MX Record. Required.\n\n- Must have less than 254 total characters.\n- The left-most domain component may be an asterisk (`*`) to designate a wildcard domain.\n- 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.\n- 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.\n\n`CNAME`: The alias. Must be a valid domain. Required.\n\n`TXT`: The value. Required.\n\n`SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain.\nTo configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for\n`example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a\ntarget set to `sample.com`. Required.\n\n`CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef`\ntag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record:\n\n - `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`\n - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).\n - `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:`.\n\n`PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS\n(rDNS)](https://www.linode.com/docs/guides/configure-rdns/).\n\nWith 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" } - } - ], - "required": [ - "type" - ], - "x-akamai": { - "file-path": "schemas/added-post-domain-record.yaml" + }, + "type": "object" } } - } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] }, - "required": true + { + "oauth": [ + "databases:read_write" + ] + } + ], + "summary": "Reset Valkey Managed Database credentials", + "tags": [ + "Valkey" + ], + "x-akamai": { + "status": "LA" + }, + "x-linode-cli-skip": true, + "x-linode-grant": "read_write", + "x-linode-iam": [ + { + "roles": [ + "database_admin" + ] + } + ] + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "example": "v4", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "The unique identifier for a Valkey Managed Database. Run the [List Valkey Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instances) operation and store the `id` for the desired one.", + "example": "{{valkeyInstanceId}}", + "in": "path", + "name": "valkeyInstanceId", + "required": true, + "schema": { + "example": 123458, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/valkey-instance-id-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/valkey-reset.yaml", + "path-info": "/{apiVersion}/databases/valkey/instances/{valkeyInstanceId}/credentials/reset" + }, + "x-linode-cli-command": "databases" + }, + "/{apiVersion}/databases/valkey/instances/{valkeyInstanceId}/patch": { + "post": { + "description": "__Limited availability__ Applies security patches and updates to the underlying operating system of the Valkey Managed Database. This function runs during regular maintenance windows, which you can configure with the [Update a Valkey Managed Database](https://techdocs.akamai.com/linode-api/reference/put-databases-valkey-instance) operation.\n\n- The database's status can't be `suspended`.\n\n- 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.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_upgrade` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/post-databases-valkey-instance-patch" }, + "operationId": "post-databases-valkey-instance-patch", "responses": { "200": { "content": { "application/json": { - "example": { - "created": "2018-01-01T00:01:01", - "id": 123456, - "name": "test", - "port": 80, - "priority": 50, - "protocol": null, - "service": null, - "tag": null, - "target": "192.0.2.0", - "ttl_sec": 604800, - "type": "A", - "updated": "2018-01-01T00:01:01", - "weight": 50 - }, + "example": {}, "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:\n\n`A` and `AAAA`: The hostname or FQDN of the Record.\n\n`NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported.\n\n`MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com` Domain.\n\n- The left-most subdomain component may be an asterisk (`*`) to designate a wildcard subdomain.\n- 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.\n- Must be an empty string (`\"\"`) for a Null MX Record.\n\n`CNAME`: The hostname. Must be unique. Required.\n\n`TXT`: The hostname.\n\n`SRV`: Unused. Use the `service` property to set the service name for this record.\n\n`CAA`: The subdomain. Omit or enter an empty string (`\"\"`) to apply to the entire Domain.\n\n`PTR`: See our guide on how to [Configure Your Linode for Reverse DNS\n(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.\n\nDefaults 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:\n\n`A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required.\n\n`NS`: The name server. Must be a valid domain. Required.\n\n`MX`: The mail server. Must be a valid domain unless creating a Null MX Record. Required.\n\n- Must have less than 254 total characters.\n- The left-most domain component may be an asterisk (`*`) to designate a wildcard domain.\n- 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.\n- 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.\n\n`CNAME`: The alias. Must be a valid domain. Required.\n\n`TXT`: The value. Required.\n\n`SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain.\nTo configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for\n`example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a\ntarget set to `sample.com`. Required.\n\n`CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef`\ntag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record:\n\n - `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`\n - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).\n - `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:`.\n\n`PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS\n(rDNS)](https://www.linode.com/docs/guides/configure-rdns/).\n\nWith 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 - } - }, + "description": "The API responds with an empty object.", + "maxProperties": 0, "type": "object", "x-akamai": { - "file-path": "schemas/domain-record.yaml" + "file-path": "schemas/added-empty-obj.yaml" } } } }, - "description": "Domain Record created successfully." + "description": "Valkey Managed Database instance patch request successful." }, "default": { "content": { @@ -45213,6 +49408,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -45249,272 +49445,135 @@ }, { "oauth": [ - "domains:read_write" + "databases:read_write" ] } ], - "summary": "Create a domain record", + "summary": "Patch a Valkey Managed Database", "tags": [ - "Domain records" + "Valkey" ], "x-akamai": { - "tabs": [ - { - "syntax": "linode-cli domains records-create 123 \\\n --type A \\\n --name test \\\n --target 203.0.113.1 \\\n --priority 50 \\\n --weight 50 \\\n --port 80 \\\n --ttl_sec 604800", - "title": "CLI", - "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" - } - ] + "status": "LA" }, - "x-linode-cli-action": "records-create", + "x-linode-cli-skip": true, "x-linode-grant": "read_write", "x-linode-iam": [ { "roles": [ - "account_domain_creator" + "database_admin" ] } ] }, - "get": { - "description": "Returns a paginated list of Records configured on a Domain in Linode's DNS Manager.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `domains:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli domains records-list 1234\n```\n\n[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-domain-records" + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "example": "v4", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } }, - "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 unique identifier for a Valkey Managed Database. Run the [List Valkey Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instances) operation and store the `id` for the desired one.", + "example": "{{valkeyInstanceId}}", + "in": "path", + "name": "valkeyInstanceId", + "required": true, + "schema": { + "example": 123458, + "type": "integer" }, - { - "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" - } + "x-akamai": { + "file-path": "parameters/valkey-instance-id-path.yaml" } - ], + } + ], + "x-akamai": { + "file-path": "paths/valkey-patch.yaml", + "path-info": "/{apiVersion}/databases/valkey/instances/{valkeyInstanceId}/patch" + }, + "x-linode-cli-command": "databases" + }, + "/{apiVersion}/databases/valkey/instances/{valkeyInstanceId}/resume": { + "post": { + "description": "__Limited availability__ Resumes a suspended Valkey Managed Database from your account. This resumes billing for the cluster.\n\n- The database's status needs to be `suspended`.\n\n- A successful request triggers a `database_resume` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/resume-databases-valkey-instance" + }, + "operationId": "resume-databases-valkey-instance", "responses": { "200": { + "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": "Valkey Managed Database successfully resumed." + }, + "default": { "content": { "application/json": { "example": { - "data": [ + "errors": [ { - "created": "2018-01-01T00:01:01", - "id": 123456, - "name": "test", - "port": 80, - "priority": 50, - "protocol": null, - "service": null, - "tag": null, - "target": "192.0.2.0", - "ttl_sec": 604800, - "type": "A", - "updated": "2018-01-01T00:01:01", - "weight": 50 + "reason": "Invalid JSON" } - ], - "page": 1, - "pages": 1, - "results": 1 + ] }, "schema": { "additionalProperties": false, "properties": { - "data": { + "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, - "description": "A single record on a Domain.", + "description": "An object for describing a single error that occurred during the processing of a request.", "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:\n\n`A` and `AAAA`: The hostname or FQDN of the Record.\n\n`NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported.\n\n`MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com` Domain.\n\n- The left-most subdomain component may be an asterisk (`*`) to designate a wildcard subdomain.\n- 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.\n- Must be an empty string (`\"\"`) for a Null MX Record.\n\n`CNAME`: The hostname. Must be unique. Required.\n\n`TXT`: The hostname.\n\n`SRV`: Unused. Use the `service` property to set the service name for this record.\n\n`CAA`: The subdomain. Omit or enter an empty string (`\"\"`) to apply to the entire Domain.\n\n`PTR`: See our guide on how to [Configure Your Linode for Reverse DNS\n(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.\n\nDefaults 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, + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", "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:\n\n`A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required.\n\n`NS`: The name server. Must be a valid domain. Required.\n\n`MX`: The mail server. Must be a valid domain unless creating a Null MX Record. Required.\n\n- Must have less than 254 total characters.\n- The left-most domain component may be an asterisk (`*`) to designate a wildcard domain.\n- 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.\n- 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.\n\n`CNAME`: The alias. Must be a valid domain. Required.\n\n`TXT`: The value. Required.\n\n`SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain.\nTo configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for\n`example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a\ntarget set to `sample.com`. Required.\n\n`CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef`\ntag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record:\n\n - `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`\n - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).\n - `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:`.\n\n`PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS\n(rDNS)](https://www.linode.com/docs/guides/configure-rdns/).\n\nWith 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, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", "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" + "file-path": "schemas/error-object.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" - } + "type": "object" } } }, - "description": "A list of Domain Records." + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." } }, "security": [ @@ -45523,242 +49582,101 @@ }, { "oauth": [ - "domains:read_only" + "databases:read_write" ] } ], - "summary": "List domain records", + "summary": "Resume a Valkey Managed Database", "tags": [ - "Domain records" + "Valkey" ], "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" - } - ] + "status": "LA" }, - "x-linode-cli-action": "records-list", - "x-linode-grant": "read_only", + "x-linode-cli-skip": true, + "x-linode-grant": "read_write", "x-linode-iam": [ { "roles": [ - "domain_viewer" + "database_admin" ] } ] }, "parameters": [ { - "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "description": "__Enum__ Call the `v4` URL.", "example": "{{apiVersion}}", "in": "path", "name": "apiVersion", "required": true, "schema": { "enum": [ - "v4", - "v4beta" + "v4" ], "example": "v4", "type": "string" }, "x-akamai": { - "file-path": "parameters/api-version-path.yaml" + "file-path": "parameters/api-version-v4-path.yaml" } }, { - "description": "The ID of the Domain we are accessing Records for.", - "example": "{{domainId}}", + "description": "The unique identifier for a Valkey Managed Database. Run the [List Valkey Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instances) operation and store the `id` for the desired one.", + "example": "{{valkeyInstanceId}}", "in": "path", - "name": "domainId", + "name": "valkeyInstanceId", "required": true, "schema": { - "example": 12345, + "example": 123458, "type": "integer" }, "x-akamai": { - "file-path": "parameters/domain-id-path-eb9ccd41.yaml" + "file-path": "parameters/valkey-instance-id-path.yaml" } } ], "x-akamai": { - "file-path": "paths/domains-records.yaml", - "path-info": "/{apiVersion}/domains/{domainId}/records" + "file-path": "paths/valkey-resume.yaml", + "path-info": "/{apiVersion}/databases/valkey/instances/{valkeyInstanceId}/resume" }, - "x-linode-cli-command": "domains" + "x-linode-cli-command": "databases" }, - "/{apiVersion}/domains/{domainId}/records/{recordId}": { + "/{apiVersion}/databases/valkey/instances/{valkeyInstanceId}/ssl": { "get": { - "description": "View a single record on this domain.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `domains:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli domains records-view 123 234\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "__Limited availability__ Displays the SSL CA certificate for an accessible Valkey Managed Database. The database's status can't be `suspended`.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_only`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", - "url": "https://techdocs.akamai.com/linode-api/reference/get-domain-record" + "url": "https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instance-ssl" }, - "operationId": "get-domain-record", + "operationId": "get-databases-valkey-instance-ssl", "responses": { "200": { "content": { "application/json": { "example": { - "created": "2018-01-01T00:01:01", - "id": 123456, - "name": "test", - "port": 80, - "priority": 50, - "protocol": null, - "service": null, - "tag": null, - "target": "192.0.2.0", - "ttl_sec": 604800, - "type": "A", - "updated": "2018-01-01T00:01:01", - "weight": 50 + "ca_certificate": "LS0tLS1CRUdJ...==" }, "schema": { "additionalProperties": false, - "description": "A single record on a Domain.", + "description": "Managed Database SSL object.", "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:\n\n`A` and `AAAA`: The hostname or FQDN of the Record.\n\n`NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported.\n\n`MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com` Domain.\n\n- The left-most subdomain component may be an asterisk (`*`) to designate a wildcard subdomain.\n- 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.\n- Must be an empty string (`\"\"`) for a Null MX Record.\n\n`CNAME`: The hostname. Must be unique. Required.\n\n`TXT`: The hostname.\n\n`SRV`: Unused. Use the `service` property to set the service name for this record.\n\n`CAA`: The subdomain. Omit or enter an empty string (`\"\"`) to apply to the entire Domain.\n\n`PTR`: See our guide on how to [Configure Your Linode for Reverse DNS\n(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.\n\nDefaults 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:\n\n`A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required.\n\n`NS`: The name server. Must be a valid domain. Required.\n\n`MX`: The mail server. Must be a valid domain unless creating a Null MX Record. Required.\n\n- Must have less than 254 total characters.\n- The left-most domain component may be an asterisk (`*`) to designate a wildcard domain.\n- 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.\n- 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.\n\n`CNAME`: The alias. Must be a valid domain. Required.\n\n`TXT`: The value. Required.\n\n`SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain.\nTo configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for\n`example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a\ntarget set to `sample.com`. Required.\n\n`CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef`\ntag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record:\n\n - `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`\n - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).\n - `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:`.\n\n`PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS\n(rDNS)](https://www.linode.com/docs/guides/configure-rdns/).\n\nWith 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", + "ca_certificate": { + "description": "The base64-encoded SSL CA certificate for the Managed Database instance.", + "example": "LS0tLS1CRUdJ...==", + "format": "base64", "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 + "x-linode-cli-display": 1 } }, "type": "object", "x-akamai": { - "file-path": "schemas/domain-record.yaml" + "file-path": "schemas/database-ssl.yaml" } } } }, - "description": "A Domain Record object." + "description": "Returns the SSL CA certificate of a single Valkey Managed Database." }, "default": { "content": { @@ -45774,6 +49692,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -45810,311 +49729,564 @@ }, { "oauth": [ - "domains:read_only" + "databases:read_only" ] } ], - "summary": "Get a domain record", + "summary": "Get a Valkey Managed Database SSL certificate", "tags": [ - "Domain records" + "Valkey" ], "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" - } - ] + "status": "LA" }, - "x-linode-cli-action": "records-view", + "x-linode-cli-skip": true, "x-linode-grant": "read_only", "x-linode-iam": [ { "roles": [ - "domain_viewer" + "database_viewer" ] } ] }, - "put": { - "description": "Updates a single record on this domain.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains records-update 123 234 \\\n --name test \\\n --target 203.0.113.1 \\\n --priority 50 \\\n --weight 50 \\\n --port 80 \\\n --ttl_sec 604800\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "example": "v4", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "The unique identifier for a Valkey Managed Database. Run the [List Valkey Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instances) operation and store the `id` for the desired one.", + "example": "{{valkeyInstanceId}}", + "in": "path", + "name": "valkeyInstanceId", + "required": true, + "schema": { + "example": 123458, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/valkey-instance-id-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/valkey-ssl.yaml", + "path-info": "/{apiVersion}/databases/valkey/instances/{valkeyInstanceId}/ssl" + }, + "x-linode-cli-command": "databases" + }, + "/{apiVersion}/databases/valkey/instances/{valkeyInstanceId}/suspend": { + "post": { + "description": "__Limited availability__ Suspends a Valkey 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.\n\n- Akamai deletes suspended clusters after 180 days.\n\n- A successful request triggers a `database_suspend` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `database_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `databases:read_write`", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", - "url": "https://techdocs.akamai.com/linode-api/reference/put-domain-record" + "url": "https://techdocs.akamai.com/linode-api/reference/suspend-databases-valkey-instance" }, - "operationId": "put-domain-record", - "requestBody": { - "content": { - "application/json": { - "example": { - "name": "test", - "port": 80, - "priority": 50, - "target": "192.0.2.0", - "ttl_sec": 604800, - "weight": 50 - }, - "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:\n\n`A` and `AAAA`: The hostname or FQDN of the Record.\n\n`NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported.\n\n`MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com` Domain.\n\n- The left-most subdomain component may be an asterisk (`*`) to designate a wildcard subdomain.\n- 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.\n- Must be an empty string (`\"\"`) for a Null MX Record.\n\n`CNAME`: The hostname. Must be unique. Required.\n\n`TXT`: The hostname.\n\n`SRV`: Unused. Use the `service` property to set the service name for this record.\n\n`CAA`: The subdomain. Omit or enter an empty string (`\"\"`) to apply to the entire Domain.\n\n`PTR`: See our guide on how to [Configure Your Linode for Reverse DNS\n(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.\n\nDefaults 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:\n\n`A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required.\n\n`NS`: The name server. Must be a valid domain. Required.\n\n`MX`: The mail server. Must be a valid domain unless creating a Null MX Record. Required.\n\n- Must have less than 254 total characters.\n- The left-most domain component may be an asterisk (`*`) to designate a wildcard domain.\n- 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.\n- 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.\n\n`CNAME`: The alias. Must be a valid domain. Required.\n\n`TXT`: The value. Required.\n\n`SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain.\nTo configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for\n`example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a\ntarget set to `sample.com`. Required.\n\n`CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef`\ntag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record:\n\n - `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`\n - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).\n - `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:`.\n\n`PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS\n(rDNS)](https://www.linode.com/docs/guides/configure-rdns/).\n\nWith 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 + "operationId": "suspend-databases-valkey-instance", + "responses": { + "200": { + "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" } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-put-domain-record.yaml" } } - } + }, + "description": "Valkey Managed Database successfully suspended." }, - "required": true - }, - "responses": { - "200": { + "default": { "content": { "application/json": { "example": { - "created": "2018-01-01T00:01:01", - "id": 123456, - "name": "test", - "port": 80, - "priority": 50, - "protocol": null, - "service": null, - "tag": null, - "target": "192.0.2.0", - "ttl_sec": 604800, - "type": "A", - "updated": "2018-01-01T00:01:01", - "weight": 50 + "errors": [ + { + "reason": "Invalid 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:\n\n`A` and `AAAA`: The hostname or FQDN of the Record.\n\n`NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported.\n\n`MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com` Domain.\n\n- The left-most subdomain component may be an asterisk (`*`) to designate a wildcard subdomain.\n- 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.\n- Must be an empty string (`\"\"`) for a Null MX Record.\n\n`CNAME`: The hostname. Must be unique. Required.\n\n`TXT`: The hostname.\n\n`SRV`: Unused. Use the `service` property to set the service name for this record.\n\n`CAA`: The subdomain. Omit or enter an empty string (`\"\"`) to apply to the entire Domain.\n\n`PTR`: See our guide on how to [Configure Your Linode for Reverse DNS\n(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.\n\nDefaults 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 + "errors": { + "description": "Any warnings associated with a response.", + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "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 Valkey Managed Database", + "tags": [ + "Valkey" + ], + "x-akamai": { + "status": "LA" + }, + "x-linode-cli-skip": true, + "x-linode-grant": "read_write", + "x-linode-iam": [ + { + "roles": [ + "database_admin" + ] + } + ] + }, + "parameters": [ + { + "description": "__Enum__ Call the `v4` URL.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4" + ], + "example": "v4", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-v4-path.yaml" + } + }, + { + "description": "The unique identifier for a Valkey Managed Database. Run the [List Valkey Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-valkey-instances) operation and store the `id` for the desired one.", + "example": "{{valkeyInstanceId}}", + "in": "path", + "name": "valkeyInstanceId", + "required": true, + "schema": { + "example": 123458, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/valkey-instance-id-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/valkey-suspend.yaml", + "path-info": "/{apiVersion}/databases/valkey/instances/{pvalkeyInstanceId}/suspend" + }, + "x-linode-cli-command": "databases" + }, + "/{apiVersion}/domains": { + "post": { + "description": "Adds a new domain to DNS Manager. You must own the domain before adding it here. Be sure to point your registrar to our nameservers. Akamai Cloud does not act as a registrar.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `account_domain_creator`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains create \\\n --type master \\\n --domain example.org \\\n --soa_email admin@example.org\n```\n\n[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-domain" + }, + "operationId": "post-domain", + "requestBody": { + "content": { + "application/json": { + "example": { + "domain": "example.org", + "expire_sec": 300, + "refresh_sec": 300, + "retry_sec": 300, + "soa_email": "admin@example.org", + "status": "active", + "ttl_sec": 300, + "type": "master" + }, + "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.\n\n> \ud83d\udcd8\n>\n> 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", + "example": 300, + "type": "integer" + }, + "group": { + "deprecated": true, + "description": "__Deprecated__, __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" + ], + "status": "DEPRECATED" + }, + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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": "Indicates whether this domain is currently being rendered, either `active` or `disabled`.", + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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 + } }, - "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" + "title": "Domain", + "type": "object", + "x-akamai": { + "file-path": "schemas/domain.yaml" + } + } + ], + "required": [ + "domain", + "type" + ], + "x-akamai": { + "file-path": "schemas/added-post-domain.yaml" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "example": { + "axfr_ips": [], + "description": null, + "domain": "example.org", + "expire_sec": 300, + "id": 1234, + "master_ips": [], + "refresh_sec": 300, + "retry_sec": 300, + "soa_email": "admin@example.org", + "status": "active", + "tags": [ + "example tag", + "another example" + ], + "ttl_sec": 300, + "type": "master" + }, + "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.\n\n> \ud83d\udcd8\n>\n> 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" }, - "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.", + "description": { + "description": "A description for this domain. This is for display purposes only.", "example": null, + "maxLength": 253, + "minLength": 1, "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, + "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 }, - "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:\n\n`A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required.\n\n`NS`: The name server. Must be a valid domain. Required.\n\n`MX`: The mail server. Must be a valid domain unless creating a Null MX Record. Required.\n\n- Must have less than 254 total characters.\n- The left-most domain component may be an asterisk (`*`) to designate a wildcard domain.\n- 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.\n- 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.\n\n`CNAME`: The alias. Must be a valid domain. Required.\n\n`TXT`: The value. Required.\n\n`SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain.\nTo configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for\n`example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a\ntarget set to `sample.com`. Required.\n\n`CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef`\ntag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record:\n\n - `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`\n - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).\n - `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:`.\n\n`PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS\n(rDNS)](https://www.linode.com/docs/guides/configure-rdns/).\n\nWith the exception of A, AAAA, and CAA records, this field accepts a trailing period.", - "example": "192.0.2.0", - "maxLength": 65535, + "expire_sec": { + "default": 0, + "description": "The amount of time in seconds that may pass before this domain is no longer authoritative.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", + "example": 300, + "type": "integer" + }, + "group": { + "deprecated": true, + "description": "__Deprecated__, __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" - ] + ], + "status": "DEPRECATED" }, - "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, + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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 }, - "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).", + "status": { + "default": "active", + "description": "Indicates whether this domain is currently being rendered, either `active` or `disabled`.", "enum": [ - "A", - "AAAA", - "NS", - "MX", - "CNAME", - "TXT", - "SRV", - "PTR", - "CAA" + "disabled", + "active" ], - "example": "A", + "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-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" + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 86400.", + "example": 300, + "type": "integer" }, - "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": { + "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-record.yaml" + "file-path": "schemas/domain.yaml" } } } }, - "description": "Domain Record updated." + "description": "Domain added successfully." }, "default": { "content": { @@ -46130,6 +50302,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -46170,52 +50343,282 @@ ] } ], - "summary": "Update a domain record", + "summary": "Create a domain", "tags": [ - "Domain records" + "Domains" ], "x-akamai": { "tabs": [ { - "syntax": "linode-cli domains records-update 123 234 \\\n --name test \\\n --target 203.0.113.1 \\\n --priority 50 \\\n --weight 50 \\\n --port 80 \\\n --ttl_sec 604800", + "syntax": "linode-cli domains create \\\n --type master \\\n --domain example.org \\\n --soa_email admin@example.org", "title": "CLI", "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" } ] }, - "x-linode-cli-action": "records-update", - "x-linode-grant": "read_write", + "x-linode-cli-action": "create", + "x-linode-grant": "add_domains", "x-linode-iam": [ { "roles": [ - "domain_admin" + "account_domain_creator" ] } ] }, - "delete": { - "description": "Deletes a Record on this Domain.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains records-delete 123 234\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "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.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `domains:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli domains list\n```\n\n[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/delete-domain-record" + "url": "https://techdocs.akamai.com/linode-api/reference/get-domains" }, - "operationId": "delete-domain-record", + "operationId": "get-domains", + "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": {}, + "example": { + "data": [ + { + "axfr_ips": [], + "description": null, + "domain": "example.org", + "expire_sec": 300, + "id": 1234, + "master_ips": [], + "refresh_sec": 300, + "retry_sec": 300, + "soa_email": "admin@example.org", + "status": "active", + "tags": [ + "example tag", + "another example" + ], + "ttl_sec": 300, + "type": "master" + } + ], + "page": 1, + "pages": 1, + "results": 1 + }, "schema": { - "description": "The API responds with an empty object.", - "maxProperties": 0, + "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.\n\n> \ud83d\udcd8\n>\n> 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", + "example": 300, + "type": "integer" + }, + "group": { + "deprecated": true, + "description": "__Deprecated__, __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" + ], + "status": "DEPRECATED" + }, + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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": "Indicates whether this domain is currently being rendered, either `active` or `disabled`.", + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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-empty-obj.yaml" + "file-path": "schemas/added-get-domains-200.yaml" } } } }, - "description": "Record deleted successfully." + "description": "A paginated list of Domains you have registered." }, "default": { "content": { @@ -46231,6 +50634,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -46267,29 +50671,32 @@ }, { "oauth": [ - "domains:read_write" + "domains:read_only" ] } ], - "summary": "Delete a domain record", + "summary": "List domains", "tags": [ - "Domain records" + "Domains" ], "x-akamai": { "tabs": [ { - "syntax": "linode-cli domains records-delete 123 234", + "syntax": "linode-cli domains list", "title": "CLI", "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" } ] }, - "x-linode-cli-action": "records-delete", - "x-linode-grant": "read_write", + "x-linode-cli-action": [ + "list", + "ls" + ], + "x-linode-grant": "read_only", "x-linode-iam": [ { "roles": [ - "domain_admin" + "domain_viewer" ] } ] @@ -46312,95 +50719,230 @@ "x-akamai": { "file-path": "parameters/api-version-path.yaml" } - }, - { - "description": "The ID of the Domain whose Record you are accessing.", - "example": "{{domainId}}", - "in": "path", - "name": "domainId", - "required": true, - "schema": { - "example": 12345, - "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/domains-record.yaml", - "path-info": "/{apiVersion}/domains/{domainId}/records/{recordId}" + "file-path": "paths/domains.yaml", + "path-info": "/{apiVersion}/domains" }, "x-linode-cli-command": "domains" }, - "/{apiVersion}/domains/{domainId}/zone-file": { - "get": { - "description": "Returns the zone file for the last rendered zone for the specified domain.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n \n - Scopes: `domains:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli domains zone-file 123\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "/{apiVersion}/domains/import": { + "post": { + "description": "Imports a domain zone from a remote nameserver. Your nameserver must allow zone transfers (AXFR) from the following IPs:\n\n- 96.126.114.97\n- 96.126.114.98\n- 2600:3c00::5e\n- 2600:3c00::5f\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains import --domain example.com --remote_nameserver examplenameserver.com\n```\n\n[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-domain-zone" + "url": "https://techdocs.akamai.com/linode-api/reference/post-import-domain" + }, + "operationId": "post-import-domain", + "requestBody": { + "content": { + "application/json": { + "example": { + "domain": "example.com", + "remote_nameserver": "examplenameserver.com" + }, + "schema": { + "additionalProperties": false, + "properties": { + "domain": { + "description": "The domain to import.", + "example": "{{domain}}", + "type": "string" + }, + "remote_nameserver": { + "description": "The remote nameserver that allows zone transfers (AXFR).", + "example": "{{remote_nameserver}}", + "type": "string" + } + }, + "required": [ + "domain", + "remote_nameserver" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/added-post-import-domain.yaml" + } + } + } + } }, - "operationId": "get-domain-zone", "responses": { "200": { "content": { "application/json": { "example": { - "zone_file": [ - "; 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." - ] + "axfr_ips": [], + "description": null, + "domain": "example.org", + "expire_sec": 300, + "id": 1234, + "master_ips": [], + "refresh_sec": 300, + "retry_sec": 300, + "soa_email": "admin@example.org", + "status": "active", + "tags": [ + "example tag", + "another example" + ], + "ttl_sec": 300, + "type": "master" }, "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": { - "zone_file": { - "description": "The lines of the zone file for the last rendered zone for this domain.", + "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.\n\n> \ud83d\udcd8\n>\n> 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", + "example": 300, + "type": "integer" + }, + "group": { + "deprecated": true, + "description": "__Deprecated__, __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" + ], + "status": "DEPRECATED" + }, + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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": "Indicates whether this domain is currently being rendered, either `active` or `disabled`.", + "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.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." + "example tag", + "another example" ], "items": { "type": "string" }, - "type": "array" + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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/added-get-domain-zone-200.yaml" + "file-path": "schemas/domain.yaml" } } } }, - "description": "An array containing the lines of the domain zone file." + "description": "A single Domain in Linode's DNS Manager." }, "default": { "content": { @@ -46416,6 +50958,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -46452,29 +50995,30 @@ }, { "oauth": [ - "domains:read_only" + "domains:read_write" ] } ], - "summary": "Get a domain zone file", + "summary": "Import a domain", "tags": [ - "Domain zone files" + "Domains" ], "x-akamai": { "tabs": [ { - "syntax": "linode-cli domains zone-file 123", + "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" } ] }, - "x-linode-cli-action": "zone-file", - "x-linode-grant": "read_only", + "x-linode-cli-action": "import", + "x-linode-cli-command": "domains", + "x-linode-grant": "read_write", "x-linode-iam": [ { "roles": [ - "domain_viewer" + "domain_admin" ] } ] @@ -46497,185 +51041,197 @@ "x-akamai": { "file-path": "parameters/api-version-path.yaml" } - }, - { - "description": "ID of the Domain.", - "example": "{{domainId}}", - "in": "path", - "name": "domainId", - "required": true, - "schema": { - "example": 12345, - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/domain-id-path-32edd7bc.yaml" - } } ], "x-akamai": { - "file-path": "paths/domains-zone-file.yaml", - "path-info": "/{apiVersion}/domains/{domainId}/zone-file" - }, + "file-path": "paths/domains-import.yaml", + "path-info": "/{apiVersion}/domains/import" + }, "x-linode-cli-command": "domains" }, - "/{apiVersion}/entities": { + "/{apiVersion}/domains/{domainId}": { "get": { - "description": "Lists entities created on the account. An *entity* is an object that has a life-cycle and can be managed by an authorized user within an account, for example: a specific virtual machine or firewall. You can manage an entity over time by performing operations on it, based on your access level.\n\n> \ud83d\udcd8 Before you begin\n>\n> Before you run this operation, read [Comparison of Linode API for grants and Identity and Access](https://techdocs.akamai.com/cloud-computing/docs/migration-grants-identity-and-access#comparison-of-linode-api-for-grants-and-identity-and-access) to learn about the new experience and recommended use of the Identity and Access endpoints.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_entities`", + "description": "This is a single domain that you have registered in DNS Manager. For this domain record to resolve, you must own the domain and point your registrar at Akamai Cloud's nameservers. Akamai Cloud does not act as a registrar.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `domains:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli domains view 123\n```\n\n[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-entities" + "url": "https://techdocs.akamai.com/linode-api/reference/get-domain" }, - "operationId": "get-entities", + "operationId": "get-domain", "responses": { "200": { "content": { "application/json": { "example": { - "data": [ - { - "id": 7, - "label": "linode7", - "type": "linode" - }, - { - "id": 10, - "label": "linode10", - "type": "linode" - }, - { - "id": 1, - "label": "no_devices", - "type": "firewall" + "axfr_ips": [], + "description": null, + "domain": "example.org", + "expire_sec": 300, + "id": 1234, + "master_ips": [], + "refresh_sec": 300, + "retry_sec": 300, + "soa_email": "admin@example.org", + "status": "active", + "tags": [ + "example tag", + "another example" + ], + "ttl_sec": 300, + "type": "master" + }, + "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.\n\n> \ud83d\udcd8\n>\n> 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" }, - { - "id": 2, - "label": "active_with_nodebalancer", - "type": "firewall" + "description": { + "description": "A description for this domain. This is for display purposes only.", + "example": null, + "maxLength": 253, + "minLength": 1, + "nullable": true, + "type": "string" }, - { - "id": 1, - "label": "nodebalancer-active", - "type": "nodebalancer" + "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 }, - { - "id": 1, - "label": "active", - "type": "longview" + "expire_sec": { + "default": 0, + "description": "The amount of time in seconds that may pass before this domain is no longer authoritative.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", + "example": 300, + "type": "integer" }, - { - "id": 3, - "label": "LongviewClient", - "type": "longview" + "group": { + "deprecated": true, + "description": "__Deprecated__, __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" + ], + "status": "DEPRECATED" + }, + "x-linode-filterable": true }, - { - "id": 1, - "label": "linDomain.com", - "type": "domain" + "id": { + "description": "__Read-only__ This domain's unique ID.", + "example": 1234, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 1 }, - { - "id": 1, - "label": "API", - "type": "stackscript" + "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" }, - { - "id": 1, - "label": "image - mine", - "type": "image" + "refresh_sec": { + "default": 0, + "description": "The amount of time in seconds before this domain should be refreshed.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", + "example": 300, + "type": "integer" }, - { - "id": 3, - "label": "image - mine - creating", - "type": "image" + "retry_sec": { + "default": 0, + "description": "The interval, in seconds, at which a failed refresh should be retried.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", + "example": 300, + "type": "integer" }, - { - "id": 1, - "label": "volume1", - "type": "volume" + "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 }, - { - "id": 1, - "label": "mongo_cluster", - "type": "database" + "status": { + "default": "active", + "description": "Indicates whether this domain is currently being rendered, either `active` or `disabled`.", + "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 }, - { - "id": 3, - "label": "empty-vpc", - "type": "vpc" - } - ], - "page": 1, - "pages": 1, - "results": 14 - }, - "schema": { - "additionalProperties": false, - "properties": { - "data": { - "description": "Lists entities.", + "tags": { + "description": "__Filterable__ An array of tags applied to this object. Tags are for organizational purposes only.", + "example": [ + "example tag", + "another example" + ], "items": { - "additionalProperties": false, - "description": "An entity object.", - "properties": { - "id": { - "description": "__Read-only__ A unique identifier for each entity.", - "example": 1234, - "minimum": 1, - "readOnly": true, - "type": "integer" - }, - "label": { - "description": "__Read-only__ A unique label for each entity.", - "example": "linode10", - "minLength": 1, - "readOnly": true, - "type": "string", - "x-linode-cli-display": 1 - }, - "type": { - "description": "A type of entity.", - "enum": [ - "database" - ], - "example": "linode", - "type": "string", - "x-linode-cli-display": 2 - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/entity.yaml" - } + "type": "string" }, - "type": "array" - }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" + "type": "array", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 86400.", + "example": 300, "type": "integer" }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "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/entities.yaml" + "file-path": "schemas/domain.yaml" } } } }, - "description": "The entities you have access to." + "description": "A single Domain in Linode's DNS Manager." }, "default": { "content": { @@ -46691,6 +51247,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -46724,130 +51281,385 @@ "security": [ { "personalAccessToken": [] + }, + { + "oauth": [ + "domains:read_only" + ] } ], - "summary": "List entities", + "summary": "Get a domain", "tags": [ - "Identity Management" + "Domains" ], - "x-linode-cli-skip": true, + "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" + } + ] + }, + "x-linode-cli-action": "view", "x-linode-grant": "read_only", "x-linode-iam": [ { - "permissions": [ - "list_entities" + "roles": [ + "domain_viewer" ] } ] }, - "parameters": [ - { - "description": "__Enum__ Call the `v4` URL.", - "example": "{{apiVersion}}", - "in": "path", - "name": "apiVersion", - "required": true, - "schema": { - "enum": [ - "v4" - ], - "example": "v4", - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/api-version-v4-path.yaml" - } - } - ], - "x-akamai": { - "file-path": "paths/entities.yaml", - "path-info": "/{apiVersion}/entities" - } - }, - "/{apiVersion}/iam/delegation/child-accounts": { - "get": { - "description": "Returns the list of available child accounts under your parent account. With the `users` query parameter set to `true`, it also returns the account delegation for each child account. An *account delegation* is a group of parent account users, either admin or non-admin, delegated to manage a specific child account. The child account's admins manage the role assignment of delegate users on the child account. To learn more about the parent and child accounts feature and account delegations, see [Parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners).\n\n> \ud83d\udcd8 Parent and child accounts feature\n>\n> This operation is available only within the context of the parent and child accounts feature and can be run only on a parent account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_all_child_accounts`", + "put": { + "description": "Update information about a domain in DNS Manager.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains update 1234 \\\n --retry_sec 7200 \\\n --ttl_sec 300\n```\n\n[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-iam-delegation-all-child-accounts" + "url": "https://techdocs.akamai.com/linode-api/reference/put-domain" + }, + "operationId": "put-domain", + "requestBody": { + "content": { + "application/json": { + "example": { + "domain": "example.org", + "expire_sec": 300, + "refresh_sec": 300, + "retry_sec": 300, + "soa_email": "admin@example.org", + "status": "active", + "ttl_sec": 300, + "type": "master" + }, + "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.\n\n> \ud83d\udcd8\n>\n> 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", + "example": "{{expire_sec}}", + "type": "integer" + }, + "group": { + "deprecated": true, + "description": "__Deprecated__, __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" + ], + "status": "DEPRECATED" + }, + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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": "Indicates whether this domain is currently being rendered, either `active` or `disabled`.", + "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": { + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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" + } + } + } + }, + "required": true }, - "operationId": "get-iam-delegation-all-child-accounts", "responses": { "200": { "content": { "application/json": { "example": { - "data": [ - { - "company": "Internet Company", - "euuid": "9971F100-C111-0000-9DDFC3AD1A537B00", - "users": [ - "username", - "uzantnomo" - ] - } + "axfr_ips": [], + "description": null, + "domain": "example.org", + "expire_sec": 300, + "id": 1234, + "master_ips": [], + "refresh_sec": 300, + "retry_sec": 300, + "soa_email": "admin@example.org", + "status": "active", + "tags": [ + "example tag", + "another example" ], - "page": 1, - "pages": 1, - "results": 1 + "ttl_sec": 300, + "type": "master" }, "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": { - "data": { - "description": "List of child accounts.", + "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.\n\n> \ud83d\udcd8\n>\n> This is potentially dangerous, and should be set to an empty list unless you intend to use it.", + "example": [], "items": { - "additionalProperties": false, - "properties": { - "company": { - "description": "The company name for the child account.", - "type": "string" - }, - "euuid": { - "description": "The unique identifier of the child account.", - "type": "string" - }, - "users": { - "description": "Users added to the account delegation for the child account. This appears only when the `users` query parameter is set to `true`.", - "items": { - "type": "string" - }, - "minItems": 0, - "type": "array" - } - }, - "type": "object" + "format": "ip", + "type": "string" }, - "minItems": 0, "type": "array" }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", + "example": 300, "type": "integer" }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, + "group": { + "deprecated": true, + "description": "__Deprecated__, __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" + ], + "status": "DEPRECATED" + }, + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", + "example": 300, "type": "integer" }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, + "retry_sec": { + "default": 0, + "description": "The interval, in seconds, at which a failed refresh should be retried.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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": "Indicates whether this domain is currently being rendered, either `active` or `disabled`.", + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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/get-iam-delegation-all-child-accounts.yaml" + "file-path": "schemas/domain.yaml" } } } }, - "description": "List of child accounts." + "description": "Domain update successful." }, "default": { "content": { @@ -46863,6 +51675,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -46896,118 +51709,59 @@ "security": [ { "personalAccessToken": [] + }, + { + "oauth": [ + "domains:read_write" + ] } ], - "summary": "List child accounts", + "summary": "Update a domain", "tags": [ - "Delegation for parent and child accounts" + "Domains" ], - "x-linode-cli-skip": true, + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli domains update 1234 \\\n --retry_sec 7200 \\\n --ttl_sec 300", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + } + ] + }, + "x-linode-cli-action": "update", + "x-linode-grant": "read_write", "x-linode-iam": [ { - "permissions": [ - "list_all_child_accounts" + "roles": [ + "domain_admin" ] } ] }, - "parameters": [ - { - "description": "__Enum__ Call the `v4` URL.", - "example": "{{apiVersion}}", - "in": "path", - "name": "apiVersion", - "required": true, - "schema": { - "enum": [ - "v4" - ], - "example": "v4", - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/api-version-v4-path.yaml" - } - }, - { - "description": "Users added to the account delegation for each child account, `false` by default.", - "example": "{{users}}", - "in": "query", - "name": "users", - "schema": { - "default": false, - "example": true, - "type": "boolean" - }, - "x-akamai": { - "file-path": "parameters/users.yaml" - } - } - ], - "x-akamai": { - "file-path": "paths/iam-delegation-all-child-accounts.yaml", - "path-info": "/{apiVersion}/iam/delegation/child-accounts" - } - }, - "/{apiVersion}/iam/delegation/child-accounts/{euuid}/users": { - "get": { - "description": "Returns the list of users added to the account delegation for a specific child account. An *account delegation* is a group of parent account users, either admin or non-admin, delegated to manage a specific child account. The child account's admins manage the role assignment of delegate users on the child account. To learn more about the parent and child accounts feature and account delegations, see [Parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners).\n\n> \ud83d\udcd8 Parent and child accounts feature\n>\n> This operation is available only within the context of the parent and child accounts feature and can be run only on a parent account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_delegate_users`", + "delete": { + "description": "Deletes a domain from DNS Manager. The domain will be removed from our nameservers shortly after this operation completes. This also deletes all associated domain records.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains delete 1234\n```\n\n[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-iam-delegation-child-account-users" + "url": "https://techdocs.akamai.com/linode-api/reference/delete-domain" }, - "operationId": "get-iam-delegation-child-account-users", + "operationId": "delete-domain", "responses": { "200": { "content": { "application/json": { - "example": { - "data": [ - "username", - "uzantnomo" - ], - "page": 1, - "pages": 1, - "results": 2 - }, + "example": {}, "schema": { - "additionalProperties": false, - "properties": { - "data": { - "description": "Users in the account delegation for the child account.", - "items": { - "type": "string" - }, - "minItems": 0, - "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" - } - }, + "description": "The API responds with an empty object.", + "maxProperties": 0, "type": "object", "x-akamai": { - "file-path": "schemas/iam-delegation-child-account-users.yaml" + "file-path": "schemas/added-empty-obj.yaml" } } } }, - "description": "Users in the account delegation for the child account." + "description": "Domain deleted successfully." }, "default": { "content": { @@ -47023,6 +51777,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -47056,53 +51811,117 @@ "security": [ { "personalAccessToken": [] + }, + { + "oauth": [ + "domains:read_write" + ] } ], - "summary": "Get the account delegation for a child account", + "summary": "Delete a domain", "tags": [ - "Delegation for parent and child accounts" + "Domains" ], - "x-linode-cli-skip": true, + "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" + } + ] + }, + "x-linode-cli-action": [ + "delete", + "rm" + ], + "x-linode-grant": "read_write", "x-linode-iam": [ { - "permissions": [ - "list_delegate_users" + "roles": [ + "domain_admin" ] } ] }, - "put": { - "description": "Updates the list of users added to the account delegation for a specific child account. An *account delegation* is a group of parent account users, either admin or non-admin, delegated to manage a specific child account. The child account's admins manage the role assignment of delegate users on the child account. To learn more about the parent and child accounts feature and account delegations, see [Parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners).\n\n> \ud83d\udcd8 Parent and child accounts feature\n>\n> This operation is available only within the context of the parent and child accounts feature and can be run only on a parent account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `update_delegate_users`", + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "example": "v4", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "The ID of the Domain to access.", + "example": "{{domainId}}", + "in": "path", + "name": "domainId", + "required": true, + "schema": { + "example": 12345, + "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" + }, + "/{apiVersion}/domains/{domainId}/clone": { + "post": { + "description": "Clones a domain and all associated DNS records from a domain that is registered in DNS manager.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains clone 123 --domain example.com\n```\n\n[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-iam-delegation-child-account-users" + "url": "https://techdocs.akamai.com/linode-api/reference/post-clone-domain" }, - "operationId": "put-iam-delegation-child-account-users", + "operationId": "post-clone-domain", "requestBody": { "content": { "application/json": { "example": { - "users": [ - "username", - "uzantnomo" - ] + "domain": "example.org" }, "schema": { "additionalProperties": false, "properties": { - "users": { - "description": "Usernames to add to the account delegation for the child account.", - "items": { - "example": "user1234", - "type": "string" + "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" + ] }, - "minItems": 1, - "type": "array" + "x-linode-filterable": true } }, + "required": [ + "domain" + ], "type": "object", "x-akamai": { - "file-path": "schemas/iam-delegation-usernames.yaml" + "file-path": "schemas/added-post-clone-domain.yaml" } } } @@ -47114,54 +51933,178 @@ "content": { "application/json": { "example": { - "data": [ - "username", - "uzantnomo" + "axfr_ips": [], + "description": null, + "domain": "example.org", + "expire_sec": 300, + "id": 1234, + "master_ips": [], + "refresh_sec": 300, + "retry_sec": 300, + "soa_email": "admin@example.org", + "status": "active", + "tags": [ + "example tag", + "another example" ], - "page": 1, - "pages": 1, - "results": 2 + "ttl_sec": 300, + "type": "master" }, "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": { - "data": { - "description": "Users in the account delegation for the child account.", + "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.\n\n> \ud83d\udcd8\n>\n> This is potentially dangerous, and should be set to an empty list unless you intend to use it.", + "example": [], "items": { + "format": "ip", "type": "string" }, - "minItems": 0, "type": "array" }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 1209600.", + "example": 300, "type": "integer" }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, + "group": { + "deprecated": true, + "description": "__Deprecated__, __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" + ], + "status": "DEPRECATED" + }, + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", + "example": 300, "type": "integer" }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, + "retry_sec": { + "default": 0, + "description": "The interval, in seconds, at which a failed refresh should be retried.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- A value of 0 is equivalent to the default value of 14400.", + "example": 300, "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/iam-delegation-child-account-users.yaml" - } - } - } - }, - "description": "Users in the account delegation for the child account." - }, - "default": { + }, + "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": "Indicates whether this domain is currently being rendered, either `active` or `disabled`.", + "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.\n\n- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200.\n\n- Any other value is rounded up to the nearest valid value.\n\n- 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" + } + } + } + }, + "description": "A new Domain in Linode's DNS Manager, based on a cloned Domain." + }, + "default": { "content": { "application/json": { "example": { @@ -47175,6 +52118,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -47208,464 +52152,243 @@ "security": [ { "personalAccessToken": [] + }, + { + "oauth": [ + "domains:read_write" + ] } ], - "summary": "Update the account delegation for a child account", + "summary": "Clone a domain", "tags": [ - "Delegation for parent and child accounts" + "Domains" ], - "x-linode-cli-skip": true, + "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" + } + ] + }, + "x-linode-cli-action": "clone", + "x-linode-grant": "read_write", "x-linode-iam": [ { - "permissions": [ - "update_delegate_users" + "roles": [ + "domain_admin" ] } ] }, "parameters": [ { - "description": "A unique identifier for a child account. To get this value, run [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-iam-delegation-all-child-accounts).", - "example": "{{euuid}}", + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", "in": "path", - "name": "euuid", + "name": "apiVersion", "required": true, "schema": { - "example": "9971F100-C111-0000-9DDFC3AD1A537B00", - "format": "uuid", + "enum": [ + "v4", + "v4beta" + ], + "example": "v4", "type": "string" }, "x-akamai": { - "file-path": "parameters/euuid.yaml" + "file-path": "parameters/api-version-path.yaml" } }, { - "description": "__Enum__ Call the `v4` URL.", - "example": "{{apiVersion}}", + "description": "ID of the Domain to clone.", + "example": "{{domainId}}", "in": "path", - "name": "apiVersion", + "name": "domainId", "required": true, "schema": { - "enum": [ - "v4" - ], - "example": "v4", - "type": "string" + "example": 12345, + "type": "integer" }, "x-akamai": { - "file-path": "parameters/api-version-v4-path.yaml" + "file-path": "parameters/domain-id-path-f5ed829a.yaml" } } ], "x-akamai": { - "file-path": "paths/iam-delegation-child-accounts-users.yaml", - "path-info": "/{apiVersion}/iam/delegation/child-accounts/{euuid}/users" - } - }, - "/{apiVersion}/iam/delegation/default-role-permissions": { - "get": { - "description": "Returns roles assigned to new delegate users by default. A *delegate user* is a user from the parent account delegated by a parent account's admin on the parent account to have access to your, child, account. Note that the delegate users' access can be modified just as a regular child account user, so the returned list doesn't provide the role assignment of all delegate users. To get the detailed role assignment of a delegate user, run the [Get a user's access level](https://techdocs.akamai.com/linode-api/reference/get-iam-users-role-permissions) operation. To learn more about the parent and child accounts feature and account delegations, see [Parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners).\n\n> \ud83d\udcd8 Parent and child accounts feature\n>\n> This operation is available only within the context of the parent and child accounts feature and can be run only on a child account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `view_default_delegate_access`", - "externalDocs": { - "description": "See documentation for this operation in Akamai's Linode API", - "url": "https://techdocs.akamai.com/linode-api/reference/get-iam-delegation-default-role-permissions" - }, - "operationId": "get-iam-delegation-default-role-permissions", - "responses": { - "200": { - "content": { - "application/json": { - "example": { - "account_access": [ - "linode_creator", - "firewall_creator" - ], - "entity_access": [ - { - "id": 1, - "roles": [ - "linode_contributor" - ], - "type": "linode" - }, - { - "id": 1, - "roles": [ - "firewall_admin" - ], - "type": "firewall" - } - ] - }, - "schema": { - "additionalProperties": false, - "description": "The user's access level.", - "properties": { - "account_access": { - "description": "Assigned account access roles.", - "items": { - "enum": [ - "account_admin", - "account_event_viewer", - "account_maintenance_viewer", - "account_notification_viewer", - "account_billing_viewer", - "account_billing_admin", - "account_linode_creator", - "account_oauth_client_viewer", - "account_oauth_client_admin", - "account_firewall_creator", - "account_image_creator", - "account_nodebalancer_creator", - "account_volume_creator", - "account_vpc_creator", - "account_database_creator", - "account_domain_creator", - "account_longview_creator", - "account_longview_subscription_admin", - "account_placement_group_creator", - "account_stackscript_creator", - "account_lkecluster_creator" - ], - "type": "string" - }, - "minItems": 0, - "type": "array" - }, - "entity_access": { - "description": "Encapsulates assigned entity access roles and entities they apply to.", - "example": [ - { - "id": 1, - "roles": [ - "linode_contributor" - ], - "type": "linode" - }, - { - "id": 1, - "roles": [ - "firewall_admin" - ], - "type": "firewall" - } - ], - "items": { - "additionalProperties": false, - "properties": { - "id": { - "description": "A unique identifier for an entity. To get this value, run the [List entities](https://techdocs.akamai.com/linode-api/reference/get-entities) operation.", - "example": 1, - "minimum": 1, - "type": "integer" - }, - "roles": { - "description": "Entity access roles you want to assign to the entity.", - "example": [ - "linode_contributor" - ], - "items": { - "enum": [ - "linode_admin", - "linode_contributor", - "linode_viewer", - "firewall_admin", - "firewall_contributor", - "firewall_viewer", - "nodebalancer_admin", - "nodebalancer_viewer", - "vpc_admin", - "vpc_viewer", - "volume_admin", - "volume_viewer", - "image_admin", - "image_viewer", - "lkecluster_admin", - "lkecluster_viewer", - "domain_admin", - "domain_viewer", - "stackscript_admin", - "stackscript_viewer", - "database_admin", - "database_viewer", - "longview_admin", - "longview_viewer" - ], - "type": "string" - }, - "minItems": 0, - "type": "array" - }, - "type": { - "description": "A type of entity. This is the Cloud Manager service or capability that an entity corresponds to.", - "enum": [ - "linode", - "firewall", - "database", - "domain", - "image", - "longview", - "nodebalancer", - "stackscript", - "volume", - "vpc" - ], - "example": "linode", - "type": "string" - } - }, - "required": [ - "id", - "type", - "roles" - ], - "type": "object" - }, - "minItems": 0, - "type": "array" - } - }, - "required": [ - "account_access", - "entity_access" - ], - "type": "object", - "x-akamai": { - "file-path": "schemas/iam-users-role-permissions.yaml" - } - } - } - }, - "description": "The list of roles assigned to new delegate users by default." - }, - "default": { - "content": { - "application/json": { - "example": { - "errors": [ - { - "reason": "Invalid JSON" - } - ] - }, - "schema": { - "additionalProperties": false, - "properties": { - "errors": { - "items": { - "additionalProperties": false, - "description": "An object for describing a single error that occurred during the processing of a request.", - "properties": { - "field": { - "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", - "example": "fieldname", - "type": "string" - }, - "reason": { - "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", - "example": "fieldname must be a valid value", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/error-object.yaml" - } - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." - } - }, - "security": [ - { - "personalAccessToken": [] - } - ], - "summary": "Get the default role assignment for delegate users", - "tags": [ - "Delegation for parent and child accounts" - ], - "x-linode-cli-skip": true, - "x-linode-iam": [ - { - "permissions": [ - "view_default_delegate_access" - ] - } - ] + "file-path": "paths/domains-clone.yaml", + "path-info": "/{apiVersion}/domains/{domainId}/clone" }, - "put": { - "description": "Updates the default role assignment for new delegate users on your child account. A *delegate user* is a user from the parent account delegated by a parent account's admin on the parent account to have access to your, child, account. Note that the change applies only to new delegate users coming to your account. To edit current delegate users' access, you need to run the [Update a user's access level](https://techdocs.akamai.com/linode-api/reference/put-iam-users-role-permissions) operation. To learn more about the parent and child accounts feature and account delegations, see [Parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners).\n\n> \ud83d\udcd8 Parent and child accounts feature\n>\n> This operation is available only within the context of the parent and child accounts feature and can be run only on a child account by its admin.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `update_default_delegate_access`", + "x-linode-cli-command": "domains" + }, + "/{apiVersion}/domains/{domainId}/records": { + "post": { + "description": "Adds a new domain record to the zonefile this domain represents.\n\nEach domain can have up to 12,000 active records.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `account_domain_creator`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains records-create 123 \\\n --type A \\\n --name test \\\n --target 203.0.113.1 \\\n --priority 50 \\\n --weight 50 \\\n --port 80 \\\n --ttl_sec 604800\n```\n\n[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-iam-delegation-default-role-permissions" + "url": "https://techdocs.akamai.com/linode-api/reference/post-domain-record" }, - "operationId": "put-iam-delegation-default-role-permissions", + "operationId": "post-domain-record", "requestBody": { "content": { "application/json": { "example": { - "account_access": [ - "linode_creator", - "firewall_creator" - ], - "entity_access": [ - { - "id": 1, - "roles": [ - "linode_contributor" - ], - "type": "linode" - }, - { - "id": 1, - "roles": [ - "firewall_admin" - ], - "type": "firewall" - } - ] + "name": "test", + "port": 80, + "priority": 50, + "target": "192.0.2.0", + "ttl_sec": 604800, + "type": "A", + "weight": 50 }, "schema": { - "additionalProperties": false, - "description": "The user's access level.", - "properties": { - "account_access": { - "description": "Assigned account access roles.", - "items": { - "enum": [ - "account_admin", - "account_event_viewer", - "account_maintenance_viewer", - "account_notification_viewer", - "account_billing_viewer", - "account_billing_admin", - "account_linode_creator", - "account_oauth_client_viewer", - "account_oauth_client_admin", - "account_firewall_creator", - "account_image_creator", - "account_nodebalancer_creator", - "account_volume_creator", - "account_vpc_creator", - "account_database_creator", - "account_domain_creator", - "account_longview_creator", - "account_longview_subscription_admin", - "account_placement_group_creator", - "account_stackscript_creator", - "account_lkecluster_creator" - ], - "type": "string" - }, - "minItems": 0, - "type": "array" - }, - "entity_access": { - "description": "Encapsulates assigned entity access roles and entities they apply to.", - "example": [ - { - "id": 1, - "roles": [ - "linode_contributor" - ], - "type": "linode" + "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": 1, - "roles": [ - "firewall_admin" + "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:\n\n`A` and `AAAA`: The hostname or FQDN of the Record.\n\n`NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported.\n\n`MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com` Domain.\n\n- The left-most subdomain component may be an asterisk (`*`) to designate a wildcard subdomain.\n- 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.\n- Must be an empty string (`\"\"`) for a Null MX Record.\n\n`CNAME`: The hostname. Must be unique. Required.\n\n`TXT`: The hostname.\n\n`SRV`: Unused. Use the `service` property to set the service name for this record.\n\n`CAA`: The subdomain. Omit or enter an empty string (`\"\"`) to apply to the entire Domain.\n\n`PTR`: See our guide on how to [Configure Your Linode for Reverse DNS\n(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.\n\nDefaults 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, either `issue`, `issuewild`, or `iodef`. See [CAA records](https://techdocs.akamai.com/cloud-computing/docs/caa-records) for details on these possible tag values. Only valid and required for CAA record requests.", + "enum": [ + "issue", + "issuewild", + "iodef" ], - "type": "firewall" - } - ], - "items": { - "additionalProperties": false, - "properties": { - "id": { - "description": "A unique identifier for an entity. To get this value, run the [List entities](https://techdocs.akamai.com/linode-api/reference/get-entities) operation.", - "example": 1, - "minimum": 1, - "type": "integer" + "example": null, + "nullable": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] }, - "roles": { - "description": "Entity access roles you want to assign to the entity.", - "example": [ - "linode_contributor" - ], - "items": { - "enum": [ - "linode_admin", - "linode_contributor", - "linode_viewer", - "firewall_admin", - "firewall_contributor", - "firewall_viewer", - "nodebalancer_admin", - "nodebalancer_viewer", - "vpc_admin", - "vpc_viewer", - "volume_admin", - "volume_viewer", - "image_admin", - "image_viewer", - "lkecluster_admin", - "lkecluster_viewer", - "domain_admin", - "domain_viewer", - "stackscript_admin", - "stackscript_viewer", - "database_admin", - "database_viewer", - "longview_admin", - "longview_viewer" - ], - "type": "string" - }, - "minItems": 0, - "type": "array" + "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:\n\n`A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required.\n\n`NS`: The name server. Must be a valid domain. Required.\n\n`MX`: The mail server. Must be a valid domain unless creating a Null MX Record. Required.\n\n- Must have less than 254 total characters.\n- The left-most domain component may be an asterisk (`*`) to designate a wildcard domain.\n- 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.\n- 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.\n\n`CNAME`: The alias. Must be a valid domain. Required.\n\n`TXT`: The value. Required.\n\n`SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain.\nTo configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for\n`example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a\ntarget set to `sample.com`. Required.\n\n`CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef`\ntag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record:\n\n - `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`\n - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).\n - `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:`.\n\n`PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS\n(rDNS)](https://www.linode.com/docs/guides/configure-rdns/).\n\nWith 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" + ] }, - "type": { - "description": "A type of entity. This is the Cloud Manager service or capability that an entity corresponds to.", - "enum": [ - "linode", - "firewall", - "database", - "domain", - "image", - "longview", - "nodebalancer", - "stackscript", - "volume", - "vpc" - ], - "example": "linode", - "type": "string" - } + "x-linode-cli-display": 4, + "x-linode-filterable": true }, - "required": [ - "id", - "type", - "roles" - ], - "type": "object" + "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 + } }, - "minItems": 0, - "type": "array" + "type": "object", + "x-akamai": { + "file-path": "schemas/domain-record.yaml" + } } - }, + ], "required": [ - "account_access", - "entity_access" + "type" ], - "type": "object", "x-akamai": { - "file-path": "schemas/iam-users-role-permissions.yaml" + "file-path": "schemas/added-post-domain-record.yaml" } } } @@ -47677,167 +52400,162 @@ "content": { "application/json": { "example": { - "account_access": [ - "linode_creator", - "firewall_creator" - ], - "entity_access": [ - { - "id": 1, - "roles": [ - "linode_contributor" - ], - "type": "linode" - }, - { - "id": 1, - "roles": [ - "firewall_admin" - ], - "type": "firewall" - } - ] + "created": "2018-01-01T00:01:01", + "id": 123456, + "name": "test", + "port": 80, + "priority": 50, + "protocol": null, + "service": null, + "tag": null, + "target": "192.0.2.0", + "ttl_sec": 604800, + "type": "A", + "updated": "2018-01-01T00:01:01", + "weight": 50 }, "schema": { "additionalProperties": false, - "description": "The user's access level.", + "description": "A single record on a Domain.", "properties": { - "account_access": { - "description": "Assigned account access roles.", - "items": { - "enum": [ - "account_admin", - "account_event_viewer", - "account_maintenance_viewer", - "account_notification_viewer", - "account_billing_viewer", - "account_billing_admin", - "account_linode_creator", - "account_oauth_client_viewer", - "account_oauth_client_admin", - "account_firewall_creator", - "account_image_creator", - "account_nodebalancer_creator", - "account_volume_creator", - "account_vpc_creator", - "account_database_creator", - "account_domain_creator", - "account_longview_creator", - "account_longview_subscription_admin", - "account_placement_group_creator", - "account_stackscript_creator", - "account_lkecluster_creator" - ], - "type": "string" + "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:\n\n`A` and `AAAA`: The hostname or FQDN of the Record.\n\n`NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported.\n\n`MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com` Domain.\n\n- The left-most subdomain component may be an asterisk (`*`) to designate a wildcard subdomain.\n- 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.\n- Must be an empty string (`\"\"`) for a Null MX Record.\n\n`CNAME`: The hostname. Must be unique. Required.\n\n`TXT`: The hostname.\n\n`SRV`: Unused. Use the `service` property to set the service name for this record.\n\n`CAA`: The subdomain. Omit or enter an empty string (`\"\"`) to apply to the entire Domain.\n\n`PTR`: See our guide on how to [Configure Your Linode for Reverse DNS\n(rDNS)](https://www.linode.com/docs/guides/configure-rdns/).", + "example": "test", + "maxLength": 100, + "minLength": 1, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] }, - "minItems": 0, - "type": "array" + "x-linode-cli-display": 3, + "x-linode-filterable": true }, - "entity_access": { - "description": "Encapsulates assigned entity access roles and entities they apply to.", - "example": [ - { - "id": 1, - "roles": [ - "linode_contributor" - ], - "type": "linode" - }, - { - "id": 1, - "roles": [ - "firewall_admin" - ], - "type": "firewall" - } + "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.\n\nDefaults 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, either `issue`, `issuewild`, or `iodef`. See [CAA records](https://techdocs.akamai.com/cloud-computing/docs/caa-records) for details on these possible tag values. Only valid and required for CAA record requests.", + "enum": [ + "issue", + "issuewild", + "iodef" ], - "items": { - "additionalProperties": false, - "properties": { - "id": { - "description": "A unique identifier for an entity. To get this value, run the [List entities](https://techdocs.akamai.com/linode-api/reference/get-entities) operation.", - "example": 1, - "minimum": 1, - "type": "integer" - }, - "roles": { - "description": "Entity access roles you want to assign to the entity.", - "example": [ - "linode_contributor" - ], - "items": { - "enum": [ - "linode_admin", - "linode_contributor", - "linode_viewer", - "firewall_admin", - "firewall_contributor", - "firewall_viewer", - "nodebalancer_admin", - "nodebalancer_viewer", - "vpc_admin", - "vpc_viewer", - "volume_admin", - "volume_viewer", - "image_admin", - "image_viewer", - "lkecluster_admin", - "lkecluster_viewer", - "domain_admin", - "domain_viewer", - "stackscript_admin", - "stackscript_viewer", - "database_admin", - "database_viewer", - "longview_admin", - "longview_viewer" - ], - "type": "string" - }, - "minItems": 0, - "type": "array" - }, - "type": { - "description": "A type of entity. This is the Cloud Manager service or capability that an entity corresponds to.", - "enum": [ - "linode", - "firewall", - "database", - "domain", - "image", - "longview", - "nodebalancer", - "stackscript", - "volume", - "vpc" - ], - "example": "linode", - "type": "string" - } - }, - "required": [ - "id", - "type", - "roles" - ], - "type": "object" + "example": null, + "nullable": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] }, - "minItems": 0, - "type": "array" + "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:\n\n`A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required.\n\n`NS`: The name server. Must be a valid domain. Required.\n\n`MX`: The mail server. Must be a valid domain unless creating a Null MX Record. Required.\n\n- Must have less than 254 total characters.\n- The left-most domain component may be an asterisk (`*`) to designate a wildcard domain.\n- 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.\n- 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.\n\n`CNAME`: The alias. Must be a valid domain. Required.\n\n`TXT`: The value. Required.\n\n`SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain.\nTo configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for\n`example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a\ntarget set to `sample.com`. Required.\n\n`CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef`\ntag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record:\n\n - `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`\n - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).\n - `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:`.\n\n`PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS\n(rDNS)](https://www.linode.com/docs/guides/configure-rdns/).\n\nWith 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 } }, - "required": [ - "account_access", - "entity_access" - ], "type": "object", "x-akamai": { - "file-path": "schemas/iam-users-role-permissions.yaml" + "file-path": "schemas/domain-record.yaml" } } } }, - "description": "The updated list of roles assigned to new delegate users by default." + "description": "Domain Record created successfully." }, "default": { "content": { @@ -47853,6 +52571,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -47886,53 +52605,77 @@ "security": [ { "personalAccessToken": [] + }, + { + "oauth": [ + "domains:read_write" + ] } ], - "summary": "Update the default role assignment for delegate users", + "summary": "Create a domain record", "tags": [ - "Delegation for parent and child accounts" + "Domain records" ], - "x-linode-cli-skip": true, + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli domains records-create 123 \\\n --type A \\\n --name test \\\n --target 203.0.113.1 \\\n --priority 50 \\\n --weight 50 \\\n --port 80 \\\n --ttl_sec 604800", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + } + ] + }, + "x-linode-cli-action": "records-create", + "x-linode-grant": "read_write", "x-linode-iam": [ { - "permissions": [ - "update_default_delegate_access" + "roles": [ + "account_domain_creator" ] } ] }, - "parameters": [ - { - "description": "__Enum__ Call the `v4` URL.", - "example": "{{apiVersion}}", - "in": "path", - "name": "apiVersion", - "required": true, - "schema": { - "enum": [ - "v4" - ], - "example": "v4", - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/api-version-v4-path.yaml" - } - } - ], - "x-akamai": { - "file-path": "paths/iam-delegation-default-role-permissions.yaml", - "path-info": "/{apiVersion}/iam/delegation/default-role-permissions" - } - }, - "/{apiVersion}/iam/delegation/profile/child-accounts": { "get": { - "description": "Returns the list of child accounts you are part of the account delegation for. An *account delegation* is a group of parent account users, either admin or non-admin, delegated to manage a specific child account. The child account's admins manage the role assignment of delegate users on the child account. To learn more about the parent and child accounts feature and account delegations, see [Parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners).\n\n> \ud83d\udcd8 Parent and child accounts feature\n>\n> This operation is available only within the context of the parent and child accounts feature and can be run only on a parent account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_user_delegate_accounts`", + "description": "Returns a paginated list of Records configured on a Domain in Linode's DNS Manager.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `domains:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli domains records-list 1234\n```\n\n[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-iam-delegation-profile-child-account" + "url": "https://techdocs.akamai.com/linode-api/reference/get-domain-records" }, - "operationId": "get-iam-delegation-profile-child-account", + "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": { @@ -47940,33 +52683,168 @@ "example": { "data": [ { - "company": "Internet Company", - "euuid": "9971F100-C111-0000-9DDFC3AD1A537B00" - } - ], - "page": 1, - "pages": 1, - "results": 1 - }, - "schema": { - "additionalProperties": false, + "created": "2018-01-01T00:01:01", + "id": 123456, + "name": "test", + "port": 80, + "priority": 50, + "protocol": null, + "service": null, + "tag": null, + "target": "192.0.2.0", + "ttl_sec": 604800, + "type": "A", + "updated": "2018-01-01T00:01:01", + "weight": 50 + } + ], + "page": 1, + "pages": 1, + "results": 1 + }, + "schema": { + "additionalProperties": false, "properties": { "data": { - "description": "List of child accounts.", "items": { "additionalProperties": false, + "description": "A single record on a Domain.", "properties": { - "company": { - "description": "The company name for the child account.", + "created": { + "description": "__Read-only__ When this Domain Record was created.", + "example": "2018-01-01T00:01:01", + "format": "date-time", + "readOnly": true, "type": "string" }, - "euuid": { - "description": "The unique identifier for the child account.", + "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:\n\n`A` and `AAAA`: The hostname or FQDN of the Record.\n\n`NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported.\n\n`MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com` Domain.\n\n- The left-most subdomain component may be an asterisk (`*`) to designate a wildcard subdomain.\n- 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.\n- Must be an empty string (`\"\"`) for a Null MX Record.\n\n`CNAME`: The hostname. Must be unique. Required.\n\n`TXT`: The hostname.\n\n`SRV`: Unused. Use the `service` property to set the service name for this record.\n\n`CAA`: The subdomain. Omit or enter an empty string (`\"\"`) to apply to the entire Domain.\n\n`PTR`: See our guide on how to [Configure Your Linode for Reverse DNS\n(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.\n\nDefaults 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, either `issue`, `issuewild`, or `iodef`. See [CAA records](https://techdocs.akamai.com/cloud-computing/docs/caa-records) for details on these possible tag values. 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:\n\n`A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required.\n\n`NS`: The name server. Must be a valid domain. Required.\n\n`MX`: The mail server. Must be a valid domain unless creating a Null MX Record. Required.\n\n- Must have less than 254 total characters.\n- The left-most domain component may be an asterisk (`*`) to designate a wildcard domain.\n- 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.\n- 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.\n\n`CNAME`: The alias. Must be a valid domain. Required.\n\n`TXT`: The value. Required.\n\n`SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain.\nTo configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for\n`example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a\ntarget set to `sample.com`. Required.\n\n`CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef`\ntag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record:\n\n - `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`\n - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).\n - `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:`.\n\n`PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS\n(rDNS)](https://www.linode.com/docs/guides/configure-rdns/).\n\nWith 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" } }, - "minItems": 0, "type": "array" }, "page": { @@ -47990,135 +52868,256 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/iam-delegation-user-child-accounts.yaml" + "file-path": "schemas/added-get-domain-records-200.yaml" } } } }, - "description": "List of child accounts you are part of account delegation for." - }, - "default": { - "content": { - "application/json": { - "example": { - "errors": [ - { - "reason": "Invalid JSON" - } - ] - }, - "schema": { - "additionalProperties": false, - "properties": { - "errors": { - "items": { - "additionalProperties": false, - "description": "An object for describing a single error that occurred during the processing of a request.", - "properties": { - "field": { - "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", - "example": "fieldname", - "type": "string" - }, - "reason": { - "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", - "example": "fieldname must be a valid value", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/error-object.yaml" - } - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + "description": "A list of Domain Records." } }, "security": [ { "personalAccessToken": [] + }, + { + "oauth": [ + "domains:read_only" + ] } ], - "summary": "Get your account delegations", + "summary": "List domain records", "tags": [ - "Delegation for parent and child accounts" + "Domain records" ], - "x-linode-cli-skip": true, + "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" + } + ] + }, + "x-linode-cli-action": "records-list", + "x-linode-grant": "read_only", "x-linode-iam": [ { - "permissions": [ - "list_user_delegate_accounts" + "roles": [ + "domain_viewer" ] } ] }, "parameters": [ { - "description": "__Enum__ Call the `v4` URL.", + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", "example": "{{apiVersion}}", "in": "path", "name": "apiVersion", "required": true, "schema": { "enum": [ - "v4" + "v4", + "v4beta" ], "example": "v4", "type": "string" }, "x-akamai": { - "file-path": "parameters/api-version-v4-path.yaml" + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "The ID of the Domain we are accessing Records for.", + "example": "{{domainId}}", + "in": "path", + "name": "domainId", + "required": true, + "schema": { + "example": 12345, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/domain-id-path-eb9ccd41.yaml" } } ], "x-akamai": { - "file-path": "paths/iam-delegation-profile-child-accounts.yaml", - "path-info": "/{apiVersion}/iam/delegation/profile/child-accounts" - } + "file-path": "paths/domains-records.yaml", + "path-info": "/{apiVersion}/domains/{domainId}/records" + }, + "x-linode-cli-command": "domains" }, - "/{apiVersion}/iam/delegation/profile/child-accounts/{euuid}": { + "/{apiVersion}/domains/{domainId}/records/{recordId}": { "get": { - "description": "Returns details on a specific child account you are part of the account delegation team for. To learn more about the parent and child accounts feature and account delegations, see [Parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners).\n\n> \ud83d\udcd8 Parent and child accounts feature\n>\n> This operation is available only within the context of the parent and child accounts feature and can be run only on a parent account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `list_all_child_accounts`", + "description": "View a single record on this domain.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_viewer`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `domains:read_only`\n\n\n**CLI**\n\n```shell\nlinode-cli domains records-view 123 234\n```\n\n[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-delegation-profile-child-account" + "url": "https://techdocs.akamai.com/linode-api/reference/get-domain-record" }, - "operationId": "get-delegation-profile-child-account", + "operationId": "get-domain-record", "responses": { "200": { "content": { "application/json": { "example": { - "company": "Child account for Internet Company", - "euuid": "9971F100-C111-0000-9DDFC3AD1A537B00" + "created": "2018-01-01T00:01:01", + "id": 123456, + "name": "test", + "port": 80, + "priority": 50, + "protocol": null, + "service": null, + "tag": null, + "target": "192.0.2.0", + "ttl_sec": 604800, + "type": "A", + "updated": "2018-01-01T00:01:01", + "weight": 50 }, "schema": { "additionalProperties": false, + "description": "A single record on a Domain.", "properties": { - "company": { - "description": "The company name of the child account.", + "created": { + "description": "__Read-only__ When this Domain Record was created.", + "example": "2018-01-01T00:01:01", + "format": "date-time", + "readOnly": true, "type": "string" }, - "euuid": { - "description": "The unique identifier of the child account.", + "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:\n\n`A` and `AAAA`: The hostname or FQDN of the Record.\n\n`NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported.\n\n`MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com` Domain.\n\n- The left-most subdomain component may be an asterisk (`*`) to designate a wildcard subdomain.\n- 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.\n- Must be an empty string (`\"\"`) for a Null MX Record.\n\n`CNAME`: The hostname. Must be unique. Required.\n\n`TXT`: The hostname.\n\n`SRV`: Unused. Use the `service` property to set the service name for this record.\n\n`CAA`: The subdomain. Omit or enter an empty string (`\"\"`) to apply to the entire Domain.\n\n`PTR`: See our guide on how to [Configure Your Linode for Reverse DNS\n(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.\n\nDefaults 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, either `issue`, `issuewild`, or `iodef`. See [CAA records](https://techdocs.akamai.com/cloud-computing/docs/caa-records) for details on these possible tag values. 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:\n\n`A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required.\n\n`NS`: The name server. Must be a valid domain. Required.\n\n`MX`: The mail server. Must be a valid domain unless creating a Null MX Record. Required.\n\n- Must have less than 254 total characters.\n- The left-most domain component may be an asterisk (`*`) to designate a wildcard domain.\n- 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.\n- 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.\n\n`CNAME`: The alias. Must be a valid domain. Required.\n\n`TXT`: The value. Required.\n\n`SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain.\nTo configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for\n`example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a\ntarget set to `sample.com`. Required.\n\n`CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef`\ntag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record:\n\n - `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`\n - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).\n - `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:`.\n\n`PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS\n(rDNS)](https://www.linode.com/docs/guides/configure-rdns/).\n\nWith 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/iam-delegation-profile-child-accounts-details.yaml" + "file-path": "schemas/domain-record.yaml" } } } }, - "description": "Details of the child account." + "description": "A Domain Record object." }, "default": { "content": { @@ -48134,6 +53133,7 @@ "additionalProperties": false, "properties": { "errors": { + "description": "Any warnings associated with a response.", "items": { "additionalProperties": false, "description": "An object for describing a single error that occurred during the processing of a request.", @@ -48167,120 +53167,281 @@ "security": [ { "personalAccessToken": [] + }, + { + "oauth": [ + "domains:read_only" + ] } ], - "summary": "Get a child account", + "summary": "Get a domain record", "tags": [ - "Delegation for parent and child accounts" + "Domain records" ], - "x-linode-cli-skip": true, + "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" + } + ] + }, + "x-linode-cli-action": "records-view", + "x-linode-grant": "read_only", "x-linode-iam": [ { - "permissions": [ - "list_all_child_accounts" + "roles": [ + "domain_viewer" ] } ] }, - "parameters": [ - { - "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", - "example": "{{apiVersion}}", - "in": "path", - "name": "apiVersion", - "required": true, - "schema": { - "enum": [ - "v4", - "v4beta" - ], - "example": "v4", - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/api-version-path.yaml" - } - }, - { - "description": "A unique identifier for a child account. To get this value, run [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-iam-delegation-all-child-accounts).", - "example": "{{euuid}}", - "in": "path", - "name": "euuid", - "required": true, - "schema": { - "example": "9971F100-C111-0000-9DDFC3AD1A537B00", - "format": "uuid", - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/euuid.yaml" - } - } - ], - "x-akamai": { - "file-path": "paths/iam-delegation-profile-child-accounts-euuid.yaml", - "path-info": "/{apiVersion}/iam/delegation/profile/child-accounts/{euuid}" - }, - "x-linode-cli-command": "child-account" - }, - "/{apiVersion}/iam/delegation/profile/child-accounts/{euuid}/token": { - "post": { - "description": "Creates a short-lived bearer token for you as a delegate user to run API operations on a specific child account. The token inherits the permissions set by a child account admin for your delegate user. Your username as the delegate user follows the specific naming convention:\n\n -\n\nThese variables only use the first 15 and 16 characters of these values, respectively.\n\n> \ud83d\udcd8\n>\n> The API returns the raw token in the response. You can't get it again, so be sure to store it.\n\nExample workflow:\n\n1. [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-iam-delegation-all-child-accounts) and store the `euuid` for the applicable one.\n2. Run this operation and store the `token` that's created for the delegate user.\n3. Run operations on the child account using the stored `token` to authenticate API operations.\n\n**Prerequisite**:\n\nTo manage a child account, you need to be added by a parent account admin to the *account delegation* for the specific child account. An *account delegation* is a group of parent account users, either admin or non-admin, delegated to manage a specific child account. To learn more about the parent and child accounts feature and account delegations, see [Parent and child accounts](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners).\n\n> \ud83d\udcd8 Parent and child accounts feature\n>\n> This operation is available only within the context of the parent and child accounts feature and can be run only on a parent account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need permissions, based on the model you're using:\n\n- **Identity and access permissions**. Your user needs a role with these permissions. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Permissions: `No permission, the access is provided by adding a user to an account delegation`", + "put": { + "description": "Updates a single record on this domain.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs these roles assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n - Roles: `domain_admin`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n - Scopes: `domains:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli domains records-update 123 234 \\\n --name test \\\n --target 203.0.113.1 \\\n --priority 50 \\\n --weight 50 \\\n --port 80 \\\n --ttl_sec 604800\n```\n\n[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-iam-delegation-profile-child-account-token" + "url": "https://techdocs.akamai.com/linode-api/reference/put-domain-record" + }, + "operationId": "put-domain-record", + "requestBody": { + "content": { + "application/json": { + "example": { + "name": "test", + "port": 80, + "priority": 50, + "target": "192.0.2.0", + "ttl_sec": 604800, + "weight": 50 + }, + "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:\n\n`A` and `AAAA`: The hostname or FQDN of the Record.\n\n`NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported.\n\n`MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com` Domain.\n\n- The left-most subdomain component may be an asterisk (`*`) to designate a wildcard subdomain.\n- 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.\n- Must be an empty string (`\"\"`) for a Null MX Record.\n\n`CNAME`: The hostname. Must be unique. Required.\n\n`TXT`: The hostname.\n\n`SRV`: Unused. Use the `service` property to set the service name for this record.\n\n`CAA`: The subdomain. Omit or enter an empty string (`\"\"`) to apply to the entire Domain.\n\n`PTR`: See our guide on how to [Configure Your Linode for Reverse DNS\n(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.\n\nDefaults 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, either `issue`, `issuewild`, or `iodef`. See [CAA records](https://techdocs.akamai.com/cloud-computing/docs/caa-records) for details on these possible tag values. 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:\n\n`A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required.\n\n`NS`: The name server. Must be a valid domain. Required.\n\n`MX`: The mail server. Must be a valid domain unless creating a Null MX Record. Required.\n\n- Must have less than 254 total characters.\n- The left-most domain component may be an asterisk (`*`) to designate a wildcard domain.\n- 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.\n- 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.\n\n`CNAME`: The alias. Must be a valid domain. Required.\n\n`TXT`: The value. Required.\n\n`SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain.\nTo configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for\n`example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a\ntarget set to `sample.com`. Required.\n\n`CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef`\ntag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record:\n\n - `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`\n - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).\n - `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:`.\n\n`PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS\n(rDNS)](https://www.linode.com/docs/guides/configure-rdns/).\n\nWith 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" + } + } + } + }, + "required": true }, - "operationId": "post-iam-delegation-profile-child-account-token", "responses": { "200": { "content": { "application/json": { "example": { - "created": "2024-05-01T00:01:01", - "expiry": "2024-05-01T00:16:01", - "id": 918, - "label": "parent1_1234_2024-05-01T00:01:01", - "scopes": "*", - "token": "abcdefghijklmnop" + "created": "2018-01-01T00:01:01", + "id": 123456, + "name": "test", + "port": 80, + "priority": 50, + "protocol": null, + "service": null, + "tag": null, + "target": "192.0.2.0", + "ttl_sec": 604800, + "type": "A", + "updated": "2018-01-01T00:01:01", + "weight": 50 }, "schema": { "additionalProperties": false, - "description": "The token for a delegate user to manage a child account.", + "description": "A single record on a Domain.", "properties": { "created": { - "description": "__Filterable__, __Read-only__ The time this token was created.", - "example": "2024-05-01T00:01:01", + "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:\n\n`A` and `AAAA`: The hostname or FQDN of the Record.\n\n`NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported.\n\n`MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com` Domain.\n\n- The left-most subdomain component may be an asterisk (`*`) to designate a wildcard subdomain.\n- 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.\n- Must be an empty string (`\"\"`) for a Null MX Record.\n\n`CNAME`: The hostname. Must be unique. Required.\n\n`TXT`: The hostname.\n\n`SRV`: Unused. Use the `service` property to set the service name for this record.\n\n`CAA`: The subdomain. Omit or enter an empty string (`\"\"`) to apply to the entire Domain.\n\n`PTR`: See our guide on how to [Configure Your Linode for Reverse DNS\n(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": 4, + "x-linode-cli-display": 3, "x-linode-filterable": true }, - "expiry": { - "description": "__Read-only__ When this token expires, which is 15 minutes from the time of creation. You can't renew the delegate user token. 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", + "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.\n\nDefaults 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 }, - "id": { - "description": "__Read-only__ The unique identifier of the delegate user token.", - "example": 918, - "readOnly": true, + "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, either `issue`, `issuewild`, or `iodef`. See [CAA records](https://techdocs.akamai.com/cloud-computing/docs/caa-records) for details on these possible tag values. 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:\n\n`A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required.\n\n`NS`: The name server. Must be a valid domain. Required.\n\n`MX`: The mail server. Must be a valid domain unless creating a Null MX Record. Required.\n\n- Must have less than 254 total characters.\n- The left-most domain component may be an asterisk (`*`) to designate a wildcard domain.\n- 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.\n- 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.\n\n`CNAME`: The alias. Must be a valid domain. Required.\n\n`TXT`: The value. Required.\n\n`SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain.\nTo configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for\n`example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a\ntarget set to `sample.com`. Required.\n\n`CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef`\ntag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record:\n\n - `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`\n - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`).\n - `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:`.\n\n`PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS\n(rDNS)](https://www.linode.com/docs/guides/configure-rdns/).\n\nWith 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": 1 + "x-linode-cli-display": 5 }, - "label": { - "description": "__Filterable__ The name of the token. The API automatically sets this to `__