diff --git a/content/operate/rc/api/api-reference/openapi.json b/content/operate/rc/api/api-reference/openapi.json index 0943760901..808f18f177 100644 --- a/content/operate/rc/api/api-reference/openapi.json +++ b/content/operate/rc/api/api-reference/openapi.json @@ -41,6 +41,11 @@ "description": "All Pro subscription connectivity operations.", "x-order": "11" }, + { + "name": "Subscriptions - Dedicated", + "description": "All Dedicated subscription operations.", + "x-order": "11" + }, { "name": "Databases - Pro", "description": "All Pro database operations.", @@ -350,7 +355,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriptionUpdateRequest" + "$ref": "#/components/schemas/BaseSubscriptionUpdateRequest" } } }, @@ -3077,7 +3082,7 @@ ], "summary": "Get a single Essentials subscription", "description": "Gets information on the specified Essentials subscription.", - "operationId": "getSubscriptionById_1", + "operationId": "getSubscriptionById_2", "parameters": [ { "name": "subscriptionId", @@ -4633,7 +4638,6 @@ "paymentMethod": "credit-card", "paymentMethodId": 12345, "memoryStorage": "ram", - "persistentStorageEncryption": true, "cloudProviders": [ { "provider": "AWS", @@ -6567,6 +6571,71 @@ } } }, + "/subscriptions/dedicated": { + "post": { + "tags": [ + "Subscriptions - Dedicated" + ], + "summary": "Create Dedicated subscription", + "description": "Creates a new Redis Cloud Dedicated subscription.", + "operationId": "createSubscription_1", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionCreateRequest" + } + } + }, + "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 " + } + } + } + }, "/fixed/subscriptions": { "get": { "tags": [ @@ -6618,7 +6687,7 @@ ], "summary": "Create Essentials subscription", "description": "Creates a new Essentials subscription.", - "operationId": "createSubscription_1", + "operationId": "createSubscription_2", "requestBody": { "content": { "application/json": { @@ -8528,6 +8597,18 @@ "summary": "Get available Redis database versions", "description": "Gets a list of all available Redis database versions for Pro subscriptions.", "operationId": "getRedisVersions", + "parameters": [ + { + "name": "subscriptionId", + "in": "query", + "description": "Subscription ID (required for an existing subscription)", + "required": false, + "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" @@ -8566,6 +8647,64 @@ } } }, + "/subscriptions/dedicated/{subscriptionId}": { + "get": { + "tags": [ + "Subscriptions - Dedicated" + ], + "summary": "Get a single dedicated subscription", + "description": "Gets information on the specified dedicated subscription.", + "operationId": "getSubscriptionById_1", + "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/DedicatedSubscription" + } + } + } + }, + "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 " + } + } + } + }, "/session-logs": { "get": { "tags": [ @@ -8931,6 +9070,64 @@ } } }, + "/fixed/redis-versions": { + "get": { + "tags": [ + "Subscriptions - Essentials" + ], + "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": "subscriptionId", + "in": "query", + "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/RedisVersions" + } + } + } + }, + "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 " + } + } + } + }, "/fixed/plans": { "get": { "tags": [ @@ -9564,7 +9761,7 @@ "readOnly": true } }, - "description": "Subscription update request" + "description": "Subscription update request message" }, "DatabaseTagUpdateRequest": { "required": [ @@ -10092,6 +10289,11 @@ "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. Redis Serialization Protocol version. Must be compatible with Redis version.", @@ -10542,6 +10744,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": { @@ -11239,6 +11464,40 @@ } } }, + "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" + ] + }, + "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" + }, "AccountSubscriptionDatabases": { "type": "object", "properties": { @@ -13427,6 +13686,60 @@ }, "description": "Database tag" }, + "DedicatedSubscription": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "Unique identifier for the subscription", + "format": "int32" + }, + "name": { + "type": "string", + "description": "Name of the subscription" + }, + "paymentMethodId": { + "type": "integer", + "description": "Payment method identifier", + "format": "int32" + }, + "status": { + "type": "string", + "description": "Current status of the subscription" + }, + "memoryStorage": { + "type": "string", + "description": "Memory storage configuration for the subscription", + "enum": [ + "ram", + "ram-and-flash" + ] + }, + "numberOfDatabases": { + "type": "integer", + "description": "Number of databases in the subscription", + "format": "int32" + }, + "paymentMethodType": { + "type": "string", + "description": "Type of payment method used", + "enum": [ + "credit-card", + "marketplace" + ] + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "description": "Redis Dedicated Subscription information" + }, "SubscriptionSpec": { "required": [ "regions" @@ -14154,7 +14467,24 @@ "ACTIVE_ACTIVE_SUBSCRIPTION_PREVIEW_REDIS_VERSION_IS_NOT_SUPPORTED", "SUBSCRIPTION_GCP_ALLOW_ONLY_INTERNAL", "CLUSTER_UNDER_MAINTENANCE", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_TYPE_IS_NOT_SUPPORTED", + "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_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", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_CREATE_FAILED", + "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", @@ -14290,6 +14620,7 @@ "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", "VPC_PEERING_NOT_ACTIVE", "VPC_PEERING_GENERAL_ERROR", @@ -14620,7 +14951,10 @@ "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" ] }, "additionalInfo": { @@ -14903,6 +15237,17 @@ }, "description": "Optional. Changes Remote backup configuration details." }, + "DynamicEndpoints": { + "type": "object", + "properties": { + "public": { + "type": "string" + }, + "private": { + "type": "string" + } + } + }, "CrdbFlushRequest": { "type": "object", "properties": { @@ -15077,7 +15422,7 @@ "readOnly": true } }, - "description": "Subscription create request" + "description": "Dedicated Subscription create request" }, "RedisVersions": { "type": "object", @@ -15348,6 +15693,9 @@ "privateEndpoint": { "type": "string" }, + "dynamicEndpoints": { + "$ref": "#/components/schemas/DynamicEndpoints" + }, "links": { "type": "array", "items": { @@ -15514,6 +15862,24 @@ }, "description": "Upgrades the specified Pro database to a later Redis version." }, + "CustomerManagedKey": { + "required": [ + "resourceName" + ], + "type": "object", + "properties": { + "resourceName": { + "type": "string", + "description": "Required. Resource name of the customer managed key as defined by the cloud provider.", + "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" + }, + "region": { + "type": "string", + "description": "Name of region to for the customer managed key as defined by the cloud provider. Required for active-active subscriptions." + } + }, + "description": "Object representing a customer managed key (CMK), along with the region it is associated to." + }, "ActiveActiveRegionCreateRequest": { "required": [ "deploymentCIDR" @@ -15556,6 +15922,11 @@ "resp3" ] }, + "customerManagedKeyResourceName": { + "type": "string", + "description": "Optional. Resource name of the customer managed key as defined by the cloud provider for customer managed subscriptions.", + "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" + }, "commandType": { "type": "string", "readOnly": true