diff --git a/content/operate/rc/api/api-reference/openapi.json b/content/operate/rc/api/api-reference/openapi.json index c736c48df5..7b2c117f06 100644 --- a/content/operate/rc/api/api-reference/openapi.json +++ b/content/operate/rc/api/api-reference/openapi.json @@ -22,48 +22,49 @@ "security": [ { "x-api-key": [], - "x-api-secret-key": [] + "x-api-secret-key": [], + "X-Auth-Token": [] } ], "tags": [ { "name": "Account", - "description": "Current account and ownership information", + "description": "Current account details.", "x-order": "0" }, { "name": "Subscriptions - Pro", - "description": "All operations related to Pro subscriptions lifecycle", + "description": "All Pro subscription operations.", "x-order": "10" }, { "name": "Subscriptions - Pro - Connectivity", - "description": "All operations related to Pro subscriptions connectivity", + "description": "All Pro subscription connectivity operations.", "x-order": "11" }, { "name": "Databases - Pro", - "description": "All operations related to Pro databases lifecycle", + "description": "All Pro database operations.", "x-order": "20" }, { "name": "Subscriptions - Essentials", - "description": "All operations related to Essentials subscriptions lifecycle", + "description": "All Essentials subscription operations.", "x-order": "30" }, { "name": "Databases - Essentials", - "description": "All operations related to Essentials databases lifecycle", + "description": "All Essentials database operations.", "x-order": "40" }, { - "name": "Access Control List", - "description": "Data and operations related to access control list", + "name": "Role-based Access Control (RBAC)", + "description": "All operations for [Role-based Access Control](https://redis.io/docs/latest/operate/rc/security/access-control/data-access-control/role-based-access-control/) (RBAC).", "x-order": "50" }, { "name": "Cloud Accounts", - "description": "All operations related to cloud accounts (AWS only)", + "description": "All operations related to cloud accounts (AWS only).", "x-order": "60" }, { @@ -73,7 +74,7 @@ }, { "name": "Tasks", - "description": "Displays information on long running operations", + "description": "Tracks asynchronous background operations. See [API request lifecycle](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) for more information.", "x-order": "80" } ], @@ -83,14 +84,14 @@ "tags": [ "Users" ], - "summary": "Get user by id", - "description": "Information on user identified by user Id", + "summary": "Get a single user", + "description": "Gets details about a single account user.", "operationId": "getUserById", "parameters": [ { "name": "userId", "in": "path", - "description": "User Id", + "description": "User ID.", "required": true, "schema": { "type": "integer", @@ -139,14 +140,14 @@ "tags": [ "Users" ], - "summary": "Update user", - "description": "Update an existing user by Id", + "summary": "Update a user", + "description": "Updates an account user's name or role.", "operationId": "updateUser", "parameters": [ { "name": "userId", "in": "path", - "description": "User Id", + "description": "User ID.", "required": true, "schema": { "type": "integer", @@ -212,13 +213,13 @@ "Users" ], "summary": "Delete user", - "description": "Delete a user from current account", + "description": "Deletes a user from this account.", "operationId": "deleteUserById", "parameters": [ { "name": "userId", "in": "path", - "description": "User Id", + "description": "User ID.", "required": true, "schema": { "type": "integer", @@ -275,14 +276,14 @@ "tags": [ "Subscriptions - Pro" ], - "summary": "Get subscription by id", - "description": "Information on subscription identified by subscription Id", + "summary": "Get a single Pro subscription", + "description": "Gets information on the specified Pro subscription.", "operationId": "getSubscriptionById", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -331,14 +332,14 @@ "tags": [ "Subscriptions - Pro" ], - "summary": "Update subscription", - "description": "Update an existing subscription by Id", + "summary": "Update Pro subscription", + "description": "Updates the specified Pro subscription.", "operationId": "updateSubscription", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -350,7 +351,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriptionUpdateRequest" + "$ref": "#/components/schemas/BaseSubscriptionUpdateRequest" } } }, @@ -403,14 +404,14 @@ "tags": [ "Subscriptions - Pro" ], - "summary": "Delete subscription", - "description": "Delete a subscription identified by subscription Id (subscription must be empty, i.e. cannot contain databases)", + "summary": "Delete Pro subscription", + "description": "Delete the specified Pro subscription. All databases in the subscription must be deleted before deleting it.", "operationId": "deleteSubscriptionById", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -468,13 +469,13 @@ "Subscriptions - Pro - Connectivity" ], "summary": "Update a transit gateway attachment", - "description": "Update an AWS transit gateway attachment", + "description": "Updates the specified AWS transit gateway attachment.", "operationId": "updateTgwAttachmentCidrs", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -484,7 +485,7 @@ { "name": "TgwId", "in": "path", - "description": "Tgw Id", + "description": "AWS transit gateway ID.", "required": true, "schema": { "type": "integer", @@ -550,13 +551,13 @@ "Subscriptions - Pro - Connectivity" ], "summary": "Create a transit gateway attachment", - "description": "Create an AWS transit gateway attachment", + "description": "Creates an AWS transit gateway attachment.", "operationId": "createTgwAttachment", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -566,7 +567,7 @@ { "name": "TgwId", "in": "path", - "description": "Tgw Id", + "description": "AWS transit gateway ID.", "required": true, "schema": { "type": "integer", @@ -625,13 +626,13 @@ "Subscriptions - Pro - Connectivity" ], "summary": "Delete a transit gateway attachment", - "description": "Delete an AWS transit gateway attachment", + "description": "Deletes the specified AWS transit gateway attachment.", "operationId": "deleteTgwAttachment", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -641,7 +642,7 @@ { "name": "TgwId", "in": "path", - "description": "Tgw Id", + "description": "AWS transit gateway ID.", "required": true, "schema": { "type": "integer", @@ -699,13 +700,13 @@ "Subscriptions - Pro - Connectivity" ], "summary": "Reject a transit gateway resource share", - "description": "Reject an AWS transit gateway resource share", + "description": "Rejects the specified AWS transit gateway resource share.", "operationId": "rejectTgwResourceShare", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -715,7 +716,7 @@ { "name": "tgwInvitationId", "in": "path", - "description": "TgwInvitation Id", + "description": "AWS transit gateway invitation ID.", "required": true, "schema": { "type": "integer", @@ -773,13 +774,13 @@ "Subscriptions - Pro - Connectivity" ], "summary": "Accept a transit gateway resource share", - "description": "Accept an AWS transit gateway resource share", + "description": "Accepts the specified AWS transit gateway resource share.", "operationId": "acceptTgwResourceShare", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -789,7 +790,7 @@ { "name": "tgwInvitationId", "in": "path", - "description": "TgwInvitation Id", + "description": "AWS transit gateway invitation ID.", "required": true, "schema": { "type": "integer", @@ -847,13 +848,13 @@ "Subscriptions - Pro - Connectivity" ], "summary": "Update a specific region transit gateway attachment", - "description": "Update an active active specific region AWS transit gateway attachment", + "description": "(Active-Active subscriptions only) Updates the specified AWS transit gateway attachment for one region in an Active-Active subscription.", "operationId": "updateActiveActiveTgwAttachmentCidrs", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -863,7 +864,7 @@ { "name": "regionId", "in": "path", - "description": "Region id (required for active-active subscription)", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -874,7 +875,7 @@ { "name": "TgwId", "in": "path", - "description": "Tgw Id", + "description": "AWS transit gateway ID.", "required": true, "schema": { "type": "integer", @@ -939,14 +940,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Create a specific region transit gateway attachment", - "description": "Create an active active specific region AWS transit gateway attachment", + "summary": "Create a transit gateway attachment for a specific region", + "description": "(Active-Active subscriptions only) Creates an AWS transit gateway attachment for one region in an Active-Active subscription.", "operationId": "createActiveActiveTgwAttachment", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -956,7 +957,7 @@ { "name": "regionId", "in": "path", - "description": "Region id (required for active-active subscription)", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -967,7 +968,7 @@ { "name": "TgwId", "in": "path", - "description": "Tgw Id", + "description": "AWS transit gateway ID.", "required": true, "schema": { "type": "integer", @@ -1025,14 +1026,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Delete a specific region transit gateway attachment", - "description": "Delete an active active specific region AWS transit gateway attachment", + "summary": "Delete a transit gateway attachment for a specific region", + "description": "(Active-Active subscriptions only) Deletes the specified AWS transit gateway attachment for one region in an Active-Active subscription.", "operationId": "deleteActiveActiveTgwAttachment", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -1042,7 +1043,7 @@ { "name": "regionId", "in": "path", - "description": "Region id (required for active-active subscription)", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -1053,7 +1054,7 @@ { "name": "TgwId", "in": "path", - "description": "Tgw Id", + "description": "AWS transit gateway ID.", "required": true, "schema": { "type": "integer", @@ -1110,14 +1111,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Accept a specific region transit gateway resource share", - "description": "Accept an active active specific region AWS transit gateway resource share", + "summary": "Accept a transit gateway resource share for a specific region", + "description": "(Active-Active subscriptions only) Accepts the specified AWS transit gateway resource share for one region in an Active-Active subscription.", "operationId": "acceptActiveActiveTgwResourceShare", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -1127,7 +1128,7 @@ { "name": "regionId", "in": "path", - "description": "Region id (required for active-active subscription)", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -1138,7 +1139,7 @@ { "name": "tgwInvitationId", "in": "path", - "description": "TgwInvitation Id", + "description": "AWS transit gateway invitation ID.", "required": true, "schema": { "type": "integer", @@ -1195,14 +1196,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Update an existing active-active subscription Private Service Connect endpoint", - "description": "Update an existing Private Service Connect endpoint in an existing active-active subscription.", + "summary": "Update a Private Service Connect endpoint for a single region", + "description": "(Active-Active subscriptions only) Updates a Private Service Connect endpoint for a single region in an Active-Active subscription.", "operationId": "updateActiveActivePscServiceEndpoint", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -1212,7 +1213,7 @@ { "name": "pscServiceId", "in": "path", - "description": "Private service connect service Id", + "description": "Private Service Connect service ID.", "required": true, "schema": { "type": "integer", @@ -1222,7 +1223,7 @@ { "name": "regionId", "in": "path", - "description": "Region id (required for active-active subscription)", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -1232,7 +1233,7 @@ { "name": "endpointId", "in": "path", - "description": "Private service connect endpoint Id", + "description": "Private Service Connect endpoint ID.", "required": true, "schema": { "type": "integer", @@ -1297,14 +1298,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Delete an existing active-active subscription Private Service Connect endpoint", - "description": "Delete an existing Private Service Connect endpoint in an existing active-active subscription.", + "summary": "Delete a Private Service Connect endpoint for a single region", + "description": "(Active-Active subscriptions only) Deletes the specified Private Service Connect endpoint for a single region in an Active-Active subscription.", "operationId": "deleteActiveActivePscServiceEndpoint", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -1314,7 +1315,7 @@ { "name": "pscServiceId", "in": "path", - "description": "Private service connect service Id", + "description": "Private Service Connect service ID.", "required": true, "schema": { "type": "integer", @@ -1324,7 +1325,7 @@ { "name": "regionId", "in": "path", - "description": "Region id (required for active-active subscription)", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -1334,7 +1335,7 @@ { "name": "endpointId", "in": "path", - "description": "Private service connect endpoint Id", + "description": "Private Service Connect endpoint ID.", "required": true, "schema": { "type": "integer", @@ -1391,14 +1392,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Update an active-active subscription VPC peering", - "description": "Update an existing VPC peering in an existing active-active subscription.", + "summary": "Update Active-Active VPC peering", + "description": "(Active-Active subscriptions only) Updates VPC peering for Active-Active subscription.", "operationId": "updateActiveActiveVpcPeering", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -1408,7 +1409,7 @@ { "name": "peeringId", "in": "path", - "description": "VpcPeering Id", + "description": "VPC Peering ID.", "required": true, "schema": { "type": "integer", @@ -1479,14 +1480,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Delete an active-active subscription VPC peering", - "description": "Delete a VPC peering from an existing active-active subscription.", + "summary": "Delete Active-Active VPC peering", + "description": "(Active-Active subscriptions only) Deletes VPC peering for an Active-Active subscription.", "operationId": "deleteActiveActiveVpcPeering", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -1496,7 +1497,7 @@ { "name": "peeringId", "in": "path", - "description": "VpcPeering Id", + "description": "VPC Peering ID.", "required": true, "schema": { "type": "integer", @@ -1553,14 +1554,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Update an existing subscription Private Service Connect endpoint", - "description": "Update an existing Private Service Connect endpoint in an existing subscription.", + "summary": "Update a Private Service Connect endpoint", + "description": "Updates the specified Private Service Connect endpoint.", "operationId": "updatePscServiceEndpoint", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -1570,7 +1571,7 @@ { "name": "pscServiceId", "in": "path", - "description": "Private service connect service Id", + "description": "Private Service Connect service ID.", "required": true, "schema": { "type": "integer", @@ -1580,7 +1581,7 @@ { "name": "endpointId", "in": "path", - "description": "Private service connect endpoint Id", + "description": "Private Service Connect endpoint ID.", "required": true, "schema": { "type": "integer", @@ -1645,14 +1646,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Delete an existing subscription Private Service Connect endpoint", - "description": "Delete an existing Private Service Connect endpoint in an existing subscription.", + "summary": "Delete a Private Service Connect endpoint", + "description": "Deletes the specified Private Service Connect endpoint.", "operationId": "deletePscServiceEndpoint", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -1662,7 +1663,7 @@ { "name": "pscServiceId", "in": "path", - "description": "Private service connect service Id", + "description": "Private Service Connect service ID.", "required": true, "schema": { "type": "integer", @@ -1672,7 +1673,7 @@ { "name": "endpointId", "in": "path", - "description": "Private service connect endpoint Id", + "description": "Private Service Connect endpoint ID.", "required": true, "schema": { "type": "integer", @@ -1729,14 +1730,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Update subscription peering", - "description": "Update an existing VPC peering in an existing subscription.", + "summary": "Update VPC peering", + "description": "Updates VPC peering for the specified subscription.", "operationId": "updateVpcPeering", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -1746,7 +1747,7 @@ { "name": "peeringId", "in": "path", - "description": "VpcPeering Id", + "description": "VPC Peering ID.", "required": true, "schema": { "type": "integer", @@ -1817,14 +1818,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Delete subscription peering", - "description": "Deletes a VPC peering identified by an id", + "summary": "Delete VPC peering", + "description": "Deletes the specified VPC peering.", "operationId": "deleteVpcPeering", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -1834,7 +1835,7 @@ { "name": "peeringId", "in": "path", - "description": "VpcPeering Id", + "description": "VPC Peering ID.", "required": true, "schema": { "type": "integer", @@ -1891,14 +1892,14 @@ "tags": [ "Subscriptions - Pro" ], - "summary": "Get subscription maintenance windows", - "description": "Get maintenance windows for subscription", + "summary": "Get Pro subscription maintenance windows", + "description": "Gets maintenance windows for the specified Pro subscription.", "operationId": "getSubscriptionMaintenanceWindows", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -1947,14 +1948,14 @@ "tags": [ "Subscriptions - Pro" ], - "summary": "Update subscription maintenance windows", - "description": "Update maintenance windows for subscription", + "summary": "Update Pro subscription maintenance windows", + "description": "Updates maintenance windows for the specified Pro subscription.", "operationId": "updateSubscriptionMaintenanceWindows", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -2021,14 +2022,14 @@ "tags": [ "Databases - Pro" ], - "summary": "Get database by id", - "description": "Information on a specific database identified by subscription Id and database Id", + "summary": "Get a single Pro database", + "description": "Gets details and settings of a single database in a Pro subscription.", "operationId": "getSubscriptionDatabaseByID", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "minimum": 0, @@ -2039,7 +2040,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "minimum": 0, @@ -2089,14 +2090,14 @@ "tags": [ "Databases - Pro" ], - "summary": "Update database", - "description": "Update an existing database", + "summary": "Update Pro database", + "description": "Updates an existing Pro database.", "operationId": "updateDatabase", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -2106,7 +2107,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -2188,14 +2189,14 @@ "tags": [ "Databases - Pro" ], - "summary": "Delete database", - "description": "Delete a specific database identified by subscription Id and database Id", + "summary": "Delete Pro database", + "description": "Deletes a database from a Pro subscription.", "operationId": "deleteDatabaseById", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -2205,7 +2206,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -2263,13 +2264,13 @@ "Databases - Pro" ], "summary": "Get database tags", - "description": "Get database tags for a given resource", + "description": "Gets a list of all database tags.", "operationId": "getTags", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -2279,7 +2280,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -2328,14 +2329,14 @@ "tags": [ "Databases - Pro" ], - "summary": "Override database tags", - "description": "Override database tags for a given resource", + "summary": "Overwrite database tags", + "description": "Overwrites all tags on the database.", "operationId": "updateTags", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -2345,7 +2346,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -2410,14 +2411,14 @@ "tags": [ "Databases - Pro" ], - "summary": "Add database tags", - "description": "Add single database tag for a given resource", + "summary": "Add a database tag", + "description": "Adds a single database tag to a database.", "operationId": "createTag", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -2427,7 +2428,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -2497,14 +2498,14 @@ "tags": [ "Databases - Pro" ], - "summary": "Update database tag by key", - "description": "Update single database tag for a given resource by tag key", + "summary": "Update database tag value", + "description": "Updates the value of the specified database tag.", "operationId": "updateTag", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -2514,7 +2515,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -2524,7 +2525,7 @@ { "name": "tagKey", "in": "path", - "description": "Tag key", + "description": "Tag Key.", "required": true, "schema": { "type": "string" @@ -2588,14 +2589,14 @@ "tags": [ "Databases - Pro" ], - "summary": "Delete database tag by key", - "description": "Delete database tag for a given resource by tag key", + "summary": "Delete database tag", + "description": "Removes the specified tag from the database.", "operationId": "deleteTag", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -2605,7 +2606,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -2615,7 +2616,7 @@ { "name": "tagKey", "in": "path", - "description": "Tag key", + "description": "Tag Key.", "required": true, "schema": { "type": "string" @@ -2672,14 +2673,14 @@ "tags": [ "Databases - Pro" ], - "summary": "Update active-active regions", - "description": "Update active-active local database properties", + "summary": "Update Active-Active database", + "description": "(Active-Active databases only) Updates database properties for an Active-Active database.", "operationId": "updateCrdbLocalProperties", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -2689,7 +2690,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -2776,14 +2777,14 @@ "tags": [ "Databases - Pro" ], - "summary": "Flush database data", - "description": "Flush database data", + "summary": "Flush Pro database", + "description": "Deletes all data from the specified Pro database.", "operationId": "flushCrdb", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -2793,7 +2794,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -2860,14 +2861,14 @@ "tags": [ "Subscriptions - Pro" ], - "summary": "Get subscription CIDR", - "description": "Get CIDR whitelist", + "summary": "Get Pro subscription CIDR whitelist", + "description": "(Bring your own Cloud only) Gets a Pro subscription's CIDR whitelist. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", "operationId": "getCidrWhiteList", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -2916,14 +2917,14 @@ "tags": [ "Subscriptions - Pro" ], - "summary": "Update subscription CIDR", - "description": "Update subscription CIDR whitelist", + "summary": "Update Pro subscription CIDR whitelist", + "description": "(Bring your own Cloud only) Updates a Pro subscription's CIDR whitelist.", "operationId": "updateSubscriptionCidrWhiteList", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -2990,14 +2991,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Reject a specific region transit gateway resource share", - "description": "Reject an active active specific region AWS transit gateway resource share", + "summary": "Reject transit gateway resource share for a specific region", + "description": "(Active-Active subscriptions only) Rejects the specified AWS transit gateway resource share for one region in an Active-Active subscription.", "operationId": "rejectActiveActiveTgwResourceShare", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -3007,7 +3008,7 @@ { "name": "regionId", "in": "path", - "description": "Region id (required for active-active subscription)", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -3018,7 +3019,7 @@ { "name": "tgwInvitationId", "in": "path", - "description": "TgwInvitation Id", + "description": "AWS transit gateway invitation ID.", "required": true, "schema": { "type": "integer", @@ -3075,14 +3076,14 @@ "tags": [ "Subscriptions - Essentials" ], - "summary": "Get Essentials subscription by id", - "description": "Information on Essentials subscription identified by subscription Id", + "summary": "Get a single Essentials subscription", + "description": "Gets information on the specified Essentials subscription.", "operationId": "getSubscriptionById_1", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -3132,7 +3133,7 @@ "Subscriptions - Essentials" ], "summary": "Update Essentials subscription", - "description": "Update an Essentials subscription", + "description": "Updates the specified Essentials subscription.", "operationId": "updateSubscription_1", "parameters": [ { @@ -3203,13 +3204,13 @@ "Subscriptions - Essentials" ], "summary": "Delete Essentials subscription", - "description": "Delete a Essentials subscription identified by subscription Id (subscription must be empty, i.e. cannot contain databases)", + "description": "Deletes the specified Essentials subscription. All databases in the subscription must be deleted before deleting it.", "operationId": "deleteSubscriptionById_1", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -3266,14 +3267,14 @@ "tags": [ "Databases - Essentials" ], - "summary": "Get Essentials database by id", - "description": "Information on a specific database identified by Essentials subscription Id and database Id", + "summary": "Get a single Essentials database", + "description": "Gets details and settings of a single database in an Essentials subscription.", "operationId": "getSubscriptionDatabaseByID_1", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "minimum": 0, @@ -3284,7 +3285,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "minimum": 0, @@ -3335,13 +3336,13 @@ "Databases - Essentials" ], "summary": "Update Essentials database", - "description": "Update a specific database identified by an Essentials subscription Id and database Id", + "description": "Updates the specified Essentials database.", "operationId": "deleteFixedDatabaseByID", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -3351,7 +3352,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -3430,13 +3431,13 @@ "Databases - Essentials" ], "summary": "Delete Essentials database", - "description": "Delete a specific database identified by an Essentials subscription Id and database Id", + "description": "Deletes a database from an Essentials subscription.", "operationId": "deleteFixedDatabaseByID_1", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -3446,7 +3447,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -3504,13 +3505,13 @@ "Databases - Essentials" ], "summary": "Get database tags", - "description": "Get database tags for a given resource", + "description": "Gets a list of all database tags.", "operationId": "getTags_1", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -3520,7 +3521,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -3569,14 +3570,14 @@ "tags": [ "Databases - Essentials" ], - "summary": "Override database tags", - "description": "Override database tags for a given resource", + "summary": "Overwrite database tags", + "description": "Overwrites all tags on the database.", "operationId": "updateTags_1", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -3586,7 +3587,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -3651,14 +3652,14 @@ "tags": [ "Databases - Essentials" ], - "summary": "Add database tags", - "description": "Add single database tag for a given resource", + "summary": "Add a database tag", + "description": "Adds a single database tag to a database.", "operationId": "createTag_1", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -3668,7 +3669,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -3738,14 +3739,14 @@ "tags": [ "Databases - Essentials" ], - "summary": "Update database tag by key", - "description": "Update single database tag for a given resource by tag key", + "summary": "Update database tag value", + "description": "Updates the value of the specified database tag.", "operationId": "updateTag_1", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -3755,7 +3756,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -3765,7 +3766,7 @@ { "name": "tagKey", "in": "path", - "description": "Tag key", + "description": "Tag Key.", "required": true, "schema": { "type": "string" @@ -3829,14 +3830,14 @@ "tags": [ "Databases - Essentials" ], - "summary": "Delete database tag by key", - "description": "Delete database tag for a given resource by tag key", + "summary": "Delete database tag", + "description": "Removes the specified tag from the database.", "operationId": "deleteTag_1", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -3846,7 +3847,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -3856,7 +3857,7 @@ { "name": "tagKey", "in": "path", - "description": "Tag key", + "description": "Tag Key.", "required": true, "schema": { "type": "string" @@ -3913,8 +3914,8 @@ "tags": [ "Cloud Accounts" ], - "summary": "Get cloud account by id", - "description": "Information on a specific cloud account", + "summary": "Get a single cloud account", + "description": "Gets details on a single cloud account.", "operationId": "getCloudAccountById", "parameters": [ { @@ -3971,7 +3972,7 @@ "Cloud Accounts" ], "summary": "Update cloud account", - "description": "Update cloud account", + "description": "Updates cloud account details.", "operationId": "updateCloudAccount", "parameters": [ { @@ -4044,7 +4045,7 @@ "Cloud Accounts" ], "summary": "Delete cloud account", - "description": "Delete specified cloud account", + "description": "Deletes a cloud account.", "operationId": "deleteCloudAccount", "parameters": [ { @@ -4106,16 +4107,16 @@ "/acl/users/{aclUserId}": { "get": { "tags": [ - "Access Control List" + "Role-based Access Control (RBAC)" ], - "summary": "Get ACL user by id", - "description": "Information on an ACL user identified by ACL user Id", + "summary": "Get a single access control user", + "description": "Gets details and settings for single access control user.", "operationId": "getUserByID", "parameters": [ { "name": "aclUserId", "in": "path", - "description": "ACL user ID", + "description": "Access control user ID.", "required": true, "schema": { "minimum": 0, @@ -4163,16 +4164,16 @@ }, "put": { "tags": [ - "Access Control List" + "Role-based Access Control (RBAC)" ], - "summary": "Update ACL user", - "description": "Update a new ACL user", + "summary": "Update access control user", + "description": "Updates a access control user with a different role or database password.", "operationId": "updateUser_1", "parameters": [ { "name": "aclUserId", "in": "path", - "description": "ACL user ID", + "description": "Access control user ID.", "required": true, "schema": { "type": "integer", @@ -4235,16 +4236,16 @@ }, "delete": { "tags": [ - "Access Control List" + "Role-based Access Control (RBAC)" ], - "summary": "Delete ACL user", - "description": "Delete an ACL user", + "summary": "Delete access control user", + "description": "Deletes a access control user.", "operationId": "deleteUser", "parameters": [ { "name": "aclUserId", "in": "path", - "description": "ACL user ID", + "description": "Access control user ID.", "required": true, "schema": { "type": "integer", @@ -4299,16 +4300,16 @@ "/acl/roles/{aclRoleId}": { "put": { "tags": [ - "Access Control List" + "Role-based Access Control (RBAC)" ], - "summary": "Update ACL role", - "description": "Update an ACL role", + "summary": "Update database access role", + "description": "Updates a database access role with new assigned permissions or associated databases.", "operationId": "updateRole", "parameters": [ { "name": "aclRoleId", "in": "path", - "description": "ACL role ID", + "description": "Database access role ID.", "required": true, "schema": { "type": "integer", @@ -4371,16 +4372,16 @@ }, "delete": { "tags": [ - "Access Control List" + "Role-based Access Control (RBAC)" ], - "summary": "Delete ACL role", - "description": "Delete an ACL role", + "summary": "Delete database access role", + "description": "Deletes a database access role.", "operationId": "deleteAclRole", "parameters": [ { "name": "aclRoleId", "in": "path", - "description": "ACL role ID", + "description": "Database access role ID.", "required": true, "schema": { "type": "integer", @@ -4435,16 +4436,16 @@ "/acl/redisRules/{aclRedisRuleId}": { "put": { "tags": [ - "Access Control List" + "Role-based Access Control (RBAC)" ], - "summary": "Update ACL redis rule", - "description": "Update an ACL redis rule", + "summary": "Update Redis ACL rule", + "description": "Updates a Redis ACL rule.", "operationId": "updateRedisRule", "parameters": [ { "name": "aclRedisRuleId", "in": "path", - "description": "ACL redis rule ID", + "description": "Redis ACL rule ID.", "required": true, "schema": { "type": "integer", @@ -4507,16 +4508,16 @@ }, "delete": { "tags": [ - "Access Control List" + "Role-based Access Control (RBAC)" ], - "summary": "Delete ACL redis rule", - "description": "Delete an ACL redis rule", + "summary": "Delete Redis ACL rule", + "description": "Deletes a Redis ACL rule.", "operationId": "deleteRedisRule", "parameters": [ { "name": "aclRedisRuleId", "in": "path", - "description": "ACL redis rule ID", + "description": "Redis ACL rule ID.", "required": true, "schema": { "type": "integer", @@ -4573,8 +4574,8 @@ "tags": [ "Subscriptions - Pro" ], - "summary": "Get subscriptions", - "description": "Information on current account's subscriptions", + "summary": "Get Pro subscriptions", + "description": "Gets a list of all Pro subscriptions in the current account.", "operationId": "getAllSubscriptions", "responses": { "400": { @@ -4617,8 +4618,8 @@ "tags": [ "Subscriptions - Pro" ], - "summary": "Create subscription", - "description": "Create a new subscription", + "summary": "Create Pro subscription", + "description": "Creates a new Redis Cloud Pro subscription.", "operationId": "createSubscription", "requestBody": { "content": { @@ -4632,8 +4633,8 @@ "deploymentType": "single-region", "paymentMethod": "credit-card", "paymentMethodId": 12345, + "publicEndpointAccess": true, "memoryStorage": "ram", - "persistentStorageEncryption": true, "cloudProviders": [ { "provider": "AWS", @@ -4725,14 +4726,14 @@ "tags": [ "Subscriptions - Pro" ], - "summary": "Get active-active subscription regions", - "description": "Get all regions of an active-active subscription", + "summary": "Get regions in an Active-Active subscription", + "description": "(Active-Active subscriptions only) Gets a list of regions in the specified Active-Active subscription.", "operationId": "getRegionsFromActiveActiveSubscription", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -4781,14 +4782,14 @@ "tags": [ "Subscriptions - Pro" ], - "summary": "Create active-active subscription region", - "description": "Create a new region in an active-active subscription", + "summary": "Add region to Active-Active subscription", + "description": "Adds a new region to an Active-Active subscription.", "operationId": "addNewRegionToActiveActiveSubscription", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -4853,14 +4854,14 @@ "tags": [ "Subscriptions - Pro" ], - "summary": "Delete active-active subscription regions", - "description": "Delete one or more regions from an active-active subscription", + "summary": "Delete regions from an Active-Active subscription", + "description": "(Active-Active subscriptions only) Deletes one or more regions from the specified Active-Active subscription.", "operationId": "deleteRegionsFromActiveActiveSubscription", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -4927,14 +4928,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Get an active-active Subscription private service connect", - "description": "Get an active-active private service connect details", + "summary": "Get Private Service Connect for a single region", + "description": "(Active-Active subscriptions only) Gets Private Service Connect details for a single region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", "operationId": "getActiveActivePscService", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -4944,7 +4945,7 @@ { "name": "regionId", "in": "path", - "description": "Region id (required for active-active subscription)", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -4993,14 +4994,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Create an active-active subscription Private Service Connect", - "description": "Create a new Private Service Connect in an existing active-active subscription.", + "summary": "Set up a single region Private Service Connect", + "description": "(Active-Active subscriptions only) Sets up Google Cloud Private Service Connect for a single region in an existing Active-Active subscription hosted on Google Cloud.", "operationId": "createActiveActivePscService", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -5010,7 +5011,7 @@ { "name": "regionId", "in": "path", - "description": "Region id (required for active-active subscription)", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -5068,14 +5069,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Delete an active-active subscription Private Service Connect", - "description": "Delete a Private Service Connect in an existing active-active subscription.", + "summary": "Remove Private Service Connect for a single region", + "description": "(Active-Active subscriptions only) Deletes a Private Service Connect for a single region in an existing Active-Active subscription hosted on Google Cloud.", "operationId": "deleteActiveActivePscService", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -5085,7 +5086,7 @@ { "name": "regionId", "in": "path", - "description": "Region id (required for active-active subscription)", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -5142,14 +5143,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Get an active-active subscription private service connect endpoints", - "description": "Get an active-active private service connect endpoints details", + "summary": "Get Private Service Connect endpoints for a single region", + "description": "(Active-Active subscriptions only) Gets endpoint details for the specified Private Service Connect in a single region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", "operationId": "getActiveActivePscServiceEndpoints", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -5159,7 +5160,7 @@ { "name": "regionId", "in": "path", - "description": "Region id (required for active-active subscription)", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -5169,7 +5170,7 @@ { "name": "pscServiceId", "in": "path", - "description": "Private service connect service Id", + "description": "Private Service Connect service ID.", "required": true, "schema": { "type": "integer", @@ -5218,14 +5219,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Create an active-active subscription Private Service Connect endpoint", - "description": "Create a new Private Service Connect endpoint in an existing active-active subscription.", + "summary": "Create an Private Service Connect endpoint for a single region", + "description": "(Active-Active subscriptions only) Creates a new Private Service Connect endpoint for a single region in an Active-Active subscription.", "operationId": "createActiveActivePscServiceEndpoint", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -5235,7 +5236,7 @@ { "name": "pscServiceId", "in": "path", - "description": "Private service connect service Id", + "description": "Private Service Connect service ID.", "required": true, "schema": { "type": "integer", @@ -5245,7 +5246,7 @@ { "name": "regionId", "in": "path", - "description": "Region id (required for active-active subscription)", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -5310,24 +5311,35 @@ } } }, - "/subscriptions/{subscriptionId}/regions/peerings": { + "/subscriptions/{subscriptionId}/regions/{regionId}/private-link": { "get": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Get an active-active subscription VPC peering", - "description": "Get VPC peering details for an active-active subscription.", - "operationId": "getActiveActiveVpcPeerings", + "summary": "Get Private Link configuration for a specific region", + "description": "(Active-Active subscriptions only) Gets the Private Link configuration for a specific region. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActivePrivateLink", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", "format": "int32" } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 } ], "responses": { @@ -5337,8 +5349,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -5371,36 +5383,37 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Create an active-active subscription VPC peering", - "description": "Create a new VPC peering in an existing active-active subscription. For details, see [documentation](https://docs.redis.com/latest/rc/security/vpc-peering)", - "operationId": "createActiveActiveVpcPeering", + "summary": "Create a Private Link for a specific region", + "description": "(Active-Active subscriptions only) Creates a new Private Link for a specific region.", + "operationId": "createActiveActivePrivateLink", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", "format": "int32" } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateBaseRequest" - }, - "example": { - "provider": "string", - "region": "us-east-1", - "awsAccountId": "", - "vpcId": "", - "vpcCidrs": [ - "<10.10.10.0/24>", - "<10.10.20.0/24>" - ] + "$ref": "#/components/schemas/PrivateLinkActiveActiveCreateRequest" } } }, @@ -5413,8 +5426,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "204": { + "description": "No Content", "content": { "application/json": { "schema": { @@ -5451,26 +5464,35 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/subscriptions/{subscriptionId}/private-service-connect": { - "get": { + }, + "delete": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Get Subscription private service connect", - "description": "Get private service connect details", - "operationId": "getPscService", + "summary": "Delete Private Link for a specific region", + "description": "(Active-Active subscriptions only) Deletes the Private Link configuration for a specific region.", + "operationId": "deleteActiveActivePrivateLink", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", "format": "int32" } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 } ], "responses": { @@ -5480,8 +5502,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "204": { + "description": "No Content", "content": { "application/json": { "schema": { @@ -5499,6 +5521,12 @@ "404": { "description": "Not Found - The resource you were trying to reach was not found or does not exist" }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with new updated name)" + }, "429": { "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" }, @@ -5509,26 +5537,49 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, + } + }, + "/subscriptions/{subscriptionId}/regions/{regionId}/private-link/principals": { "post": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Create a subscription Private Service Connect", - "description": "Create a new Private Service Connect in an existing subscription.", - "operationId": "createPscService", + "summary": "Add principal to Private Link for a specific region", + "description": "(Active-Active subscriptions only) Adds a principal (AWS ARN) to the Private Link configuration for a specific region.", + "operationId": "createActiveActivePrivateLinkPrincipal", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", "format": "int32" } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkActiveActivePrincipalsCreateRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -5536,8 +5587,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "204": { + "description": "No Content", "content": { "application/json": { "schema": { @@ -5579,21 +5630,42 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Delete a subscription Private Service Connect", - "description": "Delete a Private Service Connect in an existing subscription.", - "operationId": "deletePscService", + "summary": "Remove a principal from Private Link for a specific region", + "description": "(Active-Active subscriptions only) Removes one principal (AWS ARNs) from the Private Link configuration for a specific region.", + "operationId": "deleteActiveActivePrivateLinkPrincipals", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", "format": "int32" } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkActiveActivePrincipalsDeleteRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -5601,8 +5673,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "204": { + "description": "No Content", "content": { "application/json": { "schema": { @@ -5638,29 +5710,19 @@ } } }, - "/subscriptions/{subscriptionId}/private-service-connect/{pscServiceId}": { + "/subscriptions/{subscriptionId}/regions/peerings": { "get": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Get Subscription private service connect endpoints", - "description": "Get private service connect endpoints details", - "operationId": "getPscServiceEndpoints", + "summary": "Get Active-Active VPC peering details", + "description": "(Active-Active subscriptions only) Gets VPC peering details for an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActiveVpcPeerings", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "pscServiceId", - "in": "path", - "description": "Private service connect service Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -5675,8 +5737,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -5709,24 +5771,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Create a subscription Private Service Connect endpoint", - "description": "Create a new Private Service Connect endpoint in an existing subscription.", - "operationId": "createPscServiceEndpoint", + "summary": "Create Active-Active VPC peering", + "description": "(Active-Active subscriptions only) Sets up VPC peering for an Active-Active subscription. Ensure your cloud provider is also set up for VPC Peering with Redis Cloud. See [VPC Peering](https://docs.redis.com/latest/rc/security/vpc-peering) to learn how to set up VPC Peering with AWS and Google Cloud.", + "operationId": "createActiveActiveVpcPeering", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "pscServiceId", - "in": "path", - "description": "Private service connect service Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -5738,7 +5790,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PscEndpointCreateRequest" + "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateBaseRequest" + }, + "example": { + "provider": "string", + "region": "us-east-1", + "awsAccountId": "", + "vpcId": "", + "vpcCidrs": [ + "<10.10.10.0/24>", + "<10.10.20.0/24>" + ] } } }, @@ -5751,8 +5813,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -5791,19 +5853,19 @@ } } }, - "/subscriptions/{subscriptionId}/peerings": { + "/subscriptions/{subscriptionId}/private-service-connect": { "get": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Get Subscription peering", - "description": "Get VPC peering details", - "operationId": "getVpcPeering", + "summary": "Get Private Service Connect", + "description": "Gets Private Service Connect details for a subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getPscService", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -5852,14 +5914,14 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Create subscription peering", - "description": "Create a new VPC peering in an existing subscription. VPC peering for Google Cloud Provider must be enabled using the GCloud command line. For details, see [documentation](https://docs.redis.com/latest/rc/security/vpc-peering)", - "operationId": "createVpcPeering", + "summary": "Set up Private Service Connect for a subscription", + "description": "Sets up Google Cloud Private Service Connect for an existing subscription hosted on Google Cloud.", + "operationId": "createPscService", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -5867,27 +5929,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VpcPeeringCreateBaseRequest" - }, - "example": { - "provider": "string", - "sourceRegion": "string", - "destinationRegion": "us-east-1", - "awsAccountId": "", - "vpcId": "", - "vpcCidrs": [ - "<10.10.10.0/24>", - "<10.10.20.0/24>" - ] - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -5933,49 +5974,24 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/subscriptions/{subscriptionId}/databases": { - "get": { + }, + "delete": { "tags": [ - "Databases - Pro" + "Subscriptions - Pro - Connectivity" ], - "summary": "Get databases", - "description": "Information on databases belonging to subscription identified by subscription Id", - "operationId": "getSubscriptionDatabases", + "summary": "Remove Private Service Connect for a subscription", + "description": "Deletes Private Service Connect for a subscription.", + "operationId": "deletePscService", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { - "minimum": 0, "type": "integer", "format": "int32" } - }, - { - "name": "offset", - "in": "query", - "description": "Number of items to skip", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 0 - }, - { - "name": "limit", - "in": "query", - "description": "Maximum number of items to return", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 100 } ], "responses": { @@ -5985,12 +6001,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountSubscriptionDatabases" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -6004,6 +6020,12 @@ "404": { "description": "Not Found - The resource you were trying to reach was not found or does not exist" }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with new updated name)" + }, "429": { "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" }, @@ -6014,19 +6036,31 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "post": { + } + }, + "/subscriptions/{subscriptionId}/private-service-connect/{pscServiceId}": { + "get": { "tags": [ - "Databases - Pro" + "Subscriptions - Pro - Connectivity" ], - "summary": "Create database", - "description": "Create a new database", - "operationId": "createDatabase", + "summary": "Get Private Service Connect endpoints", + "description": "Gets endpoint details for the specified Private Service Connect. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getPscServiceEndpoints", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pscServiceId", + "in": "path", + "description": "Private Service Connect service ID.", "required": true, "schema": { "type": "integer", @@ -6034,34 +6068,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseCreateRequest" - }, - "example": { - "dryRun": false, - "name": "Redis-database-example", - "port": 10000, - "datasetSizeInGb": 1, - "dataEvictionPolicy": "allkeys-lru", - "replication": true, - "throughputMeasurement": { - "by": "operations-per-second", - "value": 10000 - }, - "alerts": [ - { - "name": "dataset-size", - "value": 80 - } - ] - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -6083,20 +6089,11 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" }, "404": { "description": "Not Found - The resource you were trying to reach was not found or does not exist" }, - "408": { - "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" - }, - "409": { - "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with the new name" - }, - "422": { - "description": "Unprocessable Entity - The server understands the request, and the syntax of the request is correct, but it was unable to process the contained instructions" - }, "429": { "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" }, @@ -6107,21 +6104,19 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/subscriptions/{subscriptionId}/databases/{databaseId}/import": { - "get": { + }, + "post": { "tags": [ - "Databases - Pro" + "Subscriptions - Pro - Connectivity" ], - "summary": "Import database status", - "description": "Information on the latest database import status identified by subscription Id and database Id", - "operationId": "getDatabaseImportStatus", + "summary": "Create a Private Service Connect endpoint", + "description": "Creates a new Private Service Connect endpoint.", + "operationId": "createPscServiceEndpoint", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -6129,9 +6124,9 @@ } }, { - "name": "databaseId", + "name": "pscServiceId", "in": "path", - "description": "Database Id", + "description": "Private Service Connect service ID.", "required": true, "schema": { "type": "integer", @@ -6139,6 +6134,16 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PscEndpointCreateRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -6146,8 +6151,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -6160,11 +6165,20 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" }, "404": { "description": "Not Found - The resource you were trying to reach was not found or does not exist" }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with the new name" + }, + "422": { + "description": "Unprocessable Entity - The server understands the request, and the syntax of the request is correct, but it was unable to process the contained instructions" + }, "429": { "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" }, @@ -6175,29 +6189,21 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "post": { + } + }, + "/subscriptions/{subscriptionId}/private-link": { + "get": { "tags": [ - "Databases - Pro" + "Subscriptions - Pro - Connectivity" ], - "summary": "Import database", - "description": "Import data from an RDB file or a different Redis database", - "operationId": "importDatabase", + "summary": "Get Private Link configuration", + "description": "Gets the Private Link configuration for a subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getPrivateLink", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -6205,16 +6211,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseImportRequest" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -6222,8 +6218,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -6241,12 +6237,6 @@ "404": { "description": "Not Found - The resource you were trying to reach was not found or does not exist" }, - "408": { - "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" - }, - "409": { - "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with new updated name)" - }, "429": { "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" }, @@ -6257,47 +6247,36 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/subscriptions/{subscriptionId}/databases/{databaseId}/backup": { - "get": { + }, + "post": { "tags": [ - "Databases - Pro" + "Subscriptions - Pro - Connectivity" ], - "summary": "Backup database status", - "description": "Information on the latest database backup status identified by subscription Id and database Id", - "operationId": "getDatabaseBackupStatus", + "summary": "Create a Private Link", + "description": "Creates a new Private Link.", + "operationId": "createPrivateLink", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, - { - "name": "regionName", - "in": "query", - "description": "Region name (required for active-active subscription)", - "required": false, - "schema": { - "type": "string" - } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkCreateRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -6305,8 +6284,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "204": { + "description": "No Content", "content": { "application/json": { "schema": { @@ -6319,11 +6298,20 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" }, "404": { "description": "Not Found - The resource you were trying to reach was not found or does not exist" }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with the new name" + }, + "422": { + "description": "Unprocessable Entity - The server understands the request, and the syntax of the request is correct, but it was unable to process the contained instructions" + }, "429": { "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" }, @@ -6335,28 +6323,18 @@ } } }, - "post": { + "delete": { "tags": [ - "Databases - Pro" + "Subscriptions - Pro - Connectivity" ], - "summary": "Backup database", - "description": "Manually backup a database into the destination defined for it", - "operationId": "backupDatabase", + "summary": "Delete Private Link", + "description": "Deletes the Private Link configuration for a subscription.", + "operationId": "deletePrivateLink", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -6364,15 +6342,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseBackupRequest" - } - } - } - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -6380,8 +6349,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "204": { + "description": "No Content", "content": { "application/json": { "schema": { @@ -6417,14 +6386,36 @@ } } }, - "/fixed/subscriptions": { - "get": { + "/subscriptions/{subscriptionId}/private-link/principals": { + "post": { "tags": [ - "Subscriptions - Essentials" + "Subscriptions - Pro - Connectivity" ], - "summary": "Get Essentials subscriptions", - "description": "Information on current account's Essentials subscriptions", - "operationId": "getAllSubscriptions_1", + "summary": "Add principal to Private Link", + "description": "Adds a principal (AWS ARN) to the Private Link configuration.", + "operationId": "createPrivateLinkPrincipal", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkPrincipalsCreateRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -6432,12 +6423,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "204": { + "description": "No Content", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FixedSubscriptions" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -6446,11 +6437,20 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" }, "404": { "description": "Not Found - The resource you were trying to reach was not found or does not exist" }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with the new name" + }, + "422": { + "description": "Unprocessable Entity - The server understands the request, and the syntax of the request is correct, but it was unable to process the contained instructions" + }, "429": { "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" }, @@ -6462,18 +6462,30 @@ } } }, - "post": { + "delete": { "tags": [ - "Subscriptions - Essentials" + "Subscriptions - Pro - Connectivity" + ], + "summary": "Remove a principal from Private Link", + "description": "Removes a principal (AWS ARNs) from the Private Link configuration.", + "operationId": "deletePrivateLinkPrincipals", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } ], - "summary": "Create Essentials subscription", - "description": "Create a new Essentials subscription", - "operationId": "createSubscription_1", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FixedSubscriptionCreateRequest" + "$ref": "#/components/schemas/PrivateLinkPrincipalsDeleteRequest" } } }, @@ -6486,8 +6498,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "204": { + "description": "No Content", "content": { "application/json": { "schema": { @@ -6500,7 +6512,7 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" }, "404": { "description": "Not Found - The resource you were trying to reach was not found or does not exist" @@ -6509,10 +6521,7 @@ "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" }, "409": { - "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with the new name" - }, - "422": { - "description": "Unprocessable Entity - The server understands the request, and the syntax of the request is correct, but it was unable to process the contained instructions" + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with new updated name)" }, "429": { "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" @@ -6526,47 +6535,24 @@ } } }, - "/fixed/subscriptions/{subscriptionId}/databases": { + "/subscriptions/{subscriptionId}/peerings": { "get": { "tags": [ - "Databases - Essentials" + "Subscriptions - Pro - Connectivity" ], - "summary": "Get Essentials databases", - "description": "Information on databases belonging to an Essentials subscription identified by subscription Id", - "operationId": "getFixedSubscriptionDatabases", + "summary": "Get VPC peering details", + "description": "Gets VPC peering details for the specified subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getVpcPeering", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { - "minimum": 0, "type": "integer", "format": "int32" } - }, - { - "name": "offset", - "in": "query", - "description": "Number of items to skip", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 0 - }, - { - "name": "limit", - "in": "query", - "description": "Maximum number of items to return", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 100 } ], "responses": { @@ -6576,12 +6562,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountFixedSubscriptionDatabases" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -6608,16 +6594,16 @@ }, "post": { "tags": [ - "Databases - Essentials" + "Subscriptions - Pro - Connectivity" ], - "summary": "Create Essentials database", - "description": "Create a new Essentials database", - "operationId": "createFixedDatabase", + "summary": "Create VPC peering", + "description": "Sets up VPC peering for the specified subscription. Ensure your cloud provider is also set up for VPC Peering with Redis Cloud. See [VPC Peering](https://docs.redis.com/latest/rc/security/vpc-peering) to learn how to set up VPC Peering with AWS and Google Cloud.", + "operationId": "createVpcPeering", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -6629,19 +6615,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FixedDatabaseCreateRequest" + "$ref": "#/components/schemas/VpcPeeringCreateBaseRequest" }, "example": { - "name": "Redis-fixed-database-example", - "protocol": "stack", - "dataPersistence": "none", - "dataEvictionPolicy": "allkeys-lru", - "replication": true, - "alerts": [ - { - "name": "datasets-size", - "value": 80 - } + "provider": "string", + "sourceRegion": "string", + "destinationRegion": "us-east-1", + "awsAccountId": "", + "vpcId": "", + "vpcCidrs": [ + "<10.10.10.0/24>", + "<10.10.20.0/24>" ] } } @@ -6655,8 +6639,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -6695,34 +6679,47 @@ } } }, - "/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/import": { + "/subscriptions/{subscriptionId}/databases": { "get": { "tags": [ - "Databases - Essentials" + "Databases - Pro" ], - "summary": "Import Essentials database status", - "description": "Information on the latest database import status identified by Essentials subscription Id and Essentials database Id", - "operationId": "getDatabaseImportStatus_1", + "summary": "Get all databases in a Pro subscription", + "description": "Gets a list of all databases in the specified Pro subscription.", + "operationId": "getSubscriptionDatabases", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { + "minimum": 0, "type": "integer", "format": "int32" } }, { - "name": "databaseId", - "in": "path", - "description": "Database Id", - "required": true, + "name": "offset", + "in": "query", + "description": "Number of items to skip.", + "required": false, "schema": { "type": "integer", "format": "int32" - } + }, + "example": 0 + }, + { + "name": "limit", + "in": "query", + "description": "Maximum number of items to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 100 } ], "responses": { @@ -6737,7 +6734,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/AccountSubscriptionDatabases" } } } @@ -6764,26 +6761,16 @@ }, "post": { "tags": [ - "Databases - Essentials" + "Databases - Pro" ], - "summary": "Import Essentials database", - "description": "Import data from an RDB file or a different Redis database", - "operationId": "importDatabase_1", + "summary": "Create Pro database in existing subscription", + "description": "Creates a new database in an existing Pro subscription.", + "operationId": "createDatabase", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -6795,7 +6782,25 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FixedDatabaseImportRequest" + "$ref": "#/components/schemas/DatabaseCreateRequest" + }, + "example": { + "dryRun": false, + "name": "Redis-database-example", + "port": 10000, + "datasetSizeInGb": 1, + "dataEvictionPolicy": "allkeys-lru", + "replication": true, + "throughputMeasurement": { + "by": "operations-per-second", + "value": 10000 + }, + "alerts": [ + { + "name": "dataset-size", + "value": 80 + } + ] } } }, @@ -6808,8 +6813,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -6822,7 +6827,7 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" }, "404": { "description": "Not Found - The resource you were trying to reach was not found or does not exist" @@ -6831,7 +6836,10 @@ "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" }, "409": { - "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with new updated name)" + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with the new name" + }, + "422": { + "description": "Unprocessable Entity - The server understands the request, and the syntax of the request is correct, but it was unable to process the contained instructions" }, "429": { "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" @@ -6845,19 +6853,19 @@ } } }, - "/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/backup": { + "/subscriptions/{subscriptionId}/databases/{databaseId}/upgrade": { "get": { "tags": [ - "Databases - Essentials" + "Databases - Pro" ], - "summary": "Backup Essentials database status", - "description": "Information on the latest database backup status identified by Essentials subscription Id and Essentials database Id", - "operationId": "getDatabaseBackupStatus_1", + "summary": "Get Pro database version upgrade status", + "description": "Gets information on the latest upgrade attempt for this Pro database.", + "operationId": "getDatabaseRedisVersionUpgradeStatus", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -6867,7 +6875,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -6887,7 +6895,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/BdbVersionUpgradeStatus" } } } @@ -6914,16 +6922,16 @@ }, "post": { "tags": [ - "Databases - Essentials" + "Databases - Pro" ], - "summary": "Backup Essentials database", - "description": "Manually backup an Essentials database into the destination defined for it", - "operationId": "backupDatabase_1", + "summary": "Upgrade Pro database version", + "description": "Upgrade Pro database version", + "operationId": "upgradeDatabaseRedisVersion", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -6933,7 +6941,7 @@ { "name": "databaseId", "in": "path", - "description": "Database Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -6945,10 +6953,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FixedDatabaseBackupRequest" + "$ref": "#/components/schemas/DatabaseUpgradeRedisVersionRequest" } } - } + }, + "required": true }, "responses": { "400": { @@ -6994,14 +7003,36 @@ } } }, - "/cloud-accounts": { + "/subscriptions/{subscriptionId}/databases/{databaseId}/import": { "get": { "tags": [ - "Cloud Accounts" + "Databases - Pro" + ], + "summary": "Get Pro database import status", + "description": "Gets information on the latest import attempt for this Pro database.", + "operationId": "getDatabaseImportStatus", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } ], - "summary": "Get cloud accounts", - "description": "List all configured cloud accounts", - "operationId": "getCloudAccounts", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -7014,7 +7045,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudAccounts" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -7041,16 +7072,38 @@ }, "post": { "tags": [ - "Cloud Accounts" + "Databases - Pro" + ], + "summary": "Import data to a Pro database", + "description": "Imports data from an RDB file or from a different Redis database into this Pro database. WARNING: Importing data into a database removes all existing data from the database.", + "operationId": "importDatabase", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } ], - "summary": "Create cloud account", - "description": "Create cloud account", - "operationId": "createCloudAccount", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudAccountCreateRequest" + "$ref": "#/components/schemas/DatabaseImportRequest" } } }, @@ -7063,8 +7116,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -7077,7 +7130,7 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" }, "404": { "description": "Not Found - The resource you were trying to reach was not found or does not exist" @@ -7086,10 +7139,7 @@ "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" }, "409": { - "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with the new name" - }, - "422": { - "description": "Unprocessable Entity - The server understands the request, and the syntax of the request is correct, but it was unable to process the contained instructions" + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with new updated name)" }, "429": { "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" @@ -7103,14 +7153,45 @@ } } }, - "/acl/users": { + "/subscriptions/{subscriptionId}/databases/{databaseId}/backup": { "get": { "tags": [ - "Access Control List" + "Databases - Pro" + ], + "summary": "Get Pro database backup status", + "description": "Gets information on the latest backup attempt for this Pro database.", + "operationId": "getDatabaseBackupStatus", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionName", + "in": "query", + "description": "Region name - required for Active-Active subscription", + "required": false, + "schema": { + "type": "string" + } + } ], - "summary": "Get ACL users", - "description": "Information on current account's ACL users", - "operationId": "getAllUsers_1", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -7123,7 +7204,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountACLUsers" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -7150,30 +7231,51 @@ }, "post": { "tags": [ - "Access Control List" + "Databases - Pro" ], - "summary": "Create ACL user", - "description": "Create a new ACL user", - "operationId": "createUser", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AclUserCreateRequest" - } - } - }, - "required": true - }, - "responses": { - "400": { + "summary": "Back up Pro database", + "description": "Manually back up the specified Pro database to a backup path. By default, backups will be stored in the 'remoteBackup' location for this database.", + "operationId": "backupDatabase", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DatabaseBackupRequest" + } + } + } + }, + "responses": { + "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" }, "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -7186,7 +7288,7 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" }, "404": { "description": "Not Found - The resource you were trying to reach was not found or does not exist" @@ -7195,10 +7297,7 @@ "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" }, "409": { - "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with the new name" - }, - "422": { - "description": "Unprocessable Entity - The server understands the request, and the syntax of the request is correct, but it was unable to process the contained instructions" + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with new updated name)" }, "429": { "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" @@ -7212,14 +7311,14 @@ } } }, - "/acl/roles": { + "/fixed/subscriptions": { "get": { "tags": [ - "Access Control List" + "Subscriptions - Essentials" ], - "summary": "Get ACL roles", - "description": "Information on current account's ACL roles", - "operationId": "getRoles", + "summary": "Get Essentials subscriptions", + "description": "Gets a list of all Essentials subscriptions in the current account.", + "operationId": "getAllSubscriptions_1", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -7232,7 +7331,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountACLRoles" + "$ref": "#/components/schemas/FixedSubscriptions" } } } @@ -7259,16 +7358,16 @@ }, "post": { "tags": [ - "Access Control List" + "Subscriptions - Essentials" ], - "summary": "Create ACL role", - "description": "Create a new ACL role", - "operationId": "createRole", + "summary": "Create Essentials subscription", + "description": "Creates a new Essentials subscription.", + "operationId": "createSubscription_1", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AclRoleCreateRequest" + "$ref": "#/components/schemas/FixedSubscriptionCreateRequest" } } }, @@ -7321,14 +7420,49 @@ } } }, - "/acl/redisRules": { + "/fixed/subscriptions/{subscriptionId}/databases": { "get": { "tags": [ - "Access Control List" + "Databases - Essentials" + ], + "summary": "Get all databases in an Essentials subscription", + "description": "Gets a list of all databases in the specified Essentials subscription.", + "operationId": "getFixedSubscriptionDatabases", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "minimum": 0, + "type": "integer", + "format": "int32" + } + }, + { + "name": "offset", + "in": "query", + "description": "Number of items to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 0 + }, + { + "name": "limit", + "in": "query", + "description": "Maximum number of items to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 100 + } ], - "summary": "Get ACL redis rules", - "description": "Information on current account's ACL users", - "operationId": "getAllRedisRules", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -7341,7 +7475,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountACLRedisRules" + "$ref": "#/components/schemas/AccountFixedSubscriptionDatabases" } } } @@ -7368,16 +7502,41 @@ }, "post": { "tags": [ - "Access Control List" + "Databases - Essentials" + ], + "summary": "Create Essentials database", + "description": "Creates a new database in the specified Essentials subscription.", + "operationId": "createFixedDatabase", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } ], - "summary": "Create ACL redis rule", - "description": "Create a new ACL redis rule", - "operationId": "createRedisRule", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AclRedisRuleCreateRequest" + "$ref": "#/components/schemas/FixedDatabaseCreateRequest" + }, + "example": { + "name": "Redis-fixed-database-example", + "protocol": "stack", + "dataPersistence": "none", + "dataEvictionPolicy": "allkeys-lru", + "replication": true, + "alerts": [ + { + "name": "datasets-size", + "value": 80 + } + ] } } }, @@ -7390,8 +7549,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -7424,20 +7583,1503 @@ "500": { "description": "Internal system error - If this error persists, please contact customer support" }, - "503": { - "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/upgrade": { + "get": { + "tags": [ + "Databases - Essentials" + ], + "summary": "Get Essentials database version upgrade status", + "description": "Gets information on the latest upgrade attempt for this Essentials database.", + "operationId": "getEssentialsDatabaseRedisVersionUpgradeStatus", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BdbVersionUpgradeStatus" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + }, + "post": { + "tags": [ + "Databases - Essentials" + ], + "summary": "Upgrade Essentials database version", + "description": "Upgrades the specified Essentials database to a later Redis version.", + "operationId": "upgradeEssentialsDatabaseRedisVersion", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FixedDatabaseUpgradeRedisVersionRequest" + } + } + }, + "required": true + }, + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with new updated name)" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/import": { + "get": { + "tags": [ + "Databases - Essentials" + ], + "summary": "Get Essentials database import status", + "description": "Gets information on the latest import attempt for this Essentials database.", + "operationId": "getDatabaseImportStatus_1", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + }, + "post": { + "tags": [ + "Databases - Essentials" + ], + "summary": "Import data to an Essentials database", + "description": "Imports data from an RDB file or from a different Redis database into this Essentials database. WARNING: Importing data into a database removes all existing data from the database.", + "operationId": "importDatabase_1", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FixedDatabaseImportRequest" + } + } + }, + "required": true + }, + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with new updated name)" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/backup": { + "get": { + "tags": [ + "Databases - Essentials" + ], + "summary": "Backup Essentials database status", + "description": "Information on the latest database backup status identified by Essentials subscription Id and Essentials database Id", + "operationId": "getDatabaseBackupStatus_1", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + }, + "post": { + "tags": [ + "Databases - Essentials" + ], + "summary": "Back up Essentials database", + "description": "Manually back up the specified Essentials database to a backup path. By default, backups will be stored in the 'periodicBackupPath' location for this database.", + "operationId": "backupDatabase_1", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FixedDatabaseBackupRequest" + } + } + } + }, + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with new updated name)" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/cost-report": { + "post": { + "tags": [ + "Account" + ], + "summary": "Generate cost report (Beta)", + "description": "Generates a cost report in FOCUS format for the specified time period (max 40 days range) and filters. [Read more about focus here](https://focus.finops.org/).\n", + "operationId": "createCostReport", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CostReportCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with the new name" + }, + "422": { + "description": "Unprocessable Entity - The server understands the request, and the syntax of the request is correct, but it was unable to process the contained instructions" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/cloud-accounts": { + "get": { + "tags": [ + "Cloud Accounts" + ], + "summary": "Get cloud accounts", + "description": "Gets a list of all configured cloud accounts.", + "operationId": "getCloudAccounts", + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudAccounts" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + }, + "post": { + "tags": [ + "Cloud Accounts" + ], + "summary": "Create cloud account", + "description": "Creates a cloud account.", + "operationId": "createCloudAccount", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudAccountCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with the new name" + }, + "422": { + "description": "Unprocessable Entity - The server understands the request, and the syntax of the request is correct, but it was unable to process the contained instructions" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/acl/users": { + "get": { + "tags": [ + "Role-based Access Control (RBAC)" + ], + "summary": "Get access control users", + "description": "Gets a list of all access control users for this account.", + "operationId": "getAllUsers_1", + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccountACLUsers" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + }, + "post": { + "tags": [ + "Role-based Access Control (RBAC)" + ], + "summary": "Create access control user", + "description": "Creates a new access control user with the assigned database access role.", + "operationId": "createUser", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AclUserCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with the new name" + }, + "422": { + "description": "Unprocessable Entity - The server understands the request, and the syntax of the request is correct, but it was unable to process the contained instructions" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/acl/roles": { + "get": { + "tags": [ + "Role-based Access Control (RBAC)" + ], + "summary": "Get database access roles", + "description": "Gets a list of all database access roles for this account.", + "operationId": "getRoles", + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccountACLRoles" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + }, + "post": { + "tags": [ + "Role-based Access Control (RBAC)" + ], + "summary": "Create database access role", + "description": "Creates a new database access role with the assigned permissions and associates it with the provided databases.", + "operationId": "createRole", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AclRoleCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with the new name" + }, + "422": { + "description": "Unprocessable Entity - The server understands the request, and the syntax of the request is correct, but it was unable to process the contained instructions" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/acl/redisRules": { + "get": { + "tags": [ + "Role-based Access Control (RBAC)" + ], + "summary": "Get Redis ACL rules", + "description": "Gets a list of all Redis ACL rules for this account.", + "operationId": "getAllRedisRules", + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccountACLRedisRules" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + }, + "post": { + "tags": [ + "Role-based Access Control (RBAC)" + ], + "summary": "Create Redis ACL rule", + "description": "Creates a new Redis ACL rule.", + "operationId": "createRedisRule", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AclRedisRuleCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with the new name" + }, + "422": { + "description": "Unprocessable Entity - The server understands the request, and the syntax of the request is correct, but it was unable to process the contained instructions" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/users": { + "get": { + "tags": [ + "Users" + ], + "summary": "Get users", + "description": "Gets a list of all account users.", + "operationId": "getAllUsers", + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccountUsers" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/tasks": { + "get": { + "tags": [ + "Tasks" + ], + "summary": "Get tasks", + "description": "Gets a list of all currently running tasks for this account.", + "operationId": "getAllTasks", + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/TasksStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/tasks/{taskId}": { + "get": { + "tags": [ + "Tasks" + ], + "summary": "Get a single task", + "description": "Gets details and status of a single task by the Task ID.", + "operationId": "getTaskById", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task ID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/subscriptions/{subscriptionId}/transitGateways": { + "get": { + "tags": [ + "Subscriptions - Pro - Connectivity" + ], + "summary": "Get transit gateways for a subscription", + "description": "Gets all AWS transit gateway details for the specified subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getTgws", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/subscriptions/{subscriptionId}/transitGateways/invitations": { + "get": { + "tags": [ + "Subscriptions - Pro - Connectivity" + ], + "summary": "Get transit gateway invitations for a subscription", + "description": "Gets all AWS transit gateway invitations for the specified subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getTgwSharedInvitations", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/subscriptions/{subscriptionId}/regions/{regionId}/transitGateways": { + "get": { + "tags": [ + "Subscriptions - Pro - Connectivity" + ], + "summary": "Get transit gateways for a single region", + "description": "(Active-Active subscriptions only) Gets all AWS transit gateway details for the specified region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActiveTgws", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 + } + ], + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/subscriptions/{subscriptionId}/regions/{regionId}/transitGateways/invitations": { + "get": { + "tags": [ + "Subscriptions - Pro - Connectivity" + ], + "summary": "Get transit gateway invitations for a single region", + "description": "(Active-Active subscriptions only) Gets AWS transit gateway invitations for the specified region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActiveTgwSharedInvitations", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 + } + ], + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/subscriptions/{subscriptionId}/regions/{regionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/deletionScripts": { + "get": { + "tags": [ + "Subscriptions - Pro - Connectivity" + ], + "summary": "Get Private Service Connect endpoint deletion script for a single region", + "description": "(Active-Active subscriptions only) Gets the gcloud script to delete the specified Private Service Connect endpoint on Google Cloud. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActivPscServiceEndpointDeletionScript", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pscServiceId", + "in": "path", + "description": "Private Service Connect service ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endpointId", + "in": "path", + "description": "Private Service Connect endpoint ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/subscriptions/{subscriptionId}/regions/{regionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/creationScripts": { + "get": { + "tags": [ + "Subscriptions - Pro - Connectivity" + ], + "summary": "Get Private Service Connect endpoint creation script for a single region", + "description": "(Active-Active subscriptions only) Gets the gcloud script to create the specified Private Service Connect endpoint on Google Cloud. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActivPscServiceEndpointCreationScript", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pscServiceId", + "in": "path", + "description": "Private Service Connect service ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endpointId", + "in": "path", + "description": "Private Service Connect endpoint ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } - } - } - }, - "/users": { - "get": { - "tags": [ - "Users" ], - "summary": "Get users", - "description": "Information on current account's users", - "operationId": "getAllUsers", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -7445,12 +9087,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountUsers" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -7476,14 +9118,36 @@ } } }, - "/tasks": { + "/subscriptions/{subscriptionId}/regions/{regionId}/private-link/endpoint-script": { "get": { "tags": [ - "Tasks" + "Subscriptions - Pro - Connectivity" + ], + "summary": "Get Private Link endpoint script for a single region", + "description": "(Active-Active subscriptions only) Gets the Private Link endpoint script for a single region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActivePrivateLinkEndpointScript", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } ], - "summary": "Get tasks", - "description": "Currently active long running operations", - "operationId": "getAllTasks", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -7491,12 +9155,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/TasksStateUpdate" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -7522,22 +9186,43 @@ } } }, - "/tasks/{taskId}": { + "/subscriptions/{subscriptionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/deletionScripts": { "get": { "tags": [ - "Tasks" + "Subscriptions - Pro - Connectivity" ], - "summary": "Get task by id", - "description": "Get specific long running operation, identified by Task Id", - "operationId": "getTaskById", + "summary": "Get Private Service Connect endpoint deletion script", + "description": "Gets the gcloud script to delete the specified Private Service Connect endpoint on Google Cloud. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getPscServiceEndpointDeletionScript", "parameters": [ { - "name": "taskId", + "name": "subscriptionId", "in": "path", - "description": "Task Id", + "description": "Subscription ID.", "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" + } + }, + { + "name": "pscServiceId", + "in": "path", + "description": "Private Service Connect service ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endpointId", + "in": "path", + "description": "Private Service Connect endpoint ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } } ], @@ -7548,8 +9233,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -7579,19 +9264,39 @@ } } }, - "/subscriptions/{subscriptionId}/transitGateways": { + "/subscriptions/{subscriptionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/creationScripts": { "get": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Get Subscription tgws", - "description": "Get tgws details", - "operationId": "getTgws", + "summary": "Get Private Service Connect endpoint creation script", + "description": "Gets the gcloud script to create the specified Private Service Connect endpoint on Google Cloud. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getPscServiceEndpointCreationScript", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pscServiceId", + "in": "path", + "description": "Private Service Connect service ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endpointId", + "in": "path", + "description": "Private Service Connect endpoint ID.", "required": true, "schema": { "type": "integer", @@ -7606,8 +9311,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -7637,19 +9342,19 @@ } } }, - "/subscriptions/{subscriptionId}/transitGateways/invitations": { + "/subscriptions/{subscriptionId}/private-link/endpoint-script": { "get": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Get Subscription tgw invitations", - "description": "Get tgw invitations details", - "operationId": "getTgwSharedInvitations", + "summary": "Get Private Link endpoint script", + "description": "Gets the Python discovery script for Private Link. Internal users can optionally request a Terraform snippet. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getPrivateLinkEndpointScript", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -7664,8 +9369,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -7695,35 +9400,24 @@ } } }, - "/subscriptions/{subscriptionId}/regions/{regionId}/transitGateways": { + "/subscriptions/{subscriptionId}/pricing": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Subscriptions - Pro" ], - "summary": "Get Active Active Subscription tgws", - "description": "Get Active Active tgws details", - "operationId": "getActiveActiveTgws", + "summary": "Get Pro subscription pricing", + "description": "Gets pricing details for the specified Pro subscription.", + "operationId": "getSubscriptionPricing", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, - { - "name": "regionId", - "in": "path", - "description": "Region id (required for active-active subscription)", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 1 } ], "responses": { @@ -7738,7 +9432,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/SubscriptionPricings" } } } @@ -7764,19 +9458,19 @@ } } }, - "/subscriptions/{subscriptionId}/regions/{regionId}/transitGateways/invitations": { + "/subscriptions/{subscriptionId}/databases/{databaseId}/slow-log": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Get Active Active Subscription tgw invitations", - "description": "Get Active Active tgw invitations details", - "operationId": "getActiveActiveTgwSharedInvitations", + "summary": "Get database slowlog", + "description": "Gets the slowlog for a specific database.", + "operationId": "getSlowLog", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -7784,15 +9478,23 @@ } }, { - "name": "regionId", + "name": "databaseId", "in": "path", - "description": "Region id (required for active-active subscription)", + "description": "Database ID.", "required": true, "schema": { "type": "integer", "format": "int32" - }, - "example": 1 + } + }, + { + "name": "regionName", + "in": "query", + "description": "Region name - required for Active-Active subscription", + "required": false, + "schema": { + "type": "string" + } } ], "responses": { @@ -7807,7 +9509,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/DatabaseSlowLogEntries" } } } @@ -7833,51 +9535,33 @@ } } }, - "/subscriptions/{subscriptionId}/regions/{regionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/deletionScripts": { + "/subscriptions/{subscriptionId}/databases/{databaseId}/certificate": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Get an active-active subscription private service connect endpoint deletion script ", - "description": "Get an active-active subscription private service connect endpoint deletion script details for the deletion of a gcp user's endpoint.", - "operationId": "getActiveActivPscServiceEndpointDeletionScript", + "summary": "Get Pro database TLS certificate", + "description": "Gets the X.509 PEM (base64) encoded server certificate for TLS connection to the database. Requires 'enableTLS' to be 'true' for the database.", + "operationId": "getSubscriptionDatabaseCertificate", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "regionId", - "in": "path", - "description": "Region id (required for active-active subscription)", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "pscServiceId", - "in": "path", - "description": "Private service connect service Id", + "description": "Subscription ID.", "required": true, "schema": { + "minimum": 0, "type": "integer", "format": "int32" } }, { - "name": "endpointId", + "name": "databaseId", "in": "path", - "description": "Private service connect endpoint Id", + "description": "Database ID.", "required": true, "schema": { + "minimum": 0, "type": "integer", "format": "int32" } @@ -7890,12 +9574,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/DatabaseCertificate" } } } @@ -7921,39 +9605,19 @@ } } }, - "/subscriptions/{subscriptionId}/regions/{regionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/creationScripts": { + "/subscriptions/{subscriptionId}/databases/{databaseId}/available-target-versions": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Get an active-active subscription private service connect endpoint creation script ", - "description": "Get an active-active subscription private service connect endpoint creation script details for the creation of a gcp user's endpoint.", - "operationId": "getActiveActivPscServiceEndpointCreationScript", + "summary": "Get available upgrade versions for Pro database", + "description": "Gets a list of available Redis versions that the specified Pro database can be upgraded to.", + "operationId": "getDatabaseAvailableVersions", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "regionId", - "in": "path", - "description": "Region id (required for active-active subscription)", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "pscServiceId", - "in": "path", - "description": "Private service connect service Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -7961,9 +9625,9 @@ } }, { - "name": "endpointId", + "name": "databaseId", "in": "path", - "description": "Private service connect endpoint Id", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -7978,12 +9642,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/BdbAvailableVersionsResponse" } } } @@ -8000,49 +9664,29 @@ "429": { "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" }, - "500": { - "description": "Internal system error - If this error persists, please contact customer support" - }, - "503": { - "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " - } - } - } - }, - "/subscriptions/{subscriptionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/deletionScripts": { - "get": { - "tags": [ - "Subscriptions - Pro - Connectivity" - ], - "summary": "Get Subscription private service connect endpoint deletion script ", - "description": "Get Subscription private service connect endpoint deletion script details for the deletion of a gcp user's endpoint.", - "operationId": "getPscServiceEndpointDeletionScript", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription Id", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "pscServiceId", - "in": "path", - "description": "Private service connect service Id", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "500": { + "description": "Internal system error - If this error persists, please contact customer support" }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/subscriptions/redis-versions": { + "get": { + "tags": [ + "Subscriptions - Pro" + ], + "summary": "Get available Redis database versions", + "description": "Gets a list of all available Redis database versions for Pro subscriptions.", + "operationId": "getRedisVersions", + "parameters": [ { - "name": "endpointId", - "in": "path", - "description": "Private service connect endpoint Id", - "required": true, + "name": "subscriptionId", + "in": "query", + "description": "Subscription ID (required for an existing subscription)", + "required": false, "schema": { "type": "integer", "format": "int32" @@ -8056,12 +9700,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/RedisVersions" } } } @@ -8087,44 +9731,58 @@ } } }, - "/subscriptions/{subscriptionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/creationScripts": { + "/session-logs": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Account" ], - "summary": "Get Subscription private service connect endpoint creation script ", - "description": "Get Subscription private service connect endpoint creation script details for the creation of a gcp user's endpoint.", - "operationId": "getPscServiceEndpointCreationScript", + "summary": "Get session logs", + "description": "Gets session logs for this account.", + "operationId": "getAccountSessionLogs", "parameters": [ { - "name": "subscriptionId", - "in": "path", - "description": "Subscription Id", - "required": true, + "name": "offset", + "in": "query", + "description": "Number of items to skip.", + "required": false, "schema": { "type": "integer", "format": "int32" - } + }, + "example": 0 }, { - "name": "pscServiceId", - "in": "path", - "description": "Private service connect service Id", - "required": true, + "name": "limit", + "in": "query", + "description": "Maximum number of logs to return. Limit: 100", + "required": false, "schema": { + "maximum": 100, + "minimum": 1, "type": "integer", "format": "int32" - } + }, + "example": 100 }, { - "name": "endpointId", - "in": "path", - "description": "Private service connect endpoint Id", - "required": true, + "name": "startTime", + "in": "query", + "description": "Filter session logs with time >= startTime (UTC)", + "required": false, "schema": { - "type": "integer", - "format": "int32" - } + "type": "string" + }, + "example": "2025-01-01T00:00:00Z" + }, + { + "name": "endTime", + "in": "query", + "description": "Filter session logs with time <= endTime (UTC)", + "required": false, + "schema": { + "type": "string" + }, + "example": "2025-01-31T23:59:59Z" } ], "responses": { @@ -8134,12 +9792,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/AccountSessionLogEntries" } } } @@ -8165,23 +9823,26 @@ } } }, - "/subscriptions/{subscriptionId}/pricing": { + "/regions": { "get": { "tags": [ - "Subscriptions - Pro" + "Account" ], - "summary": "Get subscription pricing", - "description": "Get subscription pricing by by subscription Id", - "operationId": "getSubscriptionPricing", + "summary": "Get available Pro plan regions", + "description": "Gets a list of available regions for Pro subscriptions. For Essentials subscriptions, use [GET /fixed/plans](#tag/Subscriptions-Essentials/operation/getAllFixedSubscriptionsPlans).", + "operationId": "getSupportedRegions", "parameters": [ { - "name": "subscriptionId", - "in": "path", - "description": "Subscription Id", - "required": true, + "name": "provider", + "in": "query", + "description": "Filters results to the specified cloud provider.", + "required": false, "schema": { - "type": "integer", - "format": "int32" + "type": "string", + "enum": [ + "AWS", + "GCP" + ] } } ], @@ -8197,7 +9858,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriptionPricings" + "$ref": "#/components/schemas/Regions" } } } @@ -8223,38 +9884,14 @@ } } }, - "/subscriptions/{subscriptionId}/databases/{databaseId}/certificate": { + "/query-performance-factors": { "get": { "tags": [ - "Databases - Pro" - ], - "summary": "Get database certificate", - "description": "X.509 PEM (base64) encoded certificate for TLS connection to the database", - "operationId": "getSubscriptionDatabaseCertificate", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription Id", - "required": true, - "schema": { - "minimum": 0, - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database Id", - "required": true, - "schema": { - "minimum": 0, - "type": "integer", - "format": "int32" - } - } + "Account" ], + "summary": "Get query performance factors", + "description": "Gets a list of available [query performance factors](https://redis.io/docs/latest/operate/rc/databases/configuration/advanced-capabilities/#query-performance-factor).", + "operationId": "getSupportedSearchScalingFactors", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -8267,7 +9904,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DatabaseCertificate" + "$ref": "#/components/schemas/SearchScalingFactorsData" } } } @@ -8293,14 +9930,14 @@ } } }, - "/subscriptions/redis-versions": { + "/payment-methods": { "get": { "tags": [ - "Subscriptions - Pro" + "Account" ], - "summary": "Get the available Redis database versions", - "description": "Get the available Redis database versions", - "operationId": "getRedisVersions", + "summary": "Get payment methods", + "description": "Gets a list of all payment methods for this account.", + "operationId": "getAccountPaymentMethods", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -8313,7 +9950,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RedisVersions" + "$ref": "#/components/schemas/PaymentMethods" } } } @@ -8339,27 +9976,69 @@ } } }, - "/regions": { + "/logs": { "get": { "tags": [ "Account" ], - "summary": "Get Pro plans regions", - "description": "Lookup list of regions for cloud provider", - "operationId": "getSupportedRegions", + "summary": "Get system logs", + "description": "Gets [system logs](https://redis.io/docs/latest/operate/rc/api/examples/audit-system-logs/) for this account.", + "operationId": "getAccountSystemLogs", "parameters": [ { - "name": "provider", + "name": "offset", "in": "query", - "description": "Provider Name", + "description": "Number of items to skip.", "required": false, "schema": { - "type": "string", - "enum": [ - "AWS", - "GCP" - ] - } + "type": "integer", + "format": "int32" + }, + "example": 0 + }, + { + "name": "limit", + "in": "query", + "description": "Maximum number of logs to return. Limit: 1000", + "required": false, + "schema": { + "maximum": 1000, + "minimum": 1, + "type": "integer", + "format": "int32" + }, + "example": 100 + }, + { + "name": "startTime", + "in": "query", + "description": "Filter logs with time >= startTime (UTC)", + "required": false, + "schema": { + "type": "string" + }, + "example": "2025-01-01T00:00:00Z" + }, + { + "name": "endTime", + "in": "query", + "description": "Filter logs with time <= endTime (UTC)", + "required": false, + "schema": { + "type": "string" + }, + "example": "2025-01-31T23:59:59Z" + }, + { + "name": "resourceId", + "in": "query", + "description": "Filter logs by resourceId", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1234 } ], "responses": { @@ -8374,7 +10053,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Regions" + "$ref": "#/components/schemas/AccountSystemLogEntries" } } } @@ -8400,14 +10079,36 @@ } } }, - "/query-performance-factors": { + "/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/slow-log": { "get": { "tags": [ - "Account" + "Databases - Essentials" + ], + "summary": "Get Essentials database slow-log by database id", + "description": "Get slow-log for a specific database identified by Essentials subscription Id and database Id", + "operationId": "getSlowLog_1", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } ], - "summary": "Get Query performance factors", - "description": "Lookup list of supported Query performance factors", - "operationId": "getSupportedSearchScalingFactors", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -8420,7 +10121,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SearchScalingFactorsData" + "$ref": "#/components/schemas/DatabaseSlowLogEntries" } } } @@ -8446,14 +10147,36 @@ } } }, - "/payment-methods": { + "/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/available-target-versions": { "get": { "tags": [ - "Account" + "Databases - Essentials" + ], + "summary": "Get available upgrade versions for Essentials database", + "description": "Gets a list of available Redis versions that the specified Essentials database can be upgraded to.", + "operationId": "getEssentialsDatabaseAvailableVersions", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } ], - "summary": "Get payment methods", - "description": "Lookup list of current Account's payment methods", - "operationId": "getAccountPaymentMethods", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -8466,7 +10189,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PaymentMethods" + "$ref": "#/components/schemas/BdbAvailableVersionsResponse" } } } @@ -8492,38 +10215,24 @@ } } }, - "/logs": { + "/fixed/redis-versions": { "get": { "tags": [ - "Account" + "Subscriptions - Essentials" ], - "summary": "Get system log", - "description": "System log information for current account", - "operationId": "getAccountSystemLogs", + "summary": "Get available Redis database versions for specific Essentials subscription", + "description": "Gets a list of all available Redis database versions for a specific Essentials subscription.", + "operationId": "getRedisVersions_1", "parameters": [ { - "name": "offset", - "in": "query", - "description": "Number of items to skip", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 0 - }, - { - "name": "limit", + "name": "subscriptionId", "in": "query", - "description": "Maximum number of items to return, but not more than 1000", - "required": false, - "schema": { - "maximum": 1000, - "minimum": 1, + "description": "Subscription ID.", + "required": true, + "schema": { "type": "integer", "format": "int32" - }, - "example": 100 + } } ], "responses": { @@ -8538,7 +10247,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountSystemLogEntries" + "$ref": "#/components/schemas/RedisVersions" } } } @@ -8569,14 +10278,14 @@ "tags": [ "Subscriptions - Essentials" ], - "summary": "Get Plans", - "description": "Lookup list of plans", + "summary": "Get Essentials plans", + "description": "Gets a list of Essentials plans. The plan describes the dataset size, cloud provider and region, and available database configuration options for an Essentials database.", "operationId": "getAllFixedSubscriptionsPlans", "parameters": [ { "name": "provider", "in": "query", - "description": "Cloud Provider Name", + "description": "Returns plans supported by the specified Cloud Provider.", "required": false, "schema": { "type": "string", @@ -8590,7 +10299,7 @@ { "name": "redisFlex", "in": "query", - "description": "Is RedisFlex Plan", + "description": "Returns Redis Flex plans.", "required": false, "schema": { "type": "boolean" @@ -8640,14 +10349,14 @@ "tags": [ "Subscriptions - Essentials" ], - "summary": "Get Essentials subscription plan by id", - "description": "Information on a specific Essentials subscription plan identified by plan Id", + "summary": "Get a single Essentials plan", + "description": "Gets information on the specified Essentials plan.", "operationId": "getFixedSubscriptionsPlanById", "parameters": [ { "name": "planId", "in": "path", - "description": "Essentials Subscription Plan ID", + "description": "Essentials plan ID.", "required": true, "schema": { "type": "integer", @@ -8698,14 +10407,14 @@ "tags": [ "Subscriptions - Essentials" ], - "summary": "Get Essentials subscription plans by subscription id", - "description": "Lookup list of Essentials plans that can be used by a specific subscription", + "summary": "Get Essentials plans for a subscription", + "description": "Gets a list of compatible Essentials plans for the specified Essentials subscription.", "operationId": "getFixedSubscriptionsPlansBySubscriptionId", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription Id", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -8756,8 +10465,8 @@ "tags": [ "Account" ], - "summary": "Get modules", - "description": "Lookup list of database modules supported in current account (support may differ based on subscription and database settings)", + "summary": "Get advanced capabilities", + "description": "Gets a list of Redis [advanced capabilities](https://redis.io/docs/latest/operate/rc/databases/configuration/advanced-capabilities/) (also known as modules) available for databases prior to Redis 8. Advanced capability support may differ based on subscription and database settings.", "operationId": "getSupportedDatabaseModules", "responses": { "400": { @@ -8802,8 +10511,8 @@ "tags": [ "Account" ], - "summary": "Get list of data persistence options", - "description": "Lookup list of data persistence values", + "summary": "Get data persistence options", + "description": "Gets a list of all [data persistence](https://redis.io/docs/latest/operate/rc/databases/configuration/data-persistence/) options for this account.", "operationId": "getDataPersistenceOptions", "responses": { "400": { @@ -8843,13 +10552,67 @@ } } }, + "/cost-report/{costReportId}": { + "get": { + "tags": [ + "Account" + ], + "summary": "Get cost report (Beta)", + "description": "Returns the generated cost report file in FOCUS format using the costReportId returned from the cost report generation task. The file is downloaded as an attachment with the filename set to the costReportId.", + "operationId": "getCostReport", + "parameters": [ + { + "name": "costReportId", + "in": "path", + "description": "Cost Report ID. Returned from a Cost Report generation task.", + "required": true, + "schema": { + "type": "string" + }, + "example": "cost-report-12345-abcdef" + } + ], + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "Returns the cost report file", + "content": { + "application/octet-stream": {} + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, "/": { "get": { "tags": [ "Account" ], - "summary": "Get current Account", - "description": "Current account and related information", + "summary": "Get current account", + "description": "Gets information on this account.", "operationId": "getCurrentAccount", "responses": { "400": { @@ -8892,6 +10655,14 @@ }, "components": { "schemas": { + "TargetVersion": { + "type": "object", + "properties": { + "redisVersion": { + "type": "string" + } + } + }, "AclUserCreateRequest": { "required": [ "name", @@ -8902,18 +10673,18 @@ "properties": { "name": { "type": "string", - "description": "Required. ACL user name", + "description": "Access control user name.", "example": "ACL-user-example" }, "role": { "type": "string", - "description": "Required. ACL role name", - "example": "Redis-role-example" + "description": "Name of the database access role to assign to this user. Use GET '/acl/roles' to get a list of database access roles.", + "example": "ACL-role-example" }, "password": { "type": "string", - "description": "Required. Password to identify as user after creation.", - "example": "some-random-password" + "description": "The database password for this user.", + "example": "ab123AB$%^" }, "commandType": { "type": "string", @@ -8935,12 +10706,12 @@ }, "name": { "type": "string", - "description": "User name", + "description": "The account user's name.", "example": "My new user name" }, "role": { "type": "string", - "description": "Role name", + "description": "Changes the account user's role. See [Team management roles](https://redis.io/docs/latest/operate/rc/security/access-control/access-management/#team-management-roles) to learn about available account roles.", "enum": [ "Owner", "Member", @@ -8957,6 +10728,31 @@ }, "description": "User update request" }, + "BdbVersionUpgradeStatus": { + "type": "object", + "properties": { + "databaseId": { + "type": "integer", + "format": "int32" + }, + "targetRedisVersion": { + "type": "string" + }, + "progress": { + "type": "number", + "format": "double" + }, + "upgradeStatus": { + "type": "string", + "enum": [ + "in-progress", + "in-progress-recovery-pending", + "done", + "failed" + ] + } + } + }, "PaymentMethods": { "type": "object", "properties": { @@ -8999,33 +10795,33 @@ "properties": { "subscriptionId": { "type": "integer", - "description": "Required. Subscription Id of the given database", + "description": "Subscription ID for the database's subscription. Use 'GET /subscriptions' or 'GET /fixed/subscriptions' to get a list of available subscriptions and their IDs.", "format": "int32" }, "databaseId": { "type": "integer", - "description": "Required. Database Id that belong to the subscription", + "description": "The database's ID. Use 'GET /subscriptions/{subscriptionId}/databases' or 'GET /fixed/subscriptions/{subscriptionId}/databases' to get a list of databases in a subscription and their IDs.", "format": "int32" }, "regions": { "type": "array", - "description": "Optional. AA regions name belong to the given database, list of String comma separated", + "description": "(Active-Active databases only) Optional. A list of regions where this rule applies for this role.", "example": [], "items": { "type": "string", - "description": "Optional. AA regions name belong to the given database, list of String comma separated", + "description": "(Active-Active databases only) Optional. A list of regions where this rule applies for this role.", "example": "[]" } } }, - "description": "Required. List of databaseId and subscriptionId pairs associated with the requested ACL role" + "description": "A list of databases where the specified rule applies for this role." }, "ActiveActiveTgwUpdateCidrsRequest": { "type": "object", "properties": { "cidrs": { "type": "array", - "description": "Optional. List of attachment CIDRs", + "description": "Optional. List of transit gateway attachment CIDRs.", "example": [ "10.10.10.0/24", "10.10.20.0/24" @@ -9057,7 +10853,7 @@ "example": { "account": { "id": 1001, - "name": "Redis Labs", + "name": "Redis", "createdTimestamp": "2018-12-23T15:15:31Z", "updatedTimestamp": "2022-10-12T10:54:10Z", "pocStatus": "inactive", @@ -9065,7 +10861,7 @@ "key": { "name": "capi-api-key-name", "accountId": 1001, - "accountName": "Redis Labs", + "accountName": "Redis", "allowedSourceIps": [ "0.0.0.0/0" ], @@ -9080,10 +10876,69 @@ } } }, + "PrivateLinkActiveActiveCreateRequest": { + "required": [ + "principal", + "regionId", + "shareName", + "type" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true, + "example": 27 + }, + "shareName": { + "maxLength": 64, + "minLength": 0, + "type": "string", + "description": "Name for the resource share", + "example": "my-private-link-share" + }, + "principal": { + "type": "string", + "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", + "example": "123456789012" + }, + "type": { + "type": "string", + "description": "Type of the principal", + "example": "aws_account", + "enum": [ + "aws_account", + "organization", + "organization_unit", + "iam_role", + "iam_user", + "service_principal" + ] + }, + "alias": { + "type": "string", + "description": "Alias or friendly name for the principal", + "example": "Production Account" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Request to create a private link for Active-Active subscription" + }, "ActiveActiveVpcPeeringCreateAwsRequest": { "required": [ "awsAccountId", "destinationRegion", + "sourceRegion", "vpcId" ], "type": "object", @@ -9098,38 +10953,38 @@ }, "sourceRegion": { "type": "string", - "description": "Name of region to create a VPC peering from" + "description": "Name of region to create a VPC peering from." }, "destinationRegion": { "type": "string", - "description": "Name of region to create a VPC peering to", + "description": "Name of region to create a VPC peering to.", "example": "us-east-1" }, "awsAccountId": { "type": "string", - "description": "AWS Account uid", + "description": "AWS Account ID.", "example": "" }, "vpcId": { "type": "string", - "description": "VPC Id", + "description": "VPC ID.", "example": "" }, "vpcCidr": { "type": "string", - "description": "Optional. VPC CIDR", + "description": "Optional. VPC CIDR.", "example": "<10.10.10.0/24>" }, "vpcCidrs": { "type": "array", - "description": "Optional. List of VPC CIDRs", + "description": "Optional. List of VPC CIDRs.", "example": [ "<10.10.10.0/24>", "<10.10.20.0/24>" ], "items": { "type": "string", - "description": "Optional. List of VPC CIDRs", + "description": "Optional. List of VPC CIDRs.", "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" } }, @@ -9150,28 +11005,32 @@ }, "name": { "type": "string", - "description": "Subscription name", + "description": "Optional. Updated subscription name.", "example": "My new subscription name" }, "paymentMethodId": { "type": "integer", - "description": "Optional. A valid payment method that was pre-defined in the current account. This value is Optional if ‘paymentMethod’ is ‘marketplace’, but Required for all other account types.", + "description": "Optional. The payment method ID you'd like to use for this subscription. Must be a valid payment method ID for this account. Use GET /payment-methods to get all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required if 'paymentMethod' is 'credit-card'.", "format": "int32" }, "paymentMethod": { "type": "string", - "description": "Optional. The payment method for the requested subscription. If ‘credit-card’ is specified, ‘paymentMethodId’ must be defined. Default: 'credit-card", + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’ , ‘paymentMethodId’ must be defined.", "enum": [ "credit-card", "marketplace" ] }, + "publicEndpointAccess": { + "type": "boolean", + "description": "Optional. When 'false', all databases on this subscription will reject any connection attempt to the public endpoint and any connection attempt to the private endpoint that does not come from an IP address in the private address space defined in [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918#section-3 ). You must use a [private connectivity method](https://redis.io/docs/latest/operate/rc/security/database-security/block-public-endpoints/#private-connectivity-methods ) to connect to a database with a blocked public endpoint." + }, "commandType": { "type": "string", "readOnly": true } }, - "description": "Subscription update request" + "description": "Subscription update request message" }, "DatabaseTagUpdateRequest": { "required": [ @@ -9195,7 +11054,7 @@ }, "value": { "type": "string", - "description": "Required. database tag value" + "description": "Database tag value" }, "commandType": { "type": "string", @@ -9235,22 +11094,22 @@ }, "gcpProjectId": { "type": "string", - "description": "The google cloud project ID", + "description": "Google Cloud project ID.", "example": "my-gcp-project" }, "gcpVpcName": { "type": "string", - "description": "Name of the VPC that hosts your application", + "description": "Name of the Google Cloud VPC that hosts your application.", "example": "my-vpc" }, "gcpVpcSubnetName": { "type": "string", - "description": "Name of your VPC's subnet of IP address ranges", + "description": "Name of your VPC's subnet of IP address ranges.", "example": "my-vpc-subnet" }, "endpointConnectionName": { "type": "string", - "description": "Prefix used to create PSC endpoints in the consumer application VPC, so endpoint names appear in Google Cloud as endpoint name prefix + endpoint number", + "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", "example": "my-endpoint-connection" }, "commandType": { @@ -9405,22 +11264,28 @@ "properties": { "name": { "type": "string", - "description": "Required. Database name (Database name must be up to 40 characters long, include only letters, digits, or hyphen ('-'), start with a letter, and end with a letter or digit)", + "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", "example": "Redis-database-example" }, "protocol": { "type": "string", - "description": "Optional. Database protocol: either 'redis' or 'memcached'. Default: 'redis'", + "description": "Optional. Database protocol. Only set to 'memcached' if you have a legacy application. Default: 'redis'", "enum": [ "redis", "memcached" ] }, + "port": { + "type": "integer", + "description": "Optional. TCP port on which the database is available (10000-19999). Generated automatically if not set.", + "format": "int32", + "example": 10000 + }, "memoryLimitInGb": { "minimum": 0.1, "exclusiveMinimum": false, "type": "number", - "description": "Deprecated - Optional. Total memory including replication and other overhead", + "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", "format": "double", "example": 1, "deprecated": true @@ -9429,18 +11294,18 @@ "minimum": 0.1, "exclusiveMinimum": false, "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this specific database is in GB. You can not set both datasetSizeInGb and totalMemoryInGb. if ‘replication’ is true, the database’s total memory will be twice as large as the datasetSizeInGb.if ‘replication’ is false, the database’s total memory of the database will be the datasetSizeInGb value.", + "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", "format": "double", "example": 1 }, "supportOSSClusterApi": { "type": "boolean", - "description": "Optional. Support Redis open-source (OSS) Cluster API. Default: 'false'", + "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", "example": false }, "dataPersistence": { "type": "string", - "description": "Optional. Rate of database data persistence (in persistent storage). Default: 'none'", + "description": "Optional. Type and rate of data persistence in persistent storage. Default: 'none'", "enum": [ "none", "aof-every-1-second", @@ -9459,41 +11324,53 @@ }, "localThroughputMeasurement": { "type": "array", - "description": "Optional. Throughput measurement for an active-active subscription", + "description": "Optional. Expected throughput per region for an Active-Active database. Default: 1000 read and write ops/sec for each region", "items": { "$ref": "#/components/schemas/LocalThroughput" } }, "modules": { "type": "array", - "description": "Optional. Redis modules to be provisioned in the database", + "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", "items": { "$ref": "#/components/schemas/DatabaseModuleSpec" } }, "quantity": { "type": "integer", - "description": "Optional. Number of databases (of this type) that will be created. Default: 1", + "description": "Optional. Number of databases that will be created with these settings. Default: 1", "format": "int32", "example": 1 }, "averageItemSizeInBytes": { "type": "integer", - "description": "Optional. Relevant only to ram-and-flash clusters. Estimated average size (measured in bytes) of the items stored in the database. Default: 1000", - "format": "int64" + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. Estimated average size in bytes of the items stored in the database. Default: 1000", + "format": "int64", + "deprecated": true + }, + "ramPercentage": { + "type": "integer", + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50). Default: 20", + "format": "int32", + "example": 20 }, "respVersion": { "type": "string", - "description": "Optional. RESP version must be compatible with Redis version.", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", "example": "resp3", "enum": [ "resp2", "resp3" ] }, + "redisVersion": { + "type": "string", + "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version (available in 'GET /subscriptions/redis-versions')", + "example": "7.2" + }, "shardingType": { "type": "string", - "description": "Optional. Database [Hashing policy](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#manage-the-hashing-policy). Default depends on your account creation date. See [Hashing policy](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#manage-the-hashing-policy) for more information.", + "description": "Optional. Database [Hashing policy](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#manage-the-hashing-policy).", "enum": [ "default-regex-rules", "custom-regex-rules", @@ -9502,11 +11379,11 @@ }, "queryPerformanceFactor": { "type": "string", - "description": "Optional. The query performance factor adds extra compute power specifically for search and query. For databases with search and query, you can increase your search queries per second by the selected factor.", + "description": "Optional. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", "example": "2x" } }, - "description": "Required. Databases specifications for each planned database" + "description": "One or more database specification(s) to create in this subscription." }, "Subscription": { "type": "object", @@ -9525,6 +11402,9 @@ "status": { "type": "string" }, + "publicEndpointAccess": { + "type": "boolean" + }, "memoryStorage": { "type": "string", "enum": [ @@ -9551,6 +11431,15 @@ "type": "object" } } + }, + "persistentStorageEncryptionType": { + "type": "string" + }, + "deletionGracePeriod": { + "type": "string" + }, + "customerManagedKeyAccessDetails": { + "$ref": "#/components/schemas/CustomerManagedKeyAccessDetails" } }, "description": "RedisLabs Subscription information", @@ -9560,6 +11449,7 @@ "status": "active", "deploymentType": "single-region", "paymentMethodId": 2, + "publicEndpointAccess": true, "memoryStorage": "ram", "numberOfDatabases": 6, "paymentMethodType": "credit-card", @@ -9617,18 +11507,18 @@ }, "cidrIps": { "type": "array", - "description": "CIDR values in an array format (example: ['10.1.1.0/32'])", + "description": "List of CIDR values. Example: ['10.1.1.0/32']", "items": { "type": "string", - "description": "CIDR values in an array format (example: ['10.1.1.0/32'])" + "description": "List of CIDR values. Example: ['10.1.1.0/32']" } }, "securityGroupIds": { "type": "array", - "description": "AWS Security group identifier", + "description": "List of AWS Security group IDs.", "items": { "type": "string", - "description": "AWS Security group identifier" + "description": "List of AWS Security group IDs." } }, "commandType": { @@ -9636,7 +11526,7 @@ "readOnly": true } }, - "description": "Update subscription" + "description": "Update Pro subscription" }, "FixedDatabaseCreateRequest": { "required": [ @@ -9651,12 +11541,12 @@ }, "name": { "type": "string", - "description": "Required. Database name (Database name must be up to 40 characters long, include only letters, digits, or hyphen ('-'), start with a letter, and end with a letter or digit)", + "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", "example": "Redis-Essentials-database-example" }, "protocol": { "type": "string", - "description": "Optional. Database protocol. 'stack' is a suite of all Redis’ data modules. Default: 'stack', for Redis Flex subscription Default: 'redis'. 'redis' is only used with Pay-As-You-Go subscriptions and with Redis Flex.", + "description": "Optional. Database protocol. Use 'stack' to get all of Redis' advanced capabilities. Only use 'redis' for Pay-as-you-go or Redis Flex subscriptions. Default: 'stack' for most subscriptions, 'redis' for Redis Flex subscriptions.", "enum": [ "redis", "memcached", @@ -9667,7 +11557,7 @@ "minimum": 0.1, "exclusiveMinimum": false, "type": "number", - "description": "Deprecated - Optional. Total memory including replication and other overhead. Supported only for 'Pay-As-You-Go' subscriptions", + "description": "(Pay-as-you-go subscriptions only) Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", "format": "double", "example": 1, "deprecated": true @@ -9676,18 +11566,23 @@ "minimum": 0.1, "exclusiveMinimum": false, "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this specific database is in GB. You can not set both datasetSizeInGb and totalMemoryInGb. if 'replication' is true, the database’s total memory will be twice as large as the datasetSizeInGb.if 'replication' is false, the database’s total memory of the database will be the datasetSizeInGb value.", + "description": "(Pay-as-you-go subscriptions only) Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", "format": "double", "example": 1 }, "supportOSSClusterApi": { "type": "boolean", - "description": "Optional. Support Redis open-source (OSS) Cluster API. Supported only for 'Pay-As-You-Go' subscriptions", + "description": "(Pay-as-you-go subscriptions only) Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", "example": true }, + "redisVersion": { + "type": "string", + "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version. (available in 'GET /fixed/redis-versions')", + "example": "7.4" + }, "respVersion": { "type": "string", - "description": "Optional. RESP version must be compatible with Redis version.", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", "example": "resp3", "enum": [ "resp2", @@ -9696,23 +11591,23 @@ }, "useExternalEndpointForOSSClusterApi": { "type": "boolean", - "description": "Optional. Should use external endpoint for open-source (OSS) Cluster API. Can only be enabled if OSS Cluster API support is enabled. Supported only for 'Pay-As-You-Go' subscriptions", + "description": "(Pay-as-you-go subscriptions only) Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", "example": true }, "enableDatabaseClustering": { "type": "boolean", - "description": "Optional. Distributes database data to different cloud instances. Supported only for 'Pay-As-You-Go' subscriptions", + "description": "(Pay-as-you-go subscriptions only) Optional. Distributes database data to different cloud instances. Default: 'false'", "example": false }, "numberOfShards": { "type": "integer", - "description": "Optional. Specifies the number of master shards. Supported only for 'Pay-As-You-Go' subscriptions", + "description": "(Pay-as-you-go subscriptions only) Optional. Specifies the number of master shards.", "format": "int32", "example": 2 }, "dataPersistence": { "type": "string", - "description": "Optional. Rate of database data persistence (in persistent storage). The default is according to the subscription plan.", + "description": "Optional. Type and rate of data persistence in persistent storage. Use GET /fixed/plans/{planId} to see if your plan supports data persistence.", "enum": [ "none", "aof-every-1-second", @@ -9724,7 +11619,7 @@ }, "dataEvictionPolicy": { "type": "string", - "description": "Optional. Data items eviction method", + "description": "Optional. Data eviction policy.", "enum": [ "allkeys-lru", "allkeys-lfu", @@ -9738,36 +11633,36 @@ }, "replication": { "type": "boolean", - "description": "Optional. Databases replication. The default is according to the subscription plan." + "description": "Optional. Sets database replication. Use GET /fixed/plans/{planId} to see if your plan supports database replication." }, "periodicBackupPath": { "type": "string", - "description": "Optional. If specified, automatic backups will be every 24 hours or database will be able to perform immediate backups to this path. If empty string is received, backup path will be removed. Optional.", + "description": "Optional. The path to a backup storage location. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. Use GET /fixed/plans/{planId} to see if your plan supports database backups.", "example": "s3://" }, "sourceIps": { "type": "array", - "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. example value: '['192.168.10.0/32', '192.168.12.0/24']'", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Use GET /fixed/plans/{planId} to see how many CIDR allow rules your plan supports. Example: '['192.168.10.0/32', '192.168.12.0/24']'", "items": { "type": "string", - "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. example value: '['192.168.10.0/32', '192.168.12.0/24']'" + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Use GET /fixed/plans/{planId} to see how many CIDR allow rules your plan supports. Example: '['192.168.10.0/32', '192.168.12.0/24']'" } }, "regexRules": { "type": "array", - "description": "Optional. Shard regex rules. Relevant only for a sharded database. Supported only for 'Pay-As-You-Go' subscriptions", + "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'enableDatabaseClustering' is set to 'true' and .", "items": { "type": "string", - "description": "Optional. Shard regex rules. Relevant only for a sharded database. Supported only for 'Pay-As-You-Go' subscriptions" + "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'enableDatabaseClustering' is set to 'true' and ." } }, "replicaOf": { "type": "array", - "description": "Deprecated - Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] ).", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", "deprecated": true, "items": { "type": "string", - "description": "Deprecated - Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] )." + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." } }, "replica": { @@ -9775,34 +11670,34 @@ }, "clientSslCertificate": { "type": "string", - "description": "Deprecated - Optional. A string containing TLS/SSL certificate (public key) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty string is received, SSL certificate will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'\"", + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections. Default: 'null'", "deprecated": true }, "clientTlsCertificates": { "type": "array", - "description": "Optional. A list of TLS/SSL certificates (public keys) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty list is received, SSL certificates will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'\"", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections.", "items": { "$ref": "#/components/schemas/DatabaseCertificateSpec" } }, "enableTls": { "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections (mTLS with valid clientSslCertificate, regular TLS when the clientSslCertificate is not provided)." + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. Default: 'false'" }, "password": { "type": "string", - "description": "Optional. Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated" + "description": "Optional. Password to access the database. If not set, a random 32-character alphanumeric password will be automatically generated." }, "alerts": { "type": "array", - "description": "Optional. Redis database alerts", + "description": "Optional. Redis database alert details.", "items": { "$ref": "#/components/schemas/DatabaseAlertSpec" } }, "modules": { "type": "array", - "description": "Optional. Redis modules to be provisioned in the database", + "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Can only be set if 'protocol' is 'redis'. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", "items": { "$ref": "#/components/schemas/DatabaseModuleSpec" } @@ -9829,19 +11724,19 @@ }, "dryRun": { "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Default: 'false'", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, updating any resources required by the plan. When 'true': creates a read-only deployment plan and does not update any resources. Default: 'false'", "example": false }, "name": { "type": "string", - "description": "Optional. Database name", + "description": "Optional. Updated database name.", "example": "Redis-database-example-updated" }, "memoryLimitInGb": { "minimum": 0.1, "exclusiveMinimum": false, "type": "number", - "description": "Deprecated - Optional. Total memory including replication and other overhead", + "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", "format": "double", "example": 1, "deprecated": true @@ -9850,13 +11745,13 @@ "minimum": 0.1, "exclusiveMinimum": false, "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this specific database is in GB. You can not set both datasetSizeInGb and totalMemoryInGb. if ‘replication’ is true, the database’s total memory will be twice as large as the datasetSizeInGb.if ‘replication’ is false, the database’s total memory of the database will be the datasetSizeInGb value.", + "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", "format": "double", "example": 1 }, "respVersion": { "type": "string", - "description": "Optional. RESP version must be compatible with Redis version.", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", "example": "resp3", "enum": [ "resp2", @@ -9868,7 +11763,7 @@ }, "dataPersistence": { "type": "string", - "description": "Optional. Rate of database data persistence (in persistent storage)", + "description": "Optional. Type and rate of data persistence in persistent storage.", "enum": [ "none", "aof-every-1-second", @@ -9880,7 +11775,7 @@ }, "dataEvictionPolicy": { "type": "string", - "description": "Optional. Data items eviction method", + "description": "Optional. Data eviction policy.", "enum": [ "allkeys-lru", "allkeys-lfu", @@ -9894,23 +11789,23 @@ }, "replication": { "type": "boolean", - "description": "Optional. Databases replication" + "description": "Optional. Turns database replication on or off." }, "regexRules": { "type": "array", - "description": "Optional. Shard regex rules. Relevant only for a sharded database", + "description": "Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'.", "items": { "type": "string", - "description": "Optional. Shard regex rules. Relevant only for a sharded database" + "description": "Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'." } }, "replicaOf": { "type": "array", - "description": "Deprecated - Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] ).", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", "deprecated": true, "items": { "type": "string", - "description": "Deprecated - Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] )." + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." } }, "replica": { @@ -9918,60 +11813,60 @@ }, "supportOSSClusterApi": { "type": "boolean", - "description": "Optional. Support Redis open-source (OSS) Cluster API", + "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api).", "example": false }, "useExternalEndpointForOSSClusterApi": { "type": "boolean", - "description": "Optional. Should use external endpoint for open-source (OSS) Cluster API. Can only be enabled if OSS Cluster API support is enabled'. Default: 'false'", + "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'.", "example": false }, "password": { "type": "string", - "description": "Optional. If specified, this password will be used to access the database. Can only be set if Database Protocol is REDIS", + "description": "Optional. Changes the password used to access the database with the 'default' user. Can only be set if 'protocol' is 'redis'.", "example": "P@ssw0rd" }, "saslUsername": { "type": "string", - "description": "Optional. If specified, this Memcached (SASL) username will be used to access the database. Can only be set if Database Protocol is Memcached", + "description": "Optional. Changes the Memcached (SASL) username to access the database. Can only be set if 'protocol' is 'memcached'.", "example": "mc-HR7gb" }, "saslPassword": { "type": "string", - "description": "Optional. If specified, this Memcached (SASL) password will be used to access the database. Can only be set if Database Protocol is Memcached", + "description": "Optional. Changes the Memcached (SASL) password to access the database. Can only be set if 'protocol' is 'memcached'.", "example": "7igza2WZ0UPgMyqjsxuIZtla8xBdzkJT" }, "sourceIp": { "type": "array", - "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] )", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", "items": { "type": "string", - "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] )" + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" } }, "clientSslCertificate": { "type": "string", - "description": "Deprecated - Optional. A string containing TLS/SSL certificate (public key) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty string is received, SSL certificate will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'\"", + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", "deprecated": true }, "clientTlsCertificates": { "type": "array", - "description": "Optional. A list of TLS/SSL certificates (public keys) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty list is received, SSL certificates will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'\"", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", "items": { "$ref": "#/components/schemas/DatabaseCertificateSpec" } }, "enableTls": { "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections (mTLS with valid clientSslCertificate, regular TLS when the clientSslCertificate is not provided). If enableTls is set to false it will also remove the mTLS requirement (by erasing the content of the clientSslCertificate property). Default: 'false'" + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." }, "enableDefaultUser": { "type": "boolean", - "description": "Optional. When 'true', enables connecting to the database with the 'default' user. Default: 'true'. Can only be set if Database Protocol is REDIS" + "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database. Can only be set if 'protocol' is 'redis'." }, "periodicBackupPath": { "type": "string", - "description": "Deprecated - If specified, automatic backups will be every 24 hours or database will be able to perform immediate backups to this path. If empty string is received, backup path will be removed. Optional.", + "description": "Optional. Changes the backup location path. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. If set to an empty string, the backup path will be removed.", "example": "s3://", "deprecated": true }, @@ -9980,18 +11875,24 @@ }, "alerts": { "type": "array", - "description": "Optional. Redis database alerts", + "description": "Optional. Changes Redis database alert details.", "items": { "$ref": "#/components/schemas/DatabaseAlertSpec" } }, + "ramPercentage": { + "type": "integer", + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50).", + "format": "int32", + "example": 20 + }, "commandType": { "type": "string", "readOnly": true }, "queryPerformanceFactor": { "type": "string", - "description": "Optional. The query performance factor adds extra compute power specifically for search and query. For databases with search and query, you can increase your search queries per second by the selected factor.", + "description": "Optional. Changes the query performance factor. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", "example": "2x" } }, @@ -10002,7 +11903,7 @@ "properties": { "region": { "type": "string", - "description": "Required. Name of the region to update its properties" + "description": "Required. Name of the region to update." }, "remoteBackup": { "$ref": "#/components/schemas/DatabaseBackupConfig" @@ -10012,7 +11913,7 @@ }, "dataPersistence": { "type": "string", - "description": "Optional. Regional instance of an Active-Active database data persistence rate (in persistent storage)", + "description": "Optional. Type and rate of data persistence for this region. If set, 'globalDataPersistence' will not apply to this region.", "enum": [ "none", "aof-every-1-second", @@ -10024,35 +11925,39 @@ }, "password": { "type": "string", - "description": "Optional. If specified, this regional instance of an Active-Active database password will be used to access the database", + "description": "Optional. Changes the password used to access the database in this region. If set, 'globalPassword' will not apply to this region.", "example": "P@ssw0rd" }, "sourceIp": { "type": "array", - "description": "Optional. List of regional instance of an Active-Active database source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] )", + "description": "Optional. List of source IP addresses or subnet masks to whitelist in this region. If set, Redis clients will be able to connect to the database in this region only from within the specified source IP addresses ranges, and 'globalSourceIp' will not apply to this region. Example: ['192.168.10.0/32', '192.168.12.0/24']", "items": { "type": "string", - "description": "Optional. List of regional instance of an Active-Active database source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] )" + "description": "Optional. List of source IP addresses or subnet masks to whitelist in this region. If set, Redis clients will be able to connect to the database in this region only from within the specified source IP addresses ranges, and 'globalSourceIp' will not apply to this region. Example: ['192.168.10.0/32', '192.168.12.0/24']" } }, "alerts": { "type": "array", - "description": "Optional. Redis regional instance of an Active-Active database alerts", + "description": "Optional. Redis database alert settings for this region. If set, 'glboalAlerts' will not apply to this region.", "items": { "$ref": "#/components/schemas/DatabaseAlertSpec" } }, "respVersion": { "type": "string", - "description": "Optional. RESP version must be compatible with Redis version.", + "description": "Optional. Redis Serialization Protocol version for this region. Must be compatible with Redis version.", "example": "resp3", "enum": [ "resp2", "resp3" ] + }, + "enableDefaultUser": { + "type": "boolean", + "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database. If set, 'globalEnableDefaultUser' will not apply to this region." } }, - "description": "Optional. List or regions to update" + "description": "Optional. A list of regions and local settings to update." }, "PscEndpointCreateRequest": { "required": [ @@ -10077,22 +11982,22 @@ }, "gcpProjectId": { "type": "string", - "description": "The google cloud project ID", + "description": "Google Cloud project ID.", "example": "my-gcp-project" }, "gcpVpcName": { "type": "string", - "description": "Name of the VPC that hosts your application", + "description": "Name of the Google Cloud VPC that hosts your application.", "example": "my-vpc" }, "gcpVpcSubnetName": { "type": "string", - "description": "Name of your VPC's subnet of IP address ranges", + "description": "Name of your VPC's subnet of IP address ranges.", "example": "my-vpc-subnet" }, "endpointConnectionName": { "type": "string", - "description": "Prefix used to create PSC endpoints in the consumer application VPC, so endpoint names appear in Google Cloud as endpoint name prefix + endpoint number", + "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", "example": "my-endpoint-connection" }, "commandType": { @@ -10103,6 +12008,9 @@ "description": "Private Service Connect endpoint create request" }, "ActiveActiveVpcPeeringCreateBaseRequest": { + "required": [ + "sourceRegion" + ], "type": "object", "properties": { "provider": { @@ -10115,7 +12023,7 @@ }, "sourceRegion": { "type": "string", - "description": "Name of region to create a VPC peering from" + "description": "Name of region to create a VPC peering from." }, "commandType": { "type": "string", @@ -10132,6 +12040,29 @@ } ] }, + "BaseSubscriptionUpdateRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Subscription update request message", + "oneOf": [ + { + "$ref": "#/components/schemas/SubscriptionUpdateRequest" + }, + { + "$ref": "#/components/schemas/SubscriptionUpdateCMKRequest" + } + ] + }, "Regions": { "type": "object", "properties": { @@ -10154,148 +12085,289 @@ "example": { "regions": [ { + "id": 1, "name": "us-east-1", "provider": "AWS" }, { + "id": 2, "name": "us-west-1", "provider": "AWS" }, { + "id": 3, "name": "us-west-2", "provider": "AWS" }, { + "id": 4, "name": "eu-west-1", "provider": "AWS" }, { + "id": 29, "name": "eu-central-1", "provider": "AWS" }, { - "name": "ap-northeast-1", + "id": 7, + "name": "sa-east-1", "provider": "AWS" }, { - "name": "ap-southeast-1", + "id": 63, + "name": "ca-central-1", "provider": "AWS" }, { - "name": "ap-southeast-2", + "id": 62, + "name": "eu-north-1", "provider": "AWS" }, { - "name": "sa-east-1", + "id": 61, + "name": "eu-west-3", + "provider": "AWS" + }, + { + "id": 60, + "name": "eu-west-2", "provider": "AWS" }, { + "id": 59, "name": "us-east-2", "provider": "AWS" }, { - "name": "eu-west-2", + "id": 64, + "name": "ap-east-1", "provider": "AWS" }, { - "name": "eu-west-3", + "id": 146, + "name": "ap-southeast-5", "provider": "AWS" }, { - "name": "eu-north-1", + "id": 30, + "name": "ap-south-1", "provider": "AWS" }, { - "name": "ca-central-1", + "id": 117, + "name": "ap-northeast-3", "provider": "AWS" }, { - "name": "ap-east-1", + "id": 116, + "name": "ap-northeast-2", "provider": "AWS" }, { - "name": "ap-south-1", + "id": 145, + "name": "ap-southeast-7", + "provider": "AWS" + }, + { + "id": 6, + "name": "ap-northeast-1", + "provider": "AWS" + }, + { + "id": 5, + "name": "ap-southeast-1", + "provider": "AWS" + }, + { + "id": 15, + "name": "ap-southeast-2", + "provider": "AWS" + }, + { + "id": 132, + "name": "il-central-1", + "provider": "AWS" + }, + { + "id": 144, + "name": "mx-central-1", "provider": "AWS" }, { + "id": 32, "name": "asia-east1", "provider": "GCP" }, { - "name": "asia-east2", + "id": 67, + "name": "asia-east2", + "provider": "GCP" + }, + { + "id": 33, + "name": "asia-northeast1", + "provider": "GCP" + }, + { + "id": 104, + "name": "asia-northeast2", + "provider": "GCP" + }, + { + "id": 69, + "name": "asia-south1", + "provider": "GCP" + }, + { + "id": 34, + "name": "asia-southeast1", + "provider": "GCP" + }, + { + "id": 71, + "name": "australia-southeast1", + "provider": "GCP" + }, + { + "id": 72, + "name": "europe-north1", + "provider": "GCP" + }, + { + "id": 35, + "name": "europe-west1", + "provider": "GCP" + }, + { + "id": 74, + "name": "europe-west2", + "provider": "GCP" + }, + { + "id": 128, + "name": "asia-southeast2", + "provider": "GCP" + }, + { + "id": 75, + "name": "europe-west3", + "provider": "GCP" + }, + { + "id": 36, + "name": "europe-west4", + "provider": "GCP" + }, + { + "id": 133, + "name": "europe-west10", "provider": "GCP" }, { - "name": "asia-northeast1", + "id": 130, + "name": "europe-southwest1", "provider": "GCP" }, { - "name": "asia-northeast2", + "id": 134, + "name": "europe-west8", "provider": "GCP" }, { - "name": "asia-south1", + "id": 113, + "name": "europe-west6", "provider": "GCP" }, { - "name": "asia-southeast1", + "id": 129, + "name": "me-west1", "provider": "GCP" }, { - "name": "australia-southeast1", + "id": 135, + "name": "europe-west9", "provider": "GCP" }, { - "name": "europe-north1", + "id": 77, + "name": "northamerica-northeast1", "provider": "GCP" }, { - "name": "europe-west1", + "id": 136, + "name": "europe-west12", "provider": "GCP" }, { - "name": "europe-west2", + "id": 137, + "name": "europe-central2", "provider": "GCP" }, { - "name": "europe-west3", + "id": 131, + "name": "northamerica-northeast2", "provider": "GCP" }, { - "name": "europe-west4", + "id": 138, + "name": "me-central2", "provider": "GCP" }, { - "name": "europe-west6", + "id": 139, + "name": "me-central1", "provider": "GCP" }, { - "name": "northamerica-northeast1", + "id": 140, + "name": "us-east5", "provider": "GCP" }, { - "name": "southamerica-east1", + "id": 141, + "name": "us-south1", "provider": "GCP" }, { + "id": 27, "name": "us-central1", "provider": "GCP" }, { + "id": 38, "name": "us-east1", "provider": "GCP" }, { + "id": 39, "name": "us-east4", "provider": "GCP" }, { + "id": 40, "name": "us-west1", "provider": "GCP" }, { + "id": 82, "name": "us-west2", "provider": "GCP" + }, + { + "id": 142, + "name": "southamerica-west1", + "provider": "GCP" + }, + { + "id": 95, + "name": "southamerica-east1", + "provider": "GCP" + }, + { + "id": 143, + "name": "africa-south1", + "provider": "GCP" } ] } @@ -10395,25 +12467,25 @@ }, "vpcPeeringId": { "type": "integer", - "description": "VPC Peering id to update", + "description": "VPC Peering id to update.", "format": "int32", "readOnly": true }, "vpcCidr": { "type": "string", - "description": "Optional. VPC CIDR", + "description": "Optional. VPC CIDR.", "example": "<10.10.10.0/24>" }, "vpcCidrs": { "type": "array", - "description": "Optional. List of VPC CIDRs", + "description": "Optional. List of VPC CIDRs.", "example": [ "<10.10.10.0/24>", "<10.10.22.0/24>" ], "items": { "type": "string", - "description": "Optional. List of VPC CIDRs", + "description": "Optional. List of VPC CIDRs.", "example": "[\"<10.10.10.0/24>\",\"<10.10.22.0/24>\"]" } }, @@ -10459,7 +12531,7 @@ "cloudAccounts": [ { "id": 1, - "name": "Redis Labs Internal Resources", + "name": "Redis Internal Resources", "provider": "AWS", "status": "active", "links": [] @@ -10490,6 +12562,55 @@ ] } }, + "PrivateLinkActiveActivePrincipalsCreateRequest": { + "required": [ + "principal", + "regionId" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true, + "example": 27 + }, + "principal": { + "type": "string", + "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", + "example": "123456789012" + }, + "type": { + "type": "string", + "description": "Type of the principal", + "example": "aws_account", + "enum": [ + "aws_account", + "organization", + "organization_unit", + "iam_role", + "iam_user", + "service_principal" + ] + }, + "alias": { + "type": "string", + "description": "Alias or friendly name for the principal", + "example": "Production Account" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Request to add a principal to private link for Active-Active subscription" + }, "VpcPeeringUpdateAwsRequest": { "type": "object", "properties": { @@ -10500,25 +12621,25 @@ }, "vpcPeeringId": { "type": "integer", - "description": "VPC Peering ID to update", + "description": "VPC Peering ID to update.", "format": "int32", "readOnly": true }, "vpcCidr": { "type": "string", - "description": "Optional. VPC CIDR", + "description": "Optional. VPC CIDR.", "example": "<10.10.10.0/24>" }, "vpcCidrs": { "type": "array", - "description": "Optional. List of VPC CIDRs", + "description": "Optional. List of VPC CIDRs.", "example": [ "<10.10.10.0/24>", "<10.10.20.0/24>" ], "items": { "type": "string", - "description": "Optional. List of VPC CIDRs", + "description": "Optional. List of VPC CIDRs.", "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" } }, @@ -10623,18 +12744,18 @@ "properties": { "endpoint": { "type": "string", - "description": "Required. A Redis URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] )." + "description": "Redis URI of a source database. Example format: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: 'redis://endpoint1:6379'." }, "encryption": { "type": "boolean", - "description": "Defines if encryption should be used to connect to the sync source. If left null and if the source is a Redis Cloud instance, it will automatically detect if the source uses encryption." + "description": "Defines if encryption should be used to connect to the sync source. If not set the source is a Redis Cloud database, it will automatically detect if the source uses encryption." }, "serverCert": { "type": "string", - "description": "TLS/SSL certificate chain of the sync source. If left null and if the source is a Redis Cloud instance, it will automatically detect the certificate to use." + "description": "TLS/SSL certificate chain of the sync source. If not set and the source is a Redis Cloud database, it will automatically detect the certificate to use." } }, - "description": "Optional. This database will be a replica of the specified Redis databases provided as a list of one or more DatabaseSyncSourceSpec objects." + "description": "Optional. This database will be a replica of the specified Redis databases, provided as a list of objects with endpoint and certificate details." }, "MaintenanceWindow": { "type": "object", @@ -10684,12 +12805,13 @@ }, "name": { "type": "string", - "description": "Optional. ACL redis rule name", + "description": "Optional. Changes the Redis ACL rule name.", "example": "ACL-rule-example" }, "redisRule": { "type": "string", - "description": "Optional. ACL redis rule pattern" + "description": "Optional. Changes the Redis ACL rule pattern. See [ACL syntax](https://redis.io/docs/latest/operate/rc/security/access-control/data-access-control/configure-acls/#define-permissions-with-acl-syntax) to learn how to define rules.", + "example": "+set allkeys allchannels" }, "commandType": { "type": "string", @@ -10703,10 +12825,10 @@ "properties": { "region": { "type": "string", - "description": "Name of region to delete" + "description": "Name of the cloud provider region to delete." } }, - "description": "List of names of regions to delete" + "description": "The names of the regions to delete." }, "MaintenanceWindowSkipStatus": { "type": "object", @@ -10739,6 +12861,12 @@ "signInLoginUrl": { "type": "string" }, + "awsUserArn": { + "type": "string" + }, + "awsConsoleRoleArn": { + "type": "string" + }, "links": { "type": "array", "items": { @@ -10759,7 +12887,7 @@ "description": "RedisLabs Cloud Account information", "example": { "id": 1, - "name": "Redis Labs Internal Resources", + "name": "Redis Internal Resources", "provider": "AWS", "status": "active", "links": [ @@ -10771,6 +12899,47 @@ ] } }, + "PrivateLinkPrincipalsCreateRequest": { + "required": [ + "principal" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "principal": { + "type": "string", + "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", + "example": "123456789012" + }, + "type": { + "type": "string", + "description": "Type of the principal", + "example": "aws_account", + "enum": [ + "aws_account", + "organization", + "organization_unit", + "iam_role", + "iam_user", + "service_principal" + ] + }, + "alias": { + "type": "string", + "description": "Alias or friendly name for the principal", + "example": "Production Account" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Link principals create request" + }, "FixedSubscriptionUpdateRequest": { "type": "object", "properties": { @@ -10781,17 +12950,17 @@ }, "name": { "type": "string", - "description": "Optional. Essentials subscription name", + "description": "Optional. Updated subscription name.", "example": "My new subscription" }, "planId": { "type": "integer", - "description": "Optional. A predefined Essentials plan Id (see lookup API '/fixed/plans'). The plan defines the billing, deployment and configuration for the created subscription based on specific plan details", + "description": "Optional. An Essentials plan ID. The plan describes the dataset size, cloud provider and region, and available database configuration options. Use GET /fixed/plans/subscriptions/{subscriptionId} to get a list of compatible options for the specified subscription.", "format": "int32" }, "paymentMethod": { "type": "string", - "description": "Optional. The payment method for the requested subscription. If ‘credit-card’ is specified, ‘paymentMethodId’ must be defined. Default: 'credit-card'", + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’ , ‘paymentMethodId’ must be defined.", "enum": [ "credit-card", "marketplace" @@ -10799,7 +12968,7 @@ }, "paymentMethodId": { "type": "integer", - "description": "Optional. A valid payment method (credit card, wire transfer etc) pre-defined in the current account. It will be billed for any charges related to the created subscription.", + "description": "Optional. The payment method ID you'd like to use for this subscription. Must be a valid payment method ID for this account. Use GET /payment-methods to get a list of payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required if 'paymentMethod' is 'credit-card'.", "format": "int32" }, "commandType": { @@ -10829,6 +12998,138 @@ } } }, + "SubscriptionUpdateCMKRequest": { + "required": [ + "customerManagedKeys" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "commandType": { + "type": "string", + "readOnly": true + }, + "deletionGracePeriod": { + "type": "string", + "description": "Optional. The grace period for deleting the subscription. If not set, will default to immediate deletion grace period.", + "example": "alerts-only", + "enum": [ + "alerts-only", + "immediate", + "15-minutes", + "30-minutes", + "1-hour", + "4-hours", + "8-hours", + "12-hours", + "24-hours" + ] + }, + "customerManagedKeys": { + "type": "array", + "description": "The customer managed keys (CMK) to use for this subscription. If is active-active subscription, must set a key for each region.", + "items": { + "$ref": "#/components/schemas/CustomerManagedKey" + } + } + }, + "description": "Subscription update request message" + }, + "CostReportCreateRequest": { + "required": [ + "endDate", + "startDate" + ], + "type": "object", + "properties": { + "startDate": { + "type": "string", + "description": "Filter for usage starting on or after this date. Must be in format YYYY-MM-DD", + "format": "YYYY-MM-DD", + "example": "2025-10-01" + }, + "endDate": { + "type": "string", + "description": "Filter for usage ending on or before this date. Must be in format YYYY-MM-DD and must be after start date", + "format": "YYYY-MM-DD", + "example": "2025-11-06" + }, + "format": { + "type": "string", + "description": "Output format for the cost report", + "example": "csv", + "default": "csv", + "enum": [ + "json", + "csv" + ] + }, + "subscriptionIds": { + "type": "array", + "description": "Array of subscriptionIDs to filter by", + "example": [ + 123, + 456 + ], + "items": { + "type": "integer", + "description": "Array of subscriptionIDs to filter by", + "format": "int32" + } + }, + "databaseIds": { + "type": "array", + "description": "Array of database IDs to filter by", + "example": [ + 789, + 101112 + ], + "items": { + "type": "integer", + "description": "Array of database IDs to filter by", + "format": "int32" + } + }, + "subscriptionType": { + "type": "string", + "description": "Filter by plan type", + "example": "pro", + "enum": [ + "pro", + "essentials" + ] + }, + "regions": { + "type": "array", + "description": "Array of regions to filter by", + "example": [ + "us-east-1", + "eu-west-1" + ], + "items": { + "type": "string", + "description": "Array of regions to filter by", + "example": "[\"us-east-1\",\"eu-west-1\"]" + } + }, + "tags": { + "type": "array", + "description": "Array of key-value pairs for tag filtering", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Cost report generation request" + }, "AccountSubscriptionDatabases": { "type": "object", "properties": { @@ -11284,6 +13585,10 @@ "resource": { "type": "string" }, + "resourceId": { + "type": "integer", + "format": "int32" + }, "type": { "type": "string" }, @@ -11520,22 +13825,22 @@ "properties": { "publicCertificatePEMString": { "type": "string", - "description": "Required. Public key certificate (PEM format)" + "description": "Client certificate public key in PEM format, with new line characters replaced with '\\n'." } }, - "description": "Optional. A list of TLS/SSL certificates (public keys) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty list is received, SSL certificates will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'\"" + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'." }, "AclRoleUpdateRequest": { "type": "object", "properties": { "name": { "type": "string", - "description": "Optional. ACL role name", + "description": "Optional. Changes the database access role name.", "example": "ACL-role-example" }, "redisRules": { "type": "array", - "description": "Optional. List of ACL redis rules to associated with the requested ACL role", + "description": "Optional. Changes the Redis ACL rules to assign to this database access role.", "items": { "$ref": "#/components/schemas/AclRoleRedisRuleSpec" } @@ -11596,7 +13901,7 @@ "time": "2022-10-12T10:54:31Z", "originator": "example-value", "type": "Account", - "description": "example-value (example.value@redislabs.com)'s user name was changed to Example Value" + "description": "example-value (example.value@redis.com)'s user name was changed to Example Value" }, { "id": 2900348, @@ -11613,7 +13918,7 @@ "properties": { "cidrs": { "type": "array", - "description": "Optional. List of attachment CIDRs", + "description": "Optional. List of transit gateway attachment CIDRs.", "example": [ "10.10.10.0/24", "10.10.20.0/24" @@ -11629,6 +13934,37 @@ }, "description": "Transit Gateway update attachment cidr/s request message" }, + "AccountSessionLogEntry": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + }, + "userAgent": { + "type": "string" + }, + "ipAddress": { + "type": "string" + }, + "userRole": { + "type": "string" + }, + "type": { + "type": "string" + }, + "action": { + "type": "string" + } + }, + "description": "Account session log entry" + }, "AccountUser": { "type": "object", "properties": { @@ -11674,6 +14010,51 @@ } } }, + "ResourceTag": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "description": "Optional. A list of resource tags to apply to the subscription. (max. 30 tags)." + }, + "CustomerManagedKeyAccessDetails": { + "type": "object", + "properties": { + "redisServiceAccount": { + "type": "string" + }, + "googlePredefinedRoles": { + "type": "array", + "items": { + "type": "string" + } + }, + "googleCustomPermissions": { + "type": "array", + "items": { + "type": "string" + } + }, + "redisIamRole": { + "type": "string" + }, + "requiredKeyPolicyStatements": { + "type": "object" + }, + "deletionGracePeriodOptions": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "description": "Configuration regarding customer managed persistent storage encryption" + }, "SubscriptionMaintenanceWindowsSpec": { "required": [ "mode" @@ -11682,7 +14063,7 @@ "properties": { "mode": { "type": "string", - "description": "Required. Maintenance window mode: either 'manual' or 'automatic'. Must provide windows property if manual. Default: 'automatic'", + "description": "Maintenance window mode: either 'manual' or 'automatic'. Must provide 'windows' if manual.", "example": "manual", "enum": [ "manual", @@ -11691,7 +14072,7 @@ }, "windows": { "type": "array", - "description": "Maintenance window specifications if mode is set to 'manual'. Up to 7 windows can be provided.", + "description": "Maintenance window timeframes if mode is set to 'manual'. Up to 7 maintenance windows can be provided.", "items": { "$ref": "#/components/schemas/MaintenanceWindowSpec" } @@ -11737,10 +14118,50 @@ "properties": { "publicCertificatePEMString": { "type": "string", - "description": "A list of TLS/SSL certificates (public keys) with new line characters replaced by \\n" + "description": "An X.509 PEM (base64) encoded server certificate with new line characters replaced by '\\n'." + } + }, + "description": "Database certificate" + }, + "AccountSessionLogEntries": { + "type": "object", + "properties": { + "entries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AccountSessionLogEntry" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + }, + "Tag": { + "required": [ + "key", + "value" + ], + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Tag key", + "example": "environment" + }, + "value": { + "type": "string", + "description": "Tag value", + "example": "production" } }, - "description": "Database certificate" + "description": "Tag filter for cost report" }, "AccountSubscriptions": { "type": "object", @@ -11769,6 +14190,7 @@ "status": "active", "deploymentType": "single-region", "paymentMethodId": 123, + "publicEndpointAccess": true, "memoryStorage": "ram", "numberOfDatabases": 6, "paymentMethodType": "credit-card", @@ -11787,6 +14209,7 @@ "cloudDetails": [ { "provider": "AWS", + "awsAccountId": "550680565604", "cloudAccountId": 1666, "totalSizeInGb": 0.0272, "regions": [ @@ -11817,13 +14240,13 @@ "properties": { "name": { "type": "string", - "description": "Name of database" + "description": "Database name." }, "localThroughputMeasurement": { "$ref": "#/components/schemas/LocalThroughput" } }, - "description": "List of databases with local throughput for the new region" + "description": "List of databases in the subscription with local throughput details. Default: 1000 read and write ops/sec for each database" }, "VpcPeeringCreateAwsRequest": { "required": [ @@ -11838,34 +14261,34 @@ }, "region": { "type": "string", - "description": "Deployment region as defined by cloud provider", + "description": "Deployment region as defined by the cloud provider.", "example": "us-east-1" }, "awsAccountId": { "type": "string", - "description": "AWS Account uid", + "description": "AWS Account ID.", "example": "" }, "vpcId": { "type": "string", - "description": "VPC uid", + "description": "VPC ID.", "example": "" }, "vpcCidr": { "type": "string", - "description": "Optional. VPC CIDR", + "description": "Optional. VPC CIDR.", "example": "<10.10.10.0/24>" }, "vpcCidrs": { "type": "array", - "description": "Optional. List of VPC CIDRs", + "description": "Optional. List of VPC CIDRs.", "example": [ "<10.10.10.0/24>", "<10.10.20.0/24>" ], "items": { "type": "string", - "description": "Optional. List of VPC CIDRs", + "description": "Optional. List of VPC CIDRs.", "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" } }, @@ -11891,14 +14314,14 @@ }, "name": { "type": "string", - "description": "Optional. Database name (Database name must be up to 40 characters long, include only letters, digits, or hyphen ('-'), start with a letter, and end with a letter or digit)", + "description": "Optional. Updated database name.", "example": "Redis-Essentials-database-example" }, "memoryLimitInGb": { "minimum": 0.1, "exclusiveMinimum": false, "type": "number", - "description": "Deprecated - Optional. Total memory including replication and other overhead. Supported only for 'Pay-As-You-Go' subscriptions", + "description": "(Pay-as-you-go subscriptions only) Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", "format": "double", "example": 1, "deprecated": true @@ -11907,18 +14330,18 @@ "minimum": 0.1, "exclusiveMinimum": false, "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this specific database is in GB. You can not set both datasetSizeInGb and totalMemoryInGb. if ‘replication’ is true, the database’s total memory will be twice as large as the datasetSizeInGb.if ‘replication’ is false, the database’s total memory of the database will be the datasetSizeInGb value.", + "description": "(Pay-as-you-go subscriptions only) Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", "format": "double", "example": 1 }, "supportOSSClusterApi": { "type": "boolean", - "description": "Optional. Support Redis open-source (OSS) Cluster API. Supported only for 'Pay-As-You-Go' subscriptions", + "description": "(Pay-as-you-go subscriptions only) Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api).", "example": true }, "respVersion": { "type": "string", - "description": "Optional. RESP version must be compatible with Redis version.", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", "example": "resp3", "enum": [ "resp2", @@ -11927,23 +14350,23 @@ }, "useExternalEndpointForOSSClusterApi": { "type": "boolean", - "description": "Optional. Should use external endpoint for open-source (OSS) Cluster API. Can only be enabled if OSS Cluster API support is enabled. Supported only for 'Pay-As-You-Go' subscriptions", + "description": "(Pay-as-you-go subscriptions only) Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", "example": true }, "enableDatabaseClustering": { "type": "boolean", - "description": "Optional. Distributes database data to different cloud instances. Default: 'false'. Supported only for 'Pay-As-You-Go' subscriptions", + "description": "(Pay-as-you-go subscriptions only) Optional. Distributes database data to different cloud instances.", "example": false }, "numberOfShards": { "type": "integer", - "description": "Optional. Specifies the number of master shards. Supported only for 'Pay-As-You-Go' subscriptions", + "description": "(Pay-as-you-go subscriptions only) Optional. Changes the number of master shards.", "format": "int32", "example": 2 }, "dataPersistence": { "type": "string", - "description": "Optional. Rate of database data persistence (in persistent storage)", + "description": "Optional. Type and rate of data persistence in persistent storage. Use GET /fixed/plans/{planId} to see if your plan supports data persistence.", "enum": [ "none", "aof-every-1-second", @@ -11955,7 +14378,7 @@ }, "dataEvictionPolicy": { "type": "string", - "description": "Optional. Data items eviction method", + "description": "Optional. Turns database replication on or off.", "enum": [ "allkeys-lru", "allkeys-lfu", @@ -11969,28 +14392,28 @@ }, "replication": { "type": "boolean", - "description": "Optional. Databases replication" + "description": "Optional. Sets database replication. Use GET /fixed/plans/{planId} to see if your plan supports database replication." }, "periodicBackupPath": { "type": "string", - "description": "Optional. If specified, automatic backups will be every 24 hours or database will be able to perform immediate backups to this path. If empty string is received, backup path will be removed. Optional.", + "description": "Optional. Changes the backup location path. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. Use GET /fixed/plans/{planId} to see if your plan supports database backups. If set to an empty string, the backup path will be removed.", "example": "s3://" }, "sourceIps": { "type": "array", - "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. example value: '['192.168.10.0/32', '192.168.12.0/24']'", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", "items": { "type": "string", - "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. example value: '['192.168.10.0/32', '192.168.12.0/24']'" + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" } }, "replicaOf": { "type": "array", - "description": "Deprecated - Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] ).", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] ).", "deprecated": true, "items": { "type": "string", - "description": "Deprecated - Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] )." + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] )." } }, "replica": { @@ -11998,39 +14421,39 @@ }, "regexRules": { "type": "array", - "description": "Optional. Shard regex rules. Relevant only for a sharded database. Supported only for 'Pay-As-You-Go' subscriptions", + "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'.", "items": { "type": "string", - "description": "Optional. Shard regex rules. Relevant only for a sharded database. Supported only for 'Pay-As-You-Go' subscriptions" + "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'." } }, "clientSslCertificate": { "type": "string", - "description": "Deprecated - Optional. A string containing TLS/SSL certificate (public key) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty string is received, SSL certificate will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'\"", + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", "deprecated": true }, "clientTlsCertificates": { "type": "array", - "description": "Optional. A list of TLS/SSL certificates (public keys) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty list is received, SSL certificates will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'\"", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", "items": { "$ref": "#/components/schemas/DatabaseCertificateSpec" } }, "enableTls": { "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections (mTLS with valid clientSslCertificate, regular TLS when the clientSslCertificate is not provided)." + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." }, "password": { "type": "string", - "description": "Optional. Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated" + "description": "Optional. Changes the password used to access the database with the 'default' user." }, "enableDefaultUser": { "type": "boolean", - "description": "Optional. When 'true', enables connecting to the database with the 'default' user. Default: 'true'" + "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database." }, "alerts": { "type": "array", - "description": "Optional. Redis database alerts", + "description": "Optional. Changes Redis database alert details.", "items": { "$ref": "#/components/schemas/DatabaseAlertSpec" } @@ -12055,7 +14478,7 @@ "properties": { "name": { "type": "string", - "description": "Required. Cloud account display name", + "description": "Cloud account display name.", "example": "My new Cloud Account" }, "provider": { @@ -12069,27 +14492,27 @@ }, "accessKeyId": { "type": "string", - "description": "Required. Cloud provider access key", + "description": "Cloud provider access key.", "example": "****" }, "accessSecretKey": { "type": "string", - "description": "Required. Cloud provider secret key", + "description": "Cloud provider secret key.", "example": "****" }, "consoleUsername": { "type": "string", - "description": "Required. Cloud provider management console username", + "description": "Cloud provider management console username.", "example": "me@mycompany.com" }, "consolePassword": { "type": "string", - "description": "Required. Cloud provider management console password", + "description": "Cloud provider management console password.", "example": "****" }, "signInLoginUrl": { "type": "string", - "description": "Required. Cloud provider management console login URL", + "description": "Cloud provider management console login URL.", "example": "https://.signin.aws.amazon.com/console" }, "commandType": { @@ -12165,14 +14588,14 @@ }, "regions": { "type": "array", - "description": "List of names of regions to delete", + "description": "The names of the regions to delete.", "items": { "$ref": "#/components/schemas/ActiveActiveRegionToDelete" } }, "dryRun": { "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Default: 'false'", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, deleting any resources required by the plan. When 'true': creates a read-only deployment plan and does not delete or modify any resources. Default: 'false'", "example": false }, "commandType": { @@ -12222,18 +14645,18 @@ "properties": { "ruleName": { "type": "string", - "description": "Required. ACL redis rule name", + "description": "The name of a Redis ACL rule to assign to the role. Use 'GET /acl/redisRules' to get a list of available rules for your account.", "example": "Read-Only" }, "databases": { "type": "array", - "description": "Required. List of databaseId and subscriptionId pairs associated with the requested ACL role", + "description": "A list of databases where the specified rule applies for this role.", "items": { "$ref": "#/components/schemas/AclRoleDatabaseSpec" } } }, - "description": "Optional. List of ACL redis rules to associated with the requested ACL role" + "description": "Optional. Changes the Redis ACL rules to assign to this database access role." }, "ActiveActiveSubscriptionRegions": { "type": "object", @@ -12517,7 +14940,7 @@ "properties": { "name": { "type": "string", - "description": "Required. Alert name", + "description": "Alert type. Available options depend on Plan type. See [Configure alerts](https://redis.io/docs/latest/operate/rc/databases/monitor-performance/#configure-metric-alerts) for more information.", "example": "dataset-size", "enum": [ "dataset-size", @@ -12532,33 +14955,34 @@ }, "value": { "type": "integer", - "description": "Required. Alert value", + "description": "Value over which an alert will be sent. Default values and range depend on the alert type. See [Configure alerts](https://redis.io/docs/latest/operate/rc/databases/monitor-performance/#configure-metric-alerts) for more information.", "format": "int32", "example": 80 } }, - "description": "Optional. Redis database alerts" + "description": "Optional. Changes Redis database alert details." }, "LocalThroughput": { "type": "object", "properties": { "region": { - "type": "string" + "type": "string", + "description": "Specify one of the selected cloud provider regions for the subscription." }, "writeOperationsPerSecond": { "type": "integer", - "description": "Default: 1000 ops/sec", + "description": "Write operations for this region per second. Default: 1000 ops/sec", "format": "int64", "example": 1000 }, "readOperationsPerSecond": { "type": "integer", - "description": "Default: 1000 ops/sec", + "description": "Read operations for this region per second. Default: 1000 ops/sec", "format": "int64", "example": 1000 } }, - "description": "Local throughput for the regional instance of an Active-Active database" + "description": "Optional. Expected read and write throughput for this region." }, "PscEndpointUpdateRequest": { "required": [ @@ -12585,27 +15009,27 @@ }, "gcpProjectId": { "type": "string", - "description": "The google cloud project ID", + "description": "Google Cloud project ID.", "example": "my-gcp-project" }, "gcpVpcName": { "type": "string", - "description": "Name of the VPC that hosts your application", + "description": "Name of the Google Cloud VPC that hosts your application.", "example": "my-vpc" }, "gcpVpcSubnetName": { "type": "string", - "description": "Name of your VPC's subnet of IP address ranges", + "description": "Name of your VPC's subnet of IP address ranges.", "example": "my-vpc-subnet" }, "endpointConnectionName": { "type": "string", - "description": "Prefix used to update PSC endpoints in the consumer application VPC, so endpoint names appear in Google Cloud as endpoint name prefix + endpoint number", + "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", "example": "my-endpoint-connection" }, "action": { "type": "string", - "description": "The action to perform on the endpoint", + "description": "Action to perform on the endpoint.", "enum": [ "accept", "reject" @@ -12618,6 +15042,47 @@ }, "description": "Private Service Connect endpoint update request" }, + "DatabaseSlowLogEntries": { + "type": "object", + "properties": { + "entries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DatabaseSlowLogEntry" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + }, + "DatabaseSlowLogEntry": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "startTime": { + "type": "string", + "format": "date-time" + }, + "duration": { + "type": "integer", + "format": "int32" + }, + "arguments": { + "type": "string" + } + }, + "description": "Database slowlog entry" + }, "ActiveActivePscEndpointUpdateRequest": { "required": [ "endpointId", @@ -12651,27 +15116,27 @@ }, "gcpProjectId": { "type": "string", - "description": "The google cloud project ID", + "description": "Google Cloud project ID.", "example": "my-gcp-project" }, "gcpVpcName": { "type": "string", - "description": "Name of the VPC that hosts your application", + "description": "Name of the Google Cloud VPC that hosts your application.", "example": "my-vpc" }, "gcpVpcSubnetName": { "type": "string", - "description": "Name of your VPC's subnet of IP address ranges", + "description": "Name of your VPC's subnet of IP address ranges.", "example": "my-vpc-subnet" }, "endpointConnectionName": { "type": "string", - "description": "Prefix used to update PSC endpoints in the consumer application VPC, so endpoint names appear in Google Cloud as endpoint name prefix + endpoint number", + "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", "example": "my-endpoint-connection" }, "action": { "type": "string", - "description": "The action to perform on the endpoint", + "description": "Action to perform on the endpoint.", "enum": [ "accept", "reject" @@ -12888,12 +15353,12 @@ "properties": { "key": { "type": "string", - "description": "Required. Database tag key", + "description": "Database tag key.", "example": "environment" }, "value": { "type": "string", - "description": "Required. Database tag value", + "description": "Database tag value.", "example": "production" }, "commandType": { @@ -12903,6 +15368,17 @@ }, "description": "Database tag" }, + "BdbAvailableVersionsResponse": { + "type": "object", + "properties": { + "targets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TargetVersion" + } + } + } + }, "SubscriptionSpec": { "required": [ "regions" @@ -12920,19 +15396,26 @@ }, "cloudAccountId": { "type": "integer", - "description": "Optional. Cloud account identifier. Default: Redis internal cloud account (using Cloud Account Id = 1 implies using Redis internal cloud account). Note that a GCP subscription can be created only with Redis internal cloud account.", + "description": "Optional. Cloud account identifier. Default: Redis internal cloud account (Cloud Account ID = 1). Use GET /cloud-accounts to list all available cloud accounts. Note: A subscription on Google Cloud can be created only with Redis internal cloud account.", "format": "int32", "example": 1 }, "regions": { "type": "array", - "description": "Required. Cloud networking details, per region (single region or multiple regions for Active-Active cluster only)", + "description": "The cloud provider region or list of regions (Active-Active only) and networking details.", "items": { "$ref": "#/components/schemas/SubscriptionRegionSpec" } + }, + "resourceTags": { + "type": "array", + "description": "Optional. A list of resource tags to apply to the subscription. (max. 30 tags).", + "items": { + "$ref": "#/components/schemas/ResourceTag" + } } }, - "description": "Required. Cloud hosting & networking details" + "description": "Cloud provider, region, and networking details." }, "FixedDatabaseBackupRequest": { "type": "object", @@ -12949,7 +15432,7 @@ }, "adhocBackupPath": { "type": "string", - "description": "Optional. Path for ad-hoc backup.", + "description": "Optional. Manually backs up data to this location, instead of the set 'periodicBackupPath' location.", "example": "s3://" }, "commandType": { @@ -12967,20 +15450,20 @@ "properties": { "name": { "type": "string", - "description": "Required. Redis module Id" + "description": "Redis advanced capability name. Use GET /database-modules for a list of available capabilities." }, "parameters": { "type": "object", "additionalProperties": { "type": "object", - "description": "Optional. Redis database module parameters (name and value), as relevant to the specific module (see modules parameters specification) ", + "description": "Optional. Redis advanced capability parameters. Use GET /database-modules to get the available capabilities and their parameters.", "example": {} }, - "description": "Optional. Redis database module parameters (name and value), as relevant to the specific module (see modules parameters specification) ", + "description": "Optional. Redis advanced capability parameters. Use GET /database-modules to get the available capabilities and their parameters.", "example": {} } }, - "description": "Optional. Redis modules to be provisioned in the database" + "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default." }, "FixedSubscriptionCreateRequest": { "required": [ @@ -12991,17 +15474,17 @@ "properties": { "name": { "type": "string", - "description": "Essentials subscription name", + "description": "New Essentials subscription name.", "example": "My new subscription" }, "planId": { "type": "integer", - "description": "A predefined Essentials plan Id (see lookup API '/fixed/plans'). The plan defines the billing, deployment and configuration for the created subscription based on specific plan details", + "description": "An Essentials plan ID. The plan describes the dataset size, cloud provider and region, and available database configuration options. Use GET /fixed/plans to get a list of available options.", "format": "int32" }, "paymentMethod": { "type": "string", - "description": "Optional. The payment method for the requested subscription. If ‘credit-card’ is specified, ‘paymentMethodId’ must be defined. Default: 'credit-card'", + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’, ‘paymentMethodId’ must be defined. Default: 'credit-card'", "enum": [ "credit-card", "marketplace" @@ -13009,7 +15492,7 @@ }, "paymentMethodId": { "type": "integer", - "description": "Optional. A valid payment method (credit card, wire transfer etc) pre-defined in the current account. It will be billed for any charges related to the created subscription.", + "description": "Optional. A valid payment method ID for this account. Use GET /payment-methods to get a list of all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required for all other account types.", "format": "int32" }, "commandType": { @@ -13020,23 +15503,32 @@ "description": "Essentials subscription create request" }, "SubscriptionRegionNetworkingSpec": { - "required": [ - "deploymentCIDR" - ], "type": "object", "properties": { "deploymentCIDR": { "type": "string", - "description": "Optional. Deployment CIDR mask. \nDefault: If using Redis internal cloud account, 192.168.0.0/24", + "description": "Optional. Deployment CIDR mask. Must be a valid CIDR format with a range of 256 IP addresses. Default for single-region subscriptions: If using Redis internal cloud account, 192.168.0.0/24", "example": "10.0.0.0/24" }, "vpcId": { "type": "string", - "description": "Optional. Either an existing VPC Id (already exists in the specific region) or create a new VPC (if no VPC is specified). VPC Identifier must be in a valid format (for example: 'vpc-0125be68a4625884ad') and existing within the hosting account", + "description": "Optional. Enter a VPC identifier that exists in the hosted AWS account. Creates a new VPC if not set. VPC Identifier must be in a valid format (for example: 'vpc-0125be68a4625884ad') and must exist within the hosting account.", "example": "" + }, + "subnetIds": { + "type": "array", + "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", + "items": { + "type": "string", + "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account." + } + }, + "securityGroupId": { + "type": "string", + "description": "Optional. Enter a security group identifier that exists in the hosted AWS account. Security group Identifier must be in a valid format (for example: 'sg-0125be68a4625884ad') and must exist within the hosting account." } }, - "description": "Optional. Cloud networking details, per region (single region or multiple regions for Active-Active cluster only). Default: if using Redis internal cloud account, 192.168.0.0/24" + "description": "Optional. Cloud networking details, per region. Required if creating an Active-Active subscription." }, "DatabaseTagsUpdateRequest": { "required": [ @@ -13056,7 +15548,7 @@ }, "tags": { "type": "array", - "description": "Required. database tags", + "description": "List of database tags.", "items": { "$ref": "#/components/schemas/tag" } @@ -13097,6 +15589,34 @@ ] } }, + "FixedDatabaseUpgradeRedisVersionRequest": { + "required": [ + "targetRedisVersion" + ], + "type": "object", + "properties": { + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "targetRedisVersion": { + "type": "string", + "description": "The target Redis version the database will be upgraded to. Use GET /subscriptions/redis-versions to get a list of available Redis versions.", + "example": "7.4" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Upgrades the specified Essentials database to a later Redis version." + }, "CrdbUpdatePropertiesRequest": { "type": "object", "properties": { @@ -13112,19 +15632,19 @@ }, "name": { "type": "string", - "description": "Optional. Database name (Database name must be up to 40 characters long, include only letters, digits, or hyphen ('-'), start with a letter, and end with a letter or digit)", + "description": "Optional. Updated database name. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", "example": "Redis-database-example" }, "dryRun": { "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Default: 'false'", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, updating any resources required by the plan. When 'true': creates a read-only deployment plan and does not update any resources. Default: 'false'", "example": false }, "memoryLimitInGb": { "minimum": 0.1, "exclusiveMinimum": false, "type": "number", - "description": "Deprecated - Optional. Total memory including replication and other overhead", + "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", "format": "double", "example": 1, "deprecated": true @@ -13133,38 +15653,38 @@ "minimum": 0.1, "exclusiveMinimum": false, "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this specific database is in GB. You can not set both datasetSizeInGb and totalMemoryInGb. if ‘replication’ is true, the database’s total memory will be twice as large as the datasetSizeInGb.if ‘replication’ is false, the database’s total memory of the database will be the datasetSizeInGb value.", + "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", "format": "double", "example": 1 }, "supportOSSClusterApi": { "type": "boolean", - "description": "Optional. Support Redis open-source (OSS) Cluster API" + "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'" }, "useExternalEndpointForOSSClusterApi": { "type": "boolean", - "description": "Optional. Should use external endpoint for open-source (OSS) Cluster API. Can only be enabled if OSS Cluster API support is enabled. Default: 'false'", + "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'.", "example": false }, "clientSslCertificate": { "type": "string", - "description": "Deprecated - Optional. A string containing TLS/SSL certificate (public key) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty string is received, SSL certificate will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'\"", + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", "deprecated": true }, "clientTlsCertificates": { "type": "array", - "description": "Optional. A list of TLS/SSL certificates (public keys) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty list is received, SSL certificates will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'\"", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", "items": { "$ref": "#/components/schemas/DatabaseCertificateSpec" } }, "enableTls": { "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections (mTLS with valid clientSslCertificate, regular TLS when the clientSslCertificate is not provided)" + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." }, "globalDataPersistence": { "type": "string", - "description": "Optional. Global rate of database data persistence (in persistent storage) of regions that dont override global settings. Default: 'none'", + "description": "Optional. Type and rate of data persistence in all regions that don't set local 'dataPersistence'.", "enum": [ "none", "aof-every-1-second", @@ -13176,33 +15696,37 @@ }, "globalPassword": { "type": "string", - "description": "Optional. Password to access the database of regions that dont override global settings." + "description": "Optional. Changes the password used to access the database in all regions that don't set a local 'password'." + }, + "globalEnableDefaultUser": { + "type": "boolean", + "description": "Optional. When 'true', allows connecting to the database with the 'default' user in all regions that don't set local 'enableDefaultUser'. When 'false', only defined access control users can connect to the database." }, "globalSourceIp": { "type": "array", - "description": "Optional. List of source IP addresses or subnet masks of regions that dont override global settings. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] )", + "description": "Optional. List of source IP addresses or subnet masks to whitelist in all regions that don't set local 'sourceIp' settings. If set, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: ['192.168.10.0/32', '192.168.12.0/24']", "items": { "type": "string", - "description": "Optional. List of source IP addresses or subnet masks of regions that dont override global settings. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] )" + "description": "Optional. List of source IP addresses or subnet masks to whitelist in all regions that don't set local 'sourceIp' settings. If set, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: ['192.168.10.0/32', '192.168.12.0/24']" } }, "globalAlerts": { "type": "array", - "description": "Optional. Redis database alerts of regions that don't override global settings", + "description": "Optional. Redis database alert settings in all regions that don't set local 'alerts'.", "items": { "$ref": "#/components/schemas/DatabaseAlertSpec" } }, "regions": { "type": "array", - "description": "Optional. List or regions to update", + "description": "Optional. A list of regions and local settings to update.", "items": { "$ref": "#/components/schemas/LocalRegionProperties" } }, "dataEvictionPolicy": { "type": "string", - "description": "Optional. Data items eviction method.", + "description": "Optional. Data eviction policy.", "enum": [ "allkeys-lru", "allkeys-lfu", @@ -13230,12 +15754,13 @@ "properties": { "name": { "type": "string", - "description": "Required. ACL redis rule name", + "description": "Redis ACL rule name.", "example": "ACL-rule-example" }, "redisRule": { "type": "string", - "description": "Required. ACL redis rule pattern" + "description": "Redis ACL rule pattern. See [ACL syntax](https://redis.io/docs/latest/operate/rc/security/access-control/data-access-control/configure-acls/#define-permissions-with-acl-syntax) to learn how to define rules.", + "example": "+set allkeys allchannels" }, "commandType": { "type": "string", @@ -13251,7 +15776,7 @@ "type": "string" } }, - "description": "Optional. List of attachment CIDRs", + "description": "Optional. List of transit gateway attachment CIDRs.", "example": [ "10.10.10.0/24", "10.10.20.0/24" @@ -13265,7 +15790,7 @@ "properties": { "region": { "type": "string", - "description": "Required. Deployment region as defined by cloud provider", + "description": "Deployment region as defined by the cloud provider.", "example": "us-east-1" }, "multipleAvailabilityZones": { @@ -13275,17 +15800,17 @@ }, "preferredAvailabilityZones": { "type": "array", - "description": "Optional. Availability zones deployment preferences (for the selected provider & region). If ‘multipleAvailabilityZones’ is set to 'true', you must specify three availability zones. In AWS Redis internal cloud account, set the zone IDs (for example: [\"use-az2\", \"use-az3\", \"use-az5\"]).", + "description": "Optional. List the zone ID(s) for your preferred availability zone(s) for the cloud provider and region. If ‘multipleAvailabilityZones’ is set to 'true', you must list three availability zones. Otherwise, list one availability zone.", "items": { "type": "string", - "description": "Optional. Availability zones deployment preferences (for the selected provider & region). If ‘multipleAvailabilityZones’ is set to 'true', you must specify three availability zones. In AWS Redis internal cloud account, set the zone IDs (for example: [\"use-az2\", \"use-az3\", \"use-az5\"])." + "description": "Optional. List the zone ID(s) for your preferred availability zone(s) for the cloud provider and region. If ‘multipleAvailabilityZones’ is set to 'true', you must list three availability zones. Otherwise, list one availability zone." } }, "networking": { "$ref": "#/components/schemas/SubscriptionRegionNetworkingSpec" } }, - "description": "Required. Cloud networking details, per region (single region or multiple regions for Active-Active cluster only)" + "description": "The cloud provider region or list of regions (Active-Active only) and networking details." }, "VpcPeeringCreateGcpRequest": { "required": [ @@ -13299,12 +15824,12 @@ }, "vpcProjectUid": { "type": "string", - "description": "VPC project uid", + "description": "VPC project ID.", "example": "" }, "vpcNetworkName": { "type": "string", - "description": "VPC network name", + "description": "VPC network name.", "example": "" }, "commandType": { @@ -13327,17 +15852,17 @@ }, "dryRun": { "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Default: 'true'", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan and does not create any resources. Default: 'false'", "example": false }, "name": { "type": "string", - "description": "Required. Database name (Database name must be up to 40 characters long, include only letters, digits, or hyphen ('-'), start with a letter, and end with a letter or digit)", + "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", "example": "Redis-database-example" }, "protocol": { "type": "string", - "description": "Optional. Database protocol. Default: 'redis'", + "description": "Optional. Database protocol. Only set to 'memcached' if you have a legacy application. Default: 'redis'", "enum": [ "redis", "memcached" @@ -13345,7 +15870,7 @@ }, "port": { "type": "integer", - "description": "Optional. TCP port on which the database is available (10000-19999). Generated automatically if omitted", + "description": "Optional. TCP port on which the database is available (10000-19999). Generated automatically if not set.", "format": "int32", "example": 10000 }, @@ -13353,7 +15878,7 @@ "minimum": 0.1, "exclusiveMinimum": false, "type": "number", - "description": "Deprecated - Optional. Total memory including replication and other overhead", + "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", "format": "double", "example": 1, "deprecated": true @@ -13362,13 +15887,18 @@ "minimum": 0.1, "exclusiveMinimum": false, "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this specific database is in GB. You can not set both datasetSizeInGb and totalMemoryInGb. if 'replication' is true, the database’s total memory will be twice as large as the datasetSizeInGb.if 'replication' is false, the database’s total memory of the database will be the datasetSizeInGb value.", + "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", "format": "double", "example": 1 }, + "redisVersion": { + "type": "string", + "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version (available in 'GET /subscriptions/redis-versions')", + "example": "7.2" + }, "respVersion": { "type": "string", - "description": "Optional. RESP version must be compatible with Redis version.", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", "example": "resp3", "enum": [ "resp2", @@ -13377,17 +15907,17 @@ }, "supportOSSClusterApi": { "type": "boolean", - "description": "Optional. Support Redis open-source (OSS) Cluster API. Default: 'false'", + "description": "Optional. Support [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", "example": false }, "useExternalEndpointForOSSClusterApi": { "type": "boolean", - "description": "Optional. Should use external endpoint for open-source (OSS) Cluster API. Can only be enabled if OSS Cluster API support is enabled'. Default: 'false'", + "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", "example": false }, "dataPersistence": { "type": "string", - "description": "Optional. Rate of database data persistence (in persistent storage). Default: 'none'", + "description": "Optional. Type and rate of data persistence in persistent storage. Default: 'none'", "enum": [ "none", "aof-every-1-second", @@ -13399,7 +15929,7 @@ }, "dataEvictionPolicy": { "type": "string", - "description": "Optional. Data items eviction method. Default: 'volatile-lru'", + "description": "Optional. Data eviction policy. Default: 'volatile-lru'", "enum": [ "allkeys-lru", "allkeys-lfu", @@ -13413,15 +15943,15 @@ }, "replication": { "type": "boolean", - "description": "Optional. Databases replication. Default: 'true'" + "description": "Optional. Sets database replication. Default: 'true'" }, "replicaOf": { "type": "array", - "description": "Deprecated - Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380']).", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", "deprecated": true, "items": { "type": "string", - "description": "Deprecated - Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'])." + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." } }, "replica": { @@ -13432,19 +15962,26 @@ }, "localThroughputMeasurement": { "type": "array", - "description": "Optional. Throughput measurement for an active-active subscription", + "description": "Optional. Expected throughput per region for an Active-Active database. Default: 1000 read and write ops/sec for each region", "items": { "$ref": "#/components/schemas/LocalThroughput" } }, "averageItemSizeInBytes": { "type": "integer", - "description": "Optional. Relevant only to ram-and-flash subscriptions. Estimated average size (measured in bytes) of the items stored in the database, Default: 1000", - "format": "int64" + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. Estimated average size in bytes of the items stored in the database. Default: 1000", + "format": "int64", + "deprecated": true + }, + "ramPercentage": { + "type": "integer", + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50). Default: 20", + "format": "int32", + "example": 20 }, "periodicBackupPath": { "type": "string", - "description": "Deprecated - If specified, automatic backups will be every 24 hours or database will be able to perform immediate backups to this path. If empty string is received, backup path will be removed. Optional.", + "description": "Optional. The path to a backup storage location. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time.", "example": "s3://", "deprecated": true }, @@ -13453,57 +15990,57 @@ }, "sourceIp": { "type": "array", - "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. example value: '['192.168.10.0/32', '192.168.12.0/24']'", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", "items": { "type": "string", - "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. example value: '['192.168.10.0/32', '192.168.12.0/24']'" + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" } }, "clientSslCertificate": { "type": "string", - "description": "Deprecated - Optional. A string containing TLS/SSL certificate (public key) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty string is received, SSL certificate will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'\"", + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections. Default: 'null'", "deprecated": true }, "clientTlsCertificates": { "type": "array", - "description": "Optional. A list of TLS/SSL certificates (public keys) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty list is received, SSL certificates will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'\"", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections.", "items": { "$ref": "#/components/schemas/DatabaseCertificateSpec" } }, "enableTls": { "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections (mTLS with valid clientSslCertificate, regular TLS when the clientSslCertificate is not provided. Default: 'false'" + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. Default: 'false'" }, "password": { "type": "string", - "description": "Optional. Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated. Can only be set if Database Protocol is REDIS" + "description": "Optional. Password to access the database. If not set, a random 32-character alphanumeric password will be automatically generated. Can only be set if 'protocol' is 'redis'." }, "saslUsername": { "type": "string", - "description": "Optional. Memcached (SASL) Username to access the database. If omitted, the username will be set to a 'mc-' prefix followed by a random 5 character long alphanumeric. Can only be set if Database Protocol is MEMCACHED" + "description": "Optional. Memcached (SASL) Username to access the database. If not set, the username will be set to a 'mc-' prefix followed by a random 5 character long alphanumeric. Can only be set if 'protocol' is 'memcached'." }, "saslPassword": { "type": "string", - "description": "Optional. Memcached (SASL) Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated. Can only be set if Database Protocol is MEMCACHED" + "description": "Optional. Memcached (SASL) Password to access the database. If not set, a random 32 character long alphanumeric password will be automatically generated. Can only be set if 'protocol' is 'memcached'." }, "alerts": { "type": "array", - "description": "Optional. Redis database alerts", + "description": "Optional. Redis database alert details.", "items": { "$ref": "#/components/schemas/DatabaseAlertSpec" } }, "modules": { "type": "array", - "description": "Optional. Redis modules to be provisioned in the database", + "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", "items": { "$ref": "#/components/schemas/DatabaseModuleSpec" } }, "shardingType": { "type": "string", - "description": "Optional. Database [Hashing policy](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#manage-the-hashing-policy). \nDefault depends on your account creation date. See [Hashing policy](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#manage-the-hashing-policy) for more information.", + "description": "Optional. Database [Hashing policy](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#manage-the-hashing-policy).", "enum": [ "default-regex-rules", "custom-regex-rules", @@ -13516,7 +16053,7 @@ }, "queryPerformanceFactor": { "type": "string", - "description": "Optional. The query performance factor adds extra compute power specifically for search and query. For databases with search and query, you can increase your search queries per second by the selected factor.", + "description": "Optional. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", "example": "2x" } }, @@ -13525,6 +16062,10 @@ "Region": { "type": "object", "properties": { + "id": { + "type": "integer", + "format": "int32" + }, "name": { "type": "string" }, @@ -13559,13 +16100,13 @@ }, "role": { "type": "string", - "description": "Optional. ACL role name", - "example": "Redis-role-example" + "description": "Optional. Changes the ACL role assigned to the user. Use GET '/acl/roles' to get a list of database access roles.", + "example": "ACL-role-example" }, "password": { "type": "string", - "description": "Optional. ACL User's password.", - "example": "some-random-password" + "description": "Optional. Changes the user's database password.", + "example": "ab123AB$%^" }, "commandType": { "type": "string", @@ -13609,15 +16150,21 @@ "SUBSCRIPTION_IN_USE", "SUBSCRIPTION_CA_PROVIDER_MISMATCH", "SUBSCRIPTION_NETWORKING_MISSING", - "SUBSCRIPTION_NETWORKING_CIDR_MISSING", + "NETWORKING_CIDR_MISSING", "SUBSCRIPTION_INVALID_CIDR", + "NETWORKING_SECURITY_GROUP_MISSING", + "NETWORKING_SUBNET_IDS_MISSING", + "NETWORKING_VPC_ID_MISSING", + "NETWORKING_CIDR_IS_NOT_SUPPORTED", + "NETWORKING_VPC_WITH_SUBNETS_AND_SECURITY_GROUP_IS_NOT_SUPPORTED", + "NETWORKING_VPC_WITH_SUBNETS_AND_SECURITY_GROUP_IS_NOT_SUPPORTED_FOR_INTERNAL_CLOUD_ACCOUNT", + "INVALID_NUMBER_OF_SUBNET_IDS", "SUBSCRIPTION_PI_NOT_FOUND", "SUBSCRIPTION_INVALID_REGION_NAME", "SUBSCRIPTION_INVALID_REGION_ID", "SUBSCRIPTION_BAD_PREFERRED_AZ_SIZE", "SUBSCRIPTION_PREFERRED_AZ_INVALID_VALUE", "SUBSCRIPTION_PREFERRED_AZ_MUST_BE_DEFINED_ONCE", - "ACTIVE_ACTIVE_SUBSCRIPTION_PREFERRED_AZ_NOT_SUPPORTED", "SUBSCRIPTION_PREFERRED_AZ_IS_DISABLED", "SUBSCRIPTION_MUST_HAVE_AT_LEAST_ONE_DATABASE", "SUBSCRIPTION_REDIS_VERSION_INVALID_VALUE", @@ -13625,6 +16172,36 @@ "ACTIVE_ACTIVE_SUBSCRIPTION_PREVIEW_REDIS_VERSION_IS_NOT_SUPPORTED", "SUBSCRIPTION_GCP_ALLOW_ONLY_INTERNAL", "CLUSTER_UNDER_MAINTENANCE", + "ACTIVE_ACTIVE_SUBSCRIPTION_IS_NOT_SUPPORTED", + "RESOURCE_TAGS_EXCEEDS_MAXIMUM_COUNT", + "RESOURCE_TAG_KEY_EXCEEDS_MAXIMUM_LENGTH", + "RESOURCE_TAG_VALUE_EXCEEDS_MAXIMUM_LENGTH", + "RESOURCE_TAGS_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", + "RESOURCE_TAGS_NOT_ALLOWED", + "RESOURCE_TAGS_NAME_NOT_ALLOWED", + "RESOURCE_TAGS_EMPTY_KEY", + "RESOURCE_TAGS_DUPLICATE_KEY", + "RESOURCE_TAGS_MISSING_VALUE", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_IS_NOT_SUPPORTED", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_MISSING_USAGE_PERMISSIONS", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_MISSING_GET_KEY_PERMISSIONS", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_MISSING_GET_IAM_POLICY_PERMISSIONS", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_DISABLED_KEY", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_INVALID_KEY_NAME", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_WRONG_REGION", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_NOT_ALLOWED_WITH_CLOUD_PROVIDER_MANAGED_KEY", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_REQUIRED_FOR_EXTERNAL_CLOUD_ACCOUNT", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_NOT_PENDING", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_INVALID_NUMBER_OF_KEYS", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_REGION_NOT_REQUIRED", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_REGION_REQUIRED", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_MISSING_KEYS", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_INVALID_REGION", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_DUPLICATE_REGIONS", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_INVALID_FORMAT", + "ACTIVE_ACTIVE_CREATE_A_REGION_CUSTOMER_MANAGED_KEY_RESOURCE_NAME_SUBSCRIPTION_IS_NOT_CUSTOMER_MANAGED", + "ACTIVE_ACTIVE_CREATE_A_REGION_CUSTOMER_MANAGED_KEY_RESOURCE_NAME_IS_NOT_SET", "PLANNED_SUBSCRIPTION_INVALID_PLAN_ID", "PLANNER_TIMEOUT", "PLANNER_FAILURE", @@ -13687,6 +16264,7 @@ "DATABASE_MODULE_MUST_BE_DEFINED_ONCE", "DATABASE_MEMCACHED_CONTAINS_MODULES", "DATABASE_MEMCACHED_NOT_SUPPORT_OSS_CLUSTER_API", + "REDIS_ON_FLASH_DATABASE_MEMCACHED_PROTOCOL_IS_NOT_ALLOWED", "DATABASE_MEMCACHED_CONTAINS_REDIS_PASSWORD", "DATABASE_MEMCACHED_CONTAINS_REDIS_DEFAULT_USER", "DATABASE_MEMCACHED_SASL_USERNAME_IS_BLANK", @@ -13694,6 +16272,12 @@ "DATABASE_MEMCACHED_SASL_PASSWORD_MAX_LENGTH", "DATABASE_REDIS_FLEX_CONTAINS_MODULES", "DATABASE_AVERAGE_ITEM_SIZE_NOT_ALLOWED", + "DATABASE_RAM_PERCENTAGE_NOT_ALLOWED", + "DATABASE_RAM_PERCENTAGE_NOT_SUPPORTED", + "DATABASE_RAM_PERCENTAGE_IS_INVALID", + "DATABASE_AVERAGE_ITEM_SIZE_IS_DEPRECATED", + "DATABASE_MEMORY_LIMIT_IS_INVALID_FOR_ROF", + "DATABASE_DATASET_SIZE_IS_INVALID_FOR_ROF", "DATABASE_SIZE_SMALLER_THAN_USAGE", "DATABASE_USAGE_EXCEEDS_GLOBAL_LIMIT", "DATABASE_USAGE_EXCEEDS_LOCAL_LIMIT", @@ -13708,6 +16292,7 @@ "DATABASE_INVALID_MODULE", "DATABASE_INVALID_MODULE_PARAMETER", "DATABASE_INVALID_MODULE_PARAMETER_VALUE", + "DATABASE_EXPLICIT_MODULES_NOT_SUPPORTED_FOR_THIS_REDIS_VERSION", "DATABASE_INVALID_ALERT_VALUE", "DATABASE_SHARDING_TYPE_IS_IMMUTABLE", "DATABASE_SHARDING_TYPE_IS_NOT_SUPPORTED", @@ -13757,10 +16342,14 @@ "DATABASE_PORT_INVALID_VALUE", "DATABASE_PORT_IS_UNAVAILABLE", "DATABASE_CUSTOM_PORT_NOT_SUPPORTED", + "DATABASE_CUSTOM_PORT_NOT_UNIQUE", "DATABASE_AVERAGE_ITEM_SIZE_INVALID_VALUE", "DATABASE_REDIS_VERSION_IS_NOT_SUPPORTED", "DATABASE_REDIS_VERSION_IS_NOT_SUPPORTED_FOR_MEMCACHED", + "DATABASE_REDIS_VERSION_IS_REQUIRED", "DATABASE_REDIS_VERSION_INVALID_VALUE", + "INCOMPATIBLE_TF_PROVIDER", + "CONNECTIVITY_REQUESTS_ON_CUSTOMER_MANAGED_VPC_SUBSCRIPTION", "VPC_PEERING_NOT_ACTIVE", "VPC_PEERING_GENERAL_ERROR", "VPC_PEERING_INVALID_ACCOUNT", @@ -13843,6 +16432,10 @@ "CIDR_WHITELIST_DUPLICATE_CIDRS", "CIDR_WHITELIST_DUPLICATE_SG", "CIDR_WHITELIST_NOT_ALLOWED", + "CLIENT_PUBLIC_ACCESS_INVALID_SOURCE_IPS", + "CLIENT_PUBLIC_ACCESS_NOT_SUPPORTED", + "CLIENT_PUBLIC_ACCESS_ALREADY_SET", + "CLIENT_PUBLIC_ACCESS_ON_NON_HOSTED", "AWS_ERROR_INSTANCE_LIMIT_EXCEEDED", "AWS_ERROR_VPC_LIMIT_EXCEEDED", "AWS_ERROR_INSUFFICIENT_INSTANCE_CAPACITY", @@ -13866,7 +16459,6 @@ "ACTIVE_ACTIVE_CREATE_A_REGION_MUST_BE_DEFINED_ONCE_PER_DATABASE", "ACTIVE_ACTIVE_CREATE_A_REGION_DATABASE_RESP_VERSION_IS_NOT_SUPPORTED", "TOO_MANY_LOCAL_THROUGHPUT_MEASUREMENTS_DEFINED_FOR_SPECIFIED_ACTIVE_ACTIVE_SUBSCRIPTION", - "ACTIVE_ACTIVE_EXTERNAL_CA_NOT_SUPPORTED", "ACTIVE_ACTIVE_RAM_AND_FLASH_MEMORY_STORAGE_NOT_SUPPORTED", "ACTIVE_ACTIVE_DATABASE_MODULE_IS_NOT_SUPPORTED", "ACTIVE_ACTIVE_DATABASE_MODULES_IS_NOT_SUPPORTED", @@ -13902,6 +16494,7 @@ "ACTIVE_ACTIVE_VPC_PEERING_INVALID_AWS_ACCOUNT", "ACTIVE_ACTIVE_DATABASE_RESP_VERSION_IS_NOT_SUPPORTED", "ACTIVE_ACTIVE_DATABASE_PREVIEW_REDIS_VERSION_IS_NOT_SUPPORTED", + "ACTIVE_ACTIVE_DATABASE_UPGRADE_IS_NOT_SUPPORTED", "LOCAL_THROUGHPUT_MEASUREMENT_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", "BACKUP_REGION_NAME_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", "BACKUP_STATUS_REGION_NAME_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", @@ -13919,6 +16512,8 @@ "UPDATING_A_SINGLE_REGION_VPC_PEERING_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", "DELETING_SINGLE_REGION_VPC_PEERING_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", "GETTING_SINGLE_REGION_VPC_PEERINGS_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", + "ACTIVE_ACTIVE_DATABASE_LIMIT_EXCEEDED", + "ACTIVE_ACTIVE_REGION_LIMIT_REACHED", "FIXED_DATABASE_NAME_IS_MISSING", "CREATING_FIXED_DATABASE_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", "UPDATING_FIXED_DATABASE_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", @@ -13962,6 +16557,8 @@ "FIXED_DATABASE_NUMBER_OF_SHARDS_SUPPORTED_ONLY_FOR_PAY_AS_YOU_GO", "FIXED_DATABASE_NUMBER_OF_SHARDS_NOT_A_MULTIPLE_OF_CURRENT_VALUE", "VPC_ID_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", + "SUBNET_ID_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", + "SECURITY_GROUP_ID_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", "CLIENT_SSL_CERTIFICATE_IS_NOT_ALLOWED_WITHOUT_ENABLE_TLS_IS_TRUE", "MARKETPLACE_PAYMENT_INFO_COLLISION", "ACCOUNT_MARKETPLACE_IS_NOT_ACTIVE", @@ -14069,6 +16666,7 @@ "DATABASE_NAME_CHANGE_NOT_SUPPORTED", "DATABASE_INVALID_LOCATION_BACKUP", "DATABASE_GENERAL_ERROR_BACKUP", + "CLUSTER_COMMUNICATION_ERROR", "MAINTENANCE_WINDOW_INVALID_MAINTENANCE_WINDOW_SPEC_PROVIDED", "MAINTENANCE_WINDOW_INVALID_MAINTENANCE_WINDOW_MODE_PROVIDED", "MAINTENANCE_WINDOW_MANUAL_MODE_WITH_NO_MAINTENANCE_WINDOWS", @@ -14089,7 +16687,39 @@ "DATABASE_REPLICA_OF_INCOMPATIBLE_VERSION", "DATABASE_UPGRADE_FAILED", "DATABASE_INVALID_PLAN_TYPE", - "DATABASE_UPGRADE_IS_NOT_SUPPORTED" + "DATABASE_UPGRADE_IS_NOT_SUPPORTED", + "ACTIVE_ACTIVE_EXTERNAL_ACCOUNTS_NOT_SUPPORTED", + "ACTIVE_ACTIVE_MULTIPLE_CLOUD_ACCOUNTS_NOT_SUPPORTED", + "ACTIVE_ACTIVE_GCP_EXTERNAL_CLOUD_ACCOUNT_NOT_SUPPORTED", + "DEDICATED_SUBSCRIPTION_PREFERRED_AZ_INVALID_VALUE", + "DEDICATED_SUBSCRIPTION_INVALID_INSTANCE_NAME", + "DEDICATED_SUBSCRIPTION_INVALID_REPLICATION", + "PRIVATE_LINK_NOT_FOUND", + "PRIVATE_LINK_ALREADY_EXISTS", + "PRIVATE_LINK_PRINCIPAL_ALREADY_EXISTS", + "PRIVATE_LINK_PRINCIPAL_NOT_FOUND", + "PRIVATE_LINK_PRINCIPAL_INVALID_PRINCIPLE", + "PRIVATE_LINK_CLOUD_PROVIDER_NOT_SUPPORTED", + "PRIVATE_LINK_GET_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PRIVATE_LINK_GET_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", + "PRIVATE_LINK_CREATING_PRINCIPLES_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PRIVATE_LINK_CREATING_PRINCIPLES_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", + "PRIVATE_LINK_DELETING_A_FLEXIBLE_SUBSCRIPTION_PRINCIPALS_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PRIVATE_LINK_DELETING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRINCIPALS_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", + "PRIVATE_LINK_CREATE_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PRIVATE_LINK_CREATE_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", + "PRIVATE_LINK_DELETING_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PRIVATE_LINK_DELETING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", + "PRIVATE_LINK_IS_NOT_SUPPORTED", + "PRIVATE_LINK_SERVICE_ERROR", + "COST_REPORT_IS_NOT_SUPPORTED", + "COST_REPORT_START_DATE_IS_MISSING", + "COST_REPORT_END_DATE_IS_MISSING", + "COST_REPORT_INVALID_DATE_FORMAT", + "COST_REPORT_END_DATE_BEFORE_START_DATE", + "COST_REPORT_DATE_RANGE_EXCEEDS_LIMIT", + "COST_REPORT_TAG_KEY_EMPTY", + "COST_REPORT_TAG_VALUE_EMPTY" ] }, "additionalInfo": { @@ -14169,12 +16799,12 @@ "properties": { "name": { "type": "string", - "description": "Required. ACL role name", + "description": "Database access role name.", "example": "ACL-role-example" }, "redisRules": { "type": "array", - "description": "Required. List of ACL redis rules to associated with the requested ACL role", + "description": "A list of Redis ACL rules to assign to this database access role.", "items": { "$ref": "#/components/schemas/AclRoleRedisRuleSpec" } @@ -14201,11 +16831,11 @@ }, "regionName": { "type": "string", - "description": "Optional. Name of cloud provider region where the local database is located. When backing up an active-active database, backup is done separately for each local database at a specified region." + "description": "Required for Active-Active databases. Name of the cloud provider region to back up. When backing up an Active-Active database, you must back up each region separately." }, "adhocBackupPath": { "type": "string", - "description": "Optional. Path for ad-hoc backup.", + "description": "Optional. Manually backs up data to this location, instead of the set 'remoteBackup' location.", "example": "s3://" }, "commandType": { @@ -14279,12 +16909,12 @@ "properties": { "key": { "type": "string", - "description": "Required. Database tag key", + "description": "Database tag key.", "example": "environment" }, "value": { "type": "string", - "description": "Required. Database tag value", + "description": "Database tag value.", "example": "production" }, "subscriptionId": { @@ -14309,11 +16939,11 @@ "properties": { "active": { "type": "boolean", - "description": "Optional, determine whether backup should be active or not. Default: null" + "description": "Optional. Determine if backup should be active. Default: null" }, "interval": { "type": "string", - "description": "Required when active is true, represent the interval between backups, should be in the following format every-x-hours where x is one of (24,12,6,4,2,1). for example: \"every-4-hours\"" + "description": "Required when active is 'true'. Defines the interval between backups. Format: 'every-x-hours', where x is one of 24, 12, 6, 4, 2, or 1. Example: \"every-4-hours\"" }, "backupInterval": { "type": "string", @@ -14329,7 +16959,7 @@ }, "timeUTC": { "type": "string", - "description": "Optional. State the hour which the backup will take place. available only for 12 or 24 hours backup interval. should be specified an hour for example 2 PM as 14:00" + "description": "Optional. Hour when the backup starts. Available only for \"every-12-hours\" and \"every-24-hours\" backup intervals. Specified as an hour in 24-hour UTC time. Example: \"14:00\" is 2 PM UTC." }, "databaseBackupTimeUTC": { "type": "string", @@ -14351,7 +16981,7 @@ }, "storageType": { "type": "string", - "description": "Required when active is true, Type of storage source from which to import the database file (RDB files) or data (Redis connection)" + "description": "Required when active is 'true'. Type of storage to host backup files. Can be \"aws-s3\", \"google-blob-storage\", \"azure-blob-storage\", or \"ftp\". See [Set up backup storage locations](https://redis.io/docs/latest/operate/rc/databases/back-up-data/#set-up-backup-storage-locations) to learn how to set up backup storage locations." }, "backupStorageType": { "type": "string", @@ -14367,10 +16997,21 @@ }, "storagePath": { "type": "string", - "description": "Required when active is true, Path for backup" + "description": "Required when active is 'true'. Path to the backup storage location." } }, - "description": "Optional. Database remote backup configuration" + "description": "Optional. Changes Remote backup configuration details." + }, + "DynamicEndpoints": { + "type": "object", + "properties": { + "public": { + "type": "string" + }, + "private": { + "type": "string" + } + } }, "CrdbFlushRequest": { "type": "object", @@ -14402,34 +17043,35 @@ "properties": { "startHour": { "type": "integer", - "description": "Required. Hour of the day that is the start of the maintenance window. Valid input is in range 0-23.", + "description": "Starting hour of the maintenance window. Can be between '0' (12 AM in the deployment region's local time) and '23' (11 PM in the deployment region's local time).", "format": "int32", "example": 12 }, "durationInHours": { "type": "integer", - "description": "Required. The duration for which the maintenance window lasts in hours. Valid input is in range 4-24 (or 8-24 if using flash memory).", + "description": "The duration of the maintenance window in hours. Can be between 4-24 hours (or 8-24 hours if using 'ram-and-flash').", "format": "int32", "example": 8 }, "days": { "type": "array", - "description": "Required. The days for which the maintenance window applies. Valid input is array containing: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\".", + "description": "Days where this maintenance window applies. Can contain one or more of: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", or \"Sunday\".", "example": [ "Monday", "Wednesday" ], "items": { "type": "string", - "description": "Required. The days for which the maintenance window applies. Valid input is array containing: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\".", + "description": "Days where this maintenance window applies. Can contain one or more of: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", or \"Sunday\".", "example": "[\"Monday\",\"Wednesday\"]" } } }, - "description": "Maintenance window specifications if mode is set to 'manual'. Up to 7 windows can be provided." + "description": "Maintenance window timeframes if mode is set to 'manual'. Up to 7 maintenance windows can be provided." }, "ActiveActiveVpcPeeringCreateGcpRequest": { "required": [ + "sourceRegion", "vpcNetworkName", "vpcProjectUid" ], @@ -14445,16 +17087,16 @@ }, "sourceRegion": { "type": "string", - "description": "Name of region to create a VPC peering from" + "description": "Name of region to create a VPC peering from." }, "vpcProjectUid": { "type": "string", - "description": "VPC project uid", + "description": "VPC project ID.", "example": "" }, "vpcNetworkName": { "type": "string", - "description": "VPC network name", + "description": "VPC network name.", "example": "" }, "commandType": { @@ -14473,17 +17115,17 @@ "properties": { "name": { "type": "string", - "description": "Optional. Subscription name", + "description": "Optional. New subscription name.", "example": "My new subscription" }, "dryRun": { "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Default: 'false'", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan and does not create any resources. Default: 'false'", "example": false }, "deploymentType": { "type": "string", - "description": "Optional. When 'single-region' or null: Creates a single region subscription. When 'active-active': creates an active-active (multi-region) subscription", + "description": "Optional. When 'single-region' or not set: Creates a single region subscription. When 'active-active': creates an Active-Active (multi-region) subscription.", "example": "single-region", "enum": [ "single-region", @@ -14492,7 +17134,7 @@ }, "paymentMethod": { "type": "string", - "description": "Optional. The payment method for the requested subscription. If ‘credit-card’ is specified, ‘paymentMethodId’ must be defined. Default: 'credit-card", + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’, ‘paymentMethodId’ must be defined. Default: 'credit-card'", "enum": [ "credit-card", "marketplace" @@ -14500,36 +17142,53 @@ }, "paymentMethodId": { "type": "integer", - "description": "Optional. A valid payment method that was pre-defined in the current account. This value is Optional if ‘paymentMethod’ is ‘marketplace’, but Required for all other account types.", + "description": "Optional. A valid payment method ID for this account. Use GET /payment-methods to get a list of all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required for all other account types.", "format": "int32" }, "memoryStorage": { "type": "string", - "description": "Optional. Memory storage preference: either 'ram' or a combination of 'ram-and-flash'. Default: 'ram'", + "description": "Optional. Memory storage preference: either 'ram' or a combination of 'ram-and-flash' (also known as Auto Tiering). Default: 'ram'", "example": "ram", "enum": [ "ram", "ram-and-flash" ] }, + "persistentStorageEncryptionType": { + "type": "string", + "description": "Optional. Persistent storage encryption secures data at rest for database persistence. By default, disk storage is encrypted by keys managed by the cloud provider. Use 'customer-managed-key' if you want to use self-managed persistent storage encryption keys. Default: 'cloud-provider-managed-key'", + "example": "cloud-provider-managed-key", + "enum": [ + "cloud-provider-managed-key", + "customer-managed-key" + ] + }, + "persistentStorageEncryptionKeys": { + "$ref": "#/components/schemas/CustomerManagedKeyProperties" + }, "cloudProviders": { "type": "array", - "description": "Required. Cloud hosting & networking details", + "description": "Cloud provider, region, and networking details.", "items": { "$ref": "#/components/schemas/SubscriptionSpec" } }, "databases": { "type": "array", - "description": "Required. Databases specifications for each planned database", + "description": "One or more database specification(s) to create in this subscription.", "items": { "$ref": "#/components/schemas/SubscriptionDatabaseSpec" } }, "redisVersion": { "type": "string", - "description": "Optional. If specified, the redisVersion defines the Redis version of the databases in the subscription. If omitted, the Redis version will be the default (available in 'GET /subscriptions/redis-versions')", - "example": "7.2" + "description": "Optional. Defines the Redis version of the databases created in this specific request. It doesn't determine future databases associated with this subscription. If not set, databases will use the default Redis version. This field is deprecated and will be removed in a future API version - use the database-level redisVersion property instead.", + "example": "7.2", + "deprecated": true + }, + "publicEndpointAccess": { + "type": "boolean", + "description": "Optional. When 'false', all databases on this subscription will reject any connection attempt to the public endpoint and any connection attempt to the private endpoint that does not come from an IP address in the private address space defined in [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918#section-3 ). You must use a [private connectivity method](https://redis.io/docs/latest/operate/rc/security/database-security/block-public-endpoints/#private-connectivity-methods ) to connect to a database with a blocked public endpoint. Default: 'true'." }, "commandType": { "type": "string", @@ -14570,27 +17229,27 @@ }, "accessKeyId": { "type": "string", - "description": "Required. Cloud provider access key", + "description": "Cloud provider access key.", "example": "****" }, "accessSecretKey": { "type": "string", - "description": "Required. Cloud provider secret key", + "description": "Cloud provider secret key.", "example": "****" }, "consoleUsername": { "type": "string", - "description": "Required. Cloud provider management console username", + "description": "Cloud provider management console username.", "example": "me@mycompany.com" }, "consolePassword": { "type": "string", - "description": "Required. Cloud provider management console password", + "description": "Cloud provider management console password.", "example": "****" }, "signInLoginUrl": { "type": "string", - "description": "Optional. Cloud provider management console login URL", + "description": "Optional. Cloud provider management console login URL.", "example": "https://.signin.aws.amazon.com/console" }, "commandType": { @@ -14600,6 +17259,56 @@ }, "description": "Cloud Account definition" }, + "PrivateLinkCreateRequest": { + "required": [ + "principal", + "shareName", + "type" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "shareName": { + "maxLength": 64, + "minLength": 0, + "type": "string", + "description": "Name of the resource share", + "example": "my-redis-share" + }, + "principal": { + "type": "string", + "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", + "example": "123456789012" + }, + "type": { + "type": "string", + "description": "Type of the principal", + "example": "aws_account", + "enum": [ + "aws_account", + "organization", + "organization_unit", + "iam_role", + "iam_user", + "service_principal" + ] + }, + "alias": { + "type": "string", + "description": "Alias or friendly name for the principal", + "example": "Production Account" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Link create request" + }, "SubscriptionPricings": { "type": "object", "properties": { @@ -14650,13 +17359,44 @@ "properties": { "syncSources": { "type": "array", - "description": "Optional. This database will be a replica of the specified Redis databases provided as a list of one or more DatabaseSyncSourceSpec objects.", + "description": "Optional. This database will be a replica of the specified Redis databases, provided as a list of objects with endpoint and certificate details.", "items": { "$ref": "#/components/schemas/DatabaseSyncSourceSpec" } } }, - "description": "Optional. Replica Of configuration" + "description": "Optional. Changes Replica Of (also known as Active-Passive) configuration details." + }, + "PrivateLinkActiveActivePrincipalsDeleteRequest": { + "required": [ + "principal", + "regionId" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true, + "example": 27 + }, + "principal": { + "type": "string", + "description": "An AWS account ID or ARN to remove from the private link", + "example": "123456789012" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Request to remove principals from private link for Active-Active subscription" }, "DatabaseThroughputSpec": { "required": [ @@ -14667,7 +17407,7 @@ "properties": { "by": { "type": "string", - "description": "Required. Throughput measurement method. Either 'number-of-shards' or 'operations-per-second'", + "description": "Throughput measurement method. Use 'operations-per-second' for all new databases.", "enum": [ "operations-per-second", "number-of-shards" @@ -14675,12 +17415,12 @@ }, "value": { "type": "integer", - "description": "Required. Throughput value (as applies to selected measurement method)", + "description": "Throughput value in the selected measurement method.", "format": "int64", "example": 10000 } }, - "description": "Optional. Throughput measurement method. Default: 25000 ops/sec" + "description": "Optional. Throughput measurement method." }, "FixedDatabase": { "type": "object", @@ -14807,6 +17547,9 @@ "privateEndpoint": { "type": "string" }, + "dynamicEndpoints": { + "$ref": "#/components/schemas/DynamicEndpoints" + }, "links": { "type": "array", "items": { @@ -14919,7 +17662,7 @@ }, "sourceType": { "type": "string", - "description": "Required. Type of storage source from which to import the database file (RDB files) or data (Redis connection)", + "description": "Type of storage from which to import the database RDB file or Redis data.", "example": "http", "enum": [ "http", @@ -14932,10 +17675,10 @@ }, "importFromUri": { "type": "array", - "description": "Required. One or more URIs to source data files or Redis databases, as appropriate to specified source type (example: ['http://mydomain.com/redis-backup-file1', 'http://mydomain.com/redis-backup-file2'])", + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type.", "items": { "type": "string", - "description": "Required. One or more URIs to source data files or Redis databases, as appropriate to specified source type (example: ['http://mydomain.com/redis-backup-file1', 'http://mydomain.com/redis-backup-file2'])" + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type." } }, "commandType": { @@ -14945,10 +17688,53 @@ }, "description": "Database import request" }, - "ActiveActiveRegionCreateRequest": { + "DatabaseUpgradeRedisVersionRequest": { + "required": [ + "targetRedisVersion" + ], + "type": "object", + "properties": { + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "targetRedisVersion": { + "type": "string", + "description": "The target Redis version the database will be upgraded to. Use GET /subscriptions/redis-versions to get a list of available Redis versions.", + "example": "7.4" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Upgrades the specified Pro database to a later Redis version." + }, + "CustomerManagedKey": { "required": [ - "deploymentCIDR" + "resourceName" ], + "type": "object", + "properties": { + "resourceName": { + "type": "string", + "description": "The resource name of the customer managed key.", + "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" + }, + "region": { + "type": "string", + "description": "(Required for Active-Active subscriptions only) Region for the customer managed key as defined by the cloud provider." + } + }, + "description": "Object representing a customer managed key (CMK), along with the region it is associated to." + }, + "ActiveActiveRegionCreateRequest": { "type": "object", "properties": { "subscriptionId": { @@ -14958,28 +17744,56 @@ }, "region": { "type": "string", - "description": "Name of region to add as defined by cloud provider" + "description": "Name of region to add as defined by the cloud provider." + }, + "vpcId": { + "type": "string", + "description": "Optional. Enter a VPC identifier that exists in the hosted AWS account. Creates a new VPC if not set. VPC Identifier must be in a valid format and must exist within the hosting account.", + "example": "vpc-0125be68a4625884ad" }, "deploymentCIDR": { "type": "string", - "description": "Deployment CIDR mask. \nDefault: 192.168.0.0/24", + "description": "Deployment CIDR mask. Must be a valid CIDR format with a range of 256 IP addresses.", "example": "10.0.0.0/24" }, + "subnetIds": { + "type": "array", + "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", + "example": "['subnet-0125be68a4625884ad', 'subnet-0125be68a4625884ad','subnet-0125be68a4625884ad']", + "items": { + "type": "string", + "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", + "example": "['subnet-0125be68a4625884ad', 'subnet-0125be68a4625884ad','subnet-0125be68a4625884ad']" + } + }, + "securityGroupId": { + "type": "string", + "description": "Optional. Enter a security group identifier that exists in the hosted AWS account. Security group Identifier must be in a valid format (for example: 'sg-0125be68a4625884ad') and must exist within the hosting account.", + "example": "sg-0125be68a4625884ad" + }, + "preferredAvailabilityZones": { + "type": "array", + "description": "Optional. List the zone IDs for your preferred availability zones for the cloud provider and region.", + "items": { + "type": "string", + "description": "Optional. List the zone IDs for your preferred availability zones for the cloud provider and region." + } + }, "dryRun": { "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Default: 'false'", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan, and does not create any resources. Default: 'false'", "example": false }, "databases": { "type": "array", - "description": "List of databases with local throughput for the new region", + "description": "List of databases in the subscription with local throughput details. Default: 1000 read and write ops/sec for each database", "items": { "$ref": "#/components/schemas/CrdbRegionSpec" } }, "respVersion": { "type": "string", - "description": "Deprecated - Optional. RESP version must be compatible with Redis version.", + "description": "Optional. RESP version must be compatible with Redis version.", "example": "resp3", "deprecated": true, "enum": [ @@ -14987,6 +17801,11 @@ "resp3" ] }, + "customerManagedKeyResourceName": { + "type": "string", + "description": "Required for subscriptions where 'persistentStorageEncryptionType' is 'customer-managed-key'. The resource name of the customer-managed encryption key for the region.", + "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" + }, "commandType": { "type": "string", "readOnly": true @@ -15013,7 +17832,7 @@ }, "sourceType": { "type": "string", - "description": "Required. Type of storage source from which to import the database file (RDB files) or data (Redis connection)", + "description": "Type of storage from which to import the database RDB file or Redis data.", "example": "http", "enum": [ "http", @@ -15026,10 +17845,10 @@ }, "importFromUri": { "type": "array", - "description": "Required. One or more URIs to source data files or Redis databases, as appropriate to specified source type (example: ['http://mydomain.com/redis-backup-file1', 'http://mydomain.com/redis-backup-file2'])", + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type.", "items": { "type": "string", - "description": "Required. One or more URIs to source data files or Redis databases, as appropriate to specified source type (example: ['http://mydomain.com/redis-backup-file1', 'http://mydomain.com/redis-backup-file2'])" + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type." } }, "commandType": { @@ -15039,6 +17858,61 @@ }, "description": "Database import request" }, + "PrivateLinkPrincipalsDeleteRequest": { + "required": [ + "principal" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "principal": { + "type": "string", + "description": "An AWS account ID or ARN to remove from the private link", + "example": "123456789012" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Link principals delete request" + }, + "CustomerManagedKeyProperties": { + "required": [ + "customerManagedKeys" + ], + "type": "object", + "properties": { + "customerManagedKeys": { + "type": "array", + "description": "The customer managed keys (CMK) to use for this subscription. If is active-active subscription, must set a key for each region.", + "items": { + "$ref": "#/components/schemas/CustomerManagedKey" + } + }, + "deletionGracePeriod": { + "type": "string", + "description": "Optional. The grace period for deleting the subscription. If not set, will default to immediate deletion grace period.", + "example": "alerts-only", + "enum": [ + "alerts-only", + "immediate", + "15-minutes", + "30-minutes", + "1-hour", + "4-hours", + "8-hours", + "12-hours", + "24-hours" + ] + } + }, + "description": "Optional. Contains information about the keys used for each region. Can be used only with external cloud account" + }, "VpcPeeringCreateBaseRequest": { "type": "object", "properties": { @@ -15071,6 +17945,11 @@ "type": "apiKey", "name": "x-api-secret-key", "in": "header" + }, + "X-Auth-Token": { + "type": "apiKey", + "name": "X-Auth-Token", + "in": "header" } } }