Amazon ElastiCache Elasticache Migration API
The Elasticache Migration API from Amazon ElastiCache — 3 operation(s) for elasticache migration.
The Elasticache Migration API from Amazon ElastiCache — 3 operation(s) for elasticache migration.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/amazon-elasticache:amazon-elasticache-migration-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Amazon ElastiCache Migration API
version: '2015-02-02'
description: Generated from AWS's published Smithy model for Amazon ElastiCache. 3 operation(s).
contact:
name: Amazon Web Services
url: https://aws.amazon.com/contact-us/
license:
name: Apache 2.0
identifier: Apache-2.0
url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://elasticache.{region}.amazonaws.com
variables:
region:
default: us-east-1
security:
- sigv4: []
tags:
- name: Migration
paths:
/?Action=StartMigration:
post:
operationId: StartMigration
summary: Start Migration
description: Starts the migration of data.
responses:
'200':
description: Success
content:
text/xml:
schema:
$ref: '#/components/schemas/StartMigrationResponse'
'400':
description: InvalidCacheClusterStateFault; InvalidParameterCombinationException; InvalidParameterValueException; InvalidReplicationGroupStateFault; InvalidServerlessCacheStateFault; MigrationHealthFault; ReplicationGroupAlreadyUnderMigrationFault; ServerlessCacheNotUnderMigrationFault
content:
text/xml:
schema:
$ref: '#/components/schemas/InvalidCacheClusterStateFault'
'404':
description: ReplicationGroupNotFoundFault; ServerlessCacheNotFoundFault
content:
text/xml:
schema:
$ref: '#/components/schemas/ReplicationGroupNotFoundFault'
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
allOf:
- type: object
required:
- Action
- Version
properties:
Action:
type: string
const: StartMigration
Version:
type: string
const: '2015-02-02'
- $ref: '#/components/schemas/StartMigrationMessage'
tags:
- Migration
/?Action=StopMigration:
post:
operationId: StopMigration
summary: Stop Migration
description: Stops an ongoing data sync between the source and the serverless cache. The migration remains open and the data sync can be restarted. This operation is valid only while the migration is syncing; during cutover it returns InvalidServerlessCacheStateFault.
responses:
'200':
description: Success
content:
text/xml:
schema:
$ref: '#/components/schemas/StopMigrationResponse'
'400':
description: InvalidParameterValueException; InvalidServerlessCacheStateFault; ServerlessCacheNotUnderMigrationFault
content:
text/xml:
schema:
$ref: '#/components/schemas/InvalidParameterValueException'
'404':
description: ServerlessCacheNotFoundFault
content:
text/xml:
schema:
$ref: '#/components/schemas/ServerlessCacheNotFoundFault'
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
allOf:
- type: object
required:
- Action
- Version
properties:
Action:
type: string
const: StopMigration
Version:
type: string
const: '2015-02-02'
- $ref: '#/components/schemas/StopMigrationRequest'
tags:
- Migration
/?Action=TestMigration:
post:
operationId: TestMigration
summary: Test Migration
description: Async API to test connection between source and target replication group.
responses:
'200':
description: Success
content:
text/xml:
schema:
$ref: '#/components/schemas/TestMigrationResponse'
'400':
description: InvalidCacheClusterStateFault; InvalidParameterCombinationException; InvalidParameterValueException; InvalidReplicationGroupStateFault; ReplicationGroupAlreadyUnderMigrationFault
content:
text/xml:
schema:
$ref: '#/components/schemas/InvalidCacheClusterStateFault'
'404':
description: ReplicationGroupNotFoundFault
content:
text/xml:
schema:
$ref: '#/components/schemas/ReplicationGroupNotFoundFault'
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
allOf:
- type: object
required:
- Action
- Version
properties:
Action:
type: string
const: TestMigration
Version:
type: string
const: '2015-02-02'
- $ref: '#/components/schemas/TestMigrationMessage'
tags:
- Migration
components:
schemas:
CloudWatchLogsDestinationDetails:
type: object
properties:
LogGroup:
type: string
description: The name of the CloudWatch Logs log group.
StopMigrationRequest:
type: object
properties:
ServerlessCacheName:
type: string
description: The name of the serverless cache for which to stop the data sync.
required:
- ServerlessCacheName
ReshardingStatus:
type: object
properties:
SlotMigration:
$ref: '#/components/schemas/SlotMigration'
KinesisFirehoseDestinationDetails:
type: object
properties:
DeliveryStream:
type: string
description: The name of the Kinesis Data Firehose delivery stream.
StartMigrationMessage:
type: object
properties:
ServerlessCacheName:
type: string
description: The name of the serverless cache to which data is being migrated.
ReplicationGroupId:
type: string
description: The ID of the replication group to which data should be migrated.
CustomerNodeEndpointList:
type: array
items:
$ref: '#/components/schemas/CustomerNodeEndpoint'
description: The list of endpoints from which to migrate data. For Valkey or Redis OSS (cluster mode disabled), the list should have only one element. For serverless cache migrations, ElastiCache uses the endpoint that you provided in PrepareMigration.
AutoCutover:
type: boolean
description: Specifies whether ElastiCache automatically attempts to complete the migration after data sync is established.
ClearTargetCacheData:
type: boolean
description: Specifies whether ElastiCache deletes existing data in the serverless cache before migration begins. After StopMigration, StartMigration requires this option to restart the data sync.
ReplicationGroupNotFoundFault:
type: object
properties:
message:
type: string
LogDeliveryConfiguration:
type: object
properties:
LogType:
type: string
enum:
- slow-log
- engine-log
description: Refers to slow-log or engine-log.
DestinationType:
type: string
enum:
- cloudwatch-logs
- kinesis-firehose
description: Returns the destination type, either cloudwatch-logs or kinesis-firehose.
DestinationDetails:
$ref: '#/components/schemas/DestinationDetails'
LogFormat:
type: string
enum:
- text
- json
description: Returns the log format, either JSON or TEXT.
Status:
type: string
enum:
- active
- enabling
- modifying
- disabling
- error
description: Returns the log delivery configuration status. Values are one of enabling | disabling | modifying | active | error
Message:
type: string
description: Returns an error message for the log delivery configuration.
NodeGroup:
type: object
properties:
NodeGroupId:
type: string
description: The identifier for the node group (shard). A Valkey or Redis OSS (cluster mode disabled) replication group contains only 1 node group; therefore, the node group ID is 0001. A Valkey or Redis OSS (cluster mode enabled) replication group contains 1 to 90 node groups numbered 0001 to 0090. Optionally, the user can provide the id for a node group.
Status:
type: string
description: The current state of this replication group - creating, available, modifying, deleting.
PrimaryEndpoint:
$ref: '#/components/schemas/Endpoint'
ReaderEndpoint:
$ref: '#/components/schemas/Endpoint'
Slots:
type: string
description: The keyspace for this node group (shard).
NodeGroupMembers:
type: array
items:
$ref: '#/components/schemas/NodeGroupMember'
description: A list containing information about individual nodes within the node group (shard).
StopMigrationResponse:
type: object
properties:
ServerlessCache:
$ref: '#/components/schemas/ServerlessCache'
InvalidCacheClusterStateFault:
type: object
properties:
message:
type: string
TestMigrationMessage:
type: object
properties:
ReplicationGroupId:
type: string
description: The ID of the replication group to which data is to be migrated.
CustomerNodeEndpointList:
type: array
items:
$ref: '#/components/schemas/CustomerNodeEndpoint'
description: List of endpoints from which data should be migrated. List should have only one element.
required:
- ReplicationGroupId
- CustomerNodeEndpointList
ReplicationGroupPendingModifiedValues:
type: object
properties:
PrimaryClusterId:
type: string
description: The primary cluster ID that is applied immediately (if --apply-immediately was specified), or during the next maintenance window.
AutomaticFailoverStatus:
type: string
enum:
- enabled
- disabled
description: Indicates the status of automatic failover for this Valkey or Redis OSS replication group.
Resharding:
$ref: '#/components/schemas/ReshardingStatus'
AuthTokenStatus:
type: string
enum:
- SETTING
- ROTATING
description: The auth token status
UserGroups:
$ref: '#/components/schemas/UserGroupsUpdateStatus'
LogDeliveryConfigurations:
type: array
items:
$ref: '#/components/schemas/PendingLogDeliveryConfiguration'
description: The log delivery configurations being modified
TransitEncryptionEnabled:
type: boolean
description: A flag that enables in-transit encryption when set to true.
TransitEncryptionMode:
type: string
enum:
- preferred
- required
description: A setting that allows you to migrate your clients to use in-transit encryption, with no downtime.
ClusterMode:
type: string
enum:
- enabled
- disabled
- compatible
description: Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you must first set the cluster mode to Compatible. Compatible mode allows your Valkey or Redis OSS clients to connect using both cluster mode enabled and cluster mode disabled. After you migrate all Valkey or Redis OSS clients to use cluster mode enabled, you can then complete cluster mode configuration and set the cluster mode to Enabled.
Endpoint:
type: object
properties:
Address:
type: string
description: The DNS hostname of the cache node.
Port:
type: integer
description: The port number that the cache engine is listening on.
SlotMigration:
type: object
properties:
ProgressPercentage:
type: number
description: The percentage of the slot migration that is complete.
PendingLogDeliveryConfiguration:
type: object
properties:
LogType:
type: string
enum:
- slow-log
- engine-log
description: Refers to slow-log or engine-log..
DestinationType:
type: string
enum:
- cloudwatch-logs
- kinesis-firehose
description: Returns the destination type, either CloudWatch Logs or Kinesis Data Firehose.
DestinationDetails:
$ref: '#/components/schemas/DestinationDetails'
LogFormat:
type: string
enum:
- text
- json
description: Returns the log format, either JSON or TEXT
InvalidParameterValueException:
type: object
properties:
message:
type: string
description: A parameter value is invalid.
DestinationDetails:
type: object
properties:
CloudWatchLogsDetails:
$ref: '#/components/schemas/CloudWatchLogsDestinationDetails'
KinesisFirehoseDetails:
$ref: '#/components/schemas/KinesisFirehoseDestinationDetails'
ServerlessCache:
type: object
properties:
ServerlessCacheName:
type: string
description: The unique identifier of the serverless cache.
Description:
type: string
description: A description of the serverless cache.
CreateTime:
type: string
format: date-time
description: When the serverless cache was created.
Status:
type: string
description: The current status of the serverless cache. The allowed values are CREATING, AVAILABLE, DELETING, CREATE-FAILED and MODIFYING.
Engine:
type: string
description: The engine the serverless cache is compatible with.
MajorEngineVersion:
type: string
description: The version number of the engine the serverless cache is compatible with.
FullEngineVersion:
type: string
description: The name and version number of the engine the serverless cache is compatible with.
CacheUsageLimits:
$ref: '#/components/schemas/CacheUsageLimits'
KmsKeyId:
type: string
description: The ID of the Amazon Web Services Key Management Service (KMS) key that is used to encrypt data at rest in the serverless cache.
StorageEncryptionType:
type: string
enum:
- none
- sse-elasticache
- sse-kms
description: Indicates the type of encryption for data stored at rest in the serverless cache. Serverless caches are always encrypted at rest. The value is sse-elasticache if an ElastiCache service-managed key is used, or sse-kms if a customer-managed KMS key is used.
SecurityGroupIds:
type: array
items:
type: string
description: The IDs of the EC2 security groups associated with the serverless cache.
Endpoint:
$ref: '#/components/schemas/Endpoint'
ReaderEndpoint:
$ref: '#/components/schemas/Endpoint'
ARN:
type: string
description: The Amazon Resource Name (ARN) of the serverless cache.
UserGroupId:
type: string
description: The identifier of the user group associated with the serverless cache. Available for Valkey and Redis OSS only. Default is NULL.
SubnetIds:
type: array
items:
type: string
description: If no subnet IDs are given and your VPC is in us-west-1, then ElastiCache will select 2 default subnets across AZs in your VPC. For all other Regions, if no subnet IDs are given then ElastiCache will select 3 default subnets across AZs in your default VPC.
SnapshotRetentionLimit:
type: integer
description: The number of days for which ElastiCache retains automatic snapshots before deleting them. Available for Valkey, Redis OSS and Serverless Memcached only. The maximum value allowed is 35 days.
DailySnapshotTime:
type: string
description: The daily time that a cache snapshot will be created. Default is NULL, i.e. snapshots will not be created at a specific time on a daily basis. Available for Valkey, Redis OSS and Serverless Memcached only.
NetworkType:
type: string
enum:
- ipv4
- ipv6
- dual_stack
description: The type of IP address protocol used by the serverless cache. Must be either ipv4 | ipv6 | dual_stack. ipv6 is only supported with IPv6-only subnets. If not specified, defaults to ipv4, unless all provided subnets are IPv6-only, in which case it defaults to ipv6.
ConnectionType:
type: string
enum:
- vpc
- public
description: The connection type for the serverless cache. Must be either vpc | public. If not specified, defaults to vpc.
Migration:
$ref: '#/components/schemas/MigrationSummary'
ReplicationGroup:
type: object
properties:
ReplicationGroupId:
type: string
description: The identifier for the replication group.
Description:
type: string
description: The user supplied description of the replication group.
GlobalReplicationGroupInfo:
$ref: '#/components/schemas/GlobalReplicationGroupInfo'
Status:
type: string
description: The current state of this replication group - creating, available, modifying, deleting, create-failed, snapshotting.
PendingModifiedValues:
$ref: '#/components/schemas/ReplicationGroupPendingModifiedValues'
MemberClusters:
type: array
items:
type: string
description: The names of all the cache clusters that are part of this replication group.
NodeGroups:
type: array
items:
$ref: '#/components/schemas/NodeGroup'
description: A list of node groups in this replication group. For Valkey or Redis OSS (cluster mode disabled) replication groups, this is a single-element list. For Valkey or Redis OSS (cluster mode enabled) replication groups, the list contains an entry for each node group (shard).
SnapshottingClusterId:
type: string
description: The cluster ID that is used as the daily snapshot source for the replication group.
AutomaticFailover:
type: string
enum:
- enabled
- disabled
- enabling
- disabling
description: Indicates the status of automatic failover for this Valkey or Redis OSS replication group.
MultiAZ:
type: string
enum:
- enabled
- disabled
description: 'A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see Minimizing Downtime: Multi-AZ'
ConfigurationEndpoint:
$ref: '#/components/schemas/Endpoint'
SnapshotRetentionLimit:
type: integer
description: The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.
SnapshotWindow:
type: string
description: 'The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: 05:00-09:00 If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. This parameter is only valid if the Engine parameter is redis.'
ClusterEnabled:
type: boolean
description: 'A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups). Valid values: true | false'
CacheNodeType:
type: string
description: The name of the compute and memory capacity node type for each node in the replication group.
AuthTokenEnabled:
type: boolean
description: 'A flag that enables using an AuthToken (password) when issuing Valkey or Redis OSS commands. Default: false'
AuthTokenLastModifiedDate:
type: string
format: date-time
description: The date the auth token was last modified
TransitEncryptionEnabled:
type: boolean
description: 'A flag that enables in-transit encryption when set to true. Required: Only available when creating a replication group in an Amazon VPC using Redis OSS version 3.2.6, 4.x or later. Default: false'
AtRestEncryptionEnabled:
type: boolean
description: 'A flag that enables encryption at-rest on the cluster when set to true. In some cases, encryption at-rest may be enabled even when this value is false. Use StorageEncryptionType to view the effective encryption state of a cluster. You cannot modify the value of AtRestEncryptionEnabled after the cluster is created. Default: true when using Valkey, false when using Redis OSS'
MemberClustersOutpostArns:
type: array
items:
type: string
description: The outpost ARNs of the replication group's member clusters.
KmsKeyId:
type: string
description: The ID of the KMS key used to encrypt the disk in the cluster.
StorageEncryptionType:
type: string
enum:
- none
- sse-elasticache
- sse-kms
description: Indicates the type of encryption for data stored at rest in the replication group. The value is none if at-rest encryption is not enabled, sse-elasticache if an ElastiCache service-managed key is used, or sse-kms if a customer-managed KMS key is used.
ARN:
type: string
description: The ARN (Amazon Resource Name) of the replication group.
UserGroupIds:
type: array
items:
type: string
description: The ID of the user group associated to the replication group.
LogDeliveryConfigurations:
type: array
items:
$ref: '#/components/schemas/LogDeliveryConfiguration'
description: Returns the destination, format and type of the logs.
ReplicationGroupCreateTime:
type: string
format: date-time
description: The date and time when the cluster was created.
DataTiering:
type: string
enum:
- enabled
- disabled
description: Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. For more information, see Data tiering.
AutoMinorVersionUpgrade:
type: boolean
description: If you are running Valkey 7.2 and above, or Redis OSS engine version 6.0 and above, set this parameter to yes if you want to opt-in to the next auto minor version upgrade campaign. This parameter is disabled for previous versions.
NetworkType:
type: string
enum:
- ipv4
- ipv6
- dual_stack
description: Must be either ipv4 | ipv6 | dual_stack. IPv6 is supported for workloads using Valkey 7.2 and above, Redis OSS engine version 6.2 to 7.1 or Memcached engine version 1.6.6 and above on all instances built on the Nitro system.
IpDiscovery:
type: string
enum:
- ipv4
- ipv6
description: The network type you choose when modifying a cluster, either ipv4 | ipv6. IPv6 is supported for workloads using Valkey 7.2 and above, Redis OSS engine version 6.2 to 7.1 or Memcached engine version 1.6.6 and above on all instances built on the Nitro system.
TransitEncryptionMode:
type: string
enum:
- preferred
- required
description: A setting that allows you to migrate your clients to use in-transit encryption, with no downtime.
ClusterMode:
type: string
enum:
- enabled
- disabled
- compatible
description: Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you must first set the cluster mode to Compatible. Compatible mode allows your Valkey or Redis OSS clients to connect using both cluster mode enabled and cluster mode disabled. After you migrate all Valkey or Redis OSS clients to use cluster mode enabled, you can then complete cluster mode configuration and set the cluster mode to Enabled.
Engine:
type: string
description: The engine used in a replication group. The options are valkey, memcached or redis.
Durability:
type: string
enum:
- default
- async
- sync
- disabled
description: The durability setting of the replication group. For more information, see Durability.
EffectiveDurability:
type: string
enum:
- async
- sync
- disabled
description: The effective durability of the replication group. When Durability is set to default, the service resolves the actual durability based on the engine version, cluster mode, and other parameters. This field reflects the resolved value. For more information, see Configuring Durability.
StartMigrationResponse:
type: object
properties:
ReplicationGroup:
$ref: '#/components/schemas/ReplicationGroup'
ServerlessCache:
$ref: '#/components/schemas/ServerlessCache'
TestMigrationResponse:
type: object
properties:
ReplicationGroup:
$ref: '#/components/schemas/ReplicationGroup'
UserGroupsUpdateStatus:
type: object
properties:
UserGroupIdsToAdd:
type: array
items:
type: string
description: The ID of the user group to add.
UserGroupIdsToRemove:
type: array
items:
type: string
description: The ID of the user group to remove.
DataStorage:
type: object
properties:
Maximum:
type: integer
description: The upper limit for data storage the cache is set to use.
Minimum:
type: integer
description: The lower limit for data storage the cache is set to use.
Unit:
type: string
enum:
- GB
description: The unit that the storage is measured in, in GB.
required:
- Unit
ECPUPerSecond:
type: object
properties:
Maximum:
type: integer
description: The configuration for the maximum number of ECPUs the cache can consume per second.
Minimum:
type: integer
description: The configuration for the minimum number of ECPUs the cache should be able consume per second.
MigrationSummary:
type: object
properties:
Status:
type: string
description: The current status of the migration.
MigrationEndpoint:
$ref: '#/components/schemas/Endpoint'
CutoverMode:
type: string
description: The cutover configuration for the migration.
GlobalReplicationGroupInfo:
type: object
properties:
GlobalReplicationGroupId:
type: string
description: The name of the Global datastore
GlobalReplicationGroupMemberRole:
type: string
description: The role of the replication group in a Global datastore. Can be primary or secondary.
ServerlessCacheNotFoundFault:
type: object
properties:
message:
type: string
CacheUsageLimits:
type: object
properties:
DataStorage:
$ref: '#/components/schemas/DataStorage'
ECPUPerSecond:
$ref: '#/components/schemas/ECPUPerSecond'
NodeGroupMember:
type: object
properties:
CacheClusterId:
type: string
description: The ID of the cluster to which the node belongs.
CacheNodeId:
type: string
description: The ID of the node within its cluster. A node ID is a numeric identifier (0001, 0002, etc.).
ReadEndpoint:
$ref: '#/components/schemas/Endpoint'
PreferredAvailabilityZone:
type: string
description: The name of the Availability Zone in which the node is located.
PreferredOutpostArn:
type: string
description: The outpost ARN of the node group member.
CurrentRole:
type: string
description: The role that is currently assigned to the node - primary or replica. This member is only applicable for Valkey or Redis OSS (cluster mode disabled) replication groups.
CustomerNodeEndpoint:
type: object
properties:
Address:
type: string
description: The address of the node endpoint
Port:
type: integer
description: The port of the node endpoint
securitySchemes:
sigv4:
type: apiKey
in: header
name: Authorization
description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
x-aws-sigv4:
signingName: elasticache
x-provenance:
method: harvested
publisher: Amazon Web Services
source: https://raw.githubusercontent.com/aws/api-models-aws/582e55931c45b944739742a2c1620b6026dd2d13/models/elasticache/service/2015-02-02/elasticache-2015-02-02.json
note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)