Skip to content

Commit

Permalink
feat(client-elasticache): Added support for cluster mode in online mi…
Browse files Browse the repository at this point in the history
…gration and test migration API
  • Loading branch information
awstools committed Aug 8, 2023
1 parent 27fef8f commit f0d3d51
Show file tree
Hide file tree
Showing 63 changed files with 3,109 additions and 2,047 deletions.
26 changes: 17 additions & 9 deletions clients/client-elasticache/README.md
Expand Up @@ -8,15 +8,15 @@ AWS SDK for JavaScript ElastiCache Client for Node.js, Browser and React Native.

<fullname>Amazon ElastiCache</fullname>

<p>Amazon ElastiCache is a web service that makes it easier to set up, operate,
and scale a distributed cache in the cloud.</p>
<p>With ElastiCache, customers get all of the benefits of a high-performance,
in-memory cache with less of the administrative burden involved in launching and managing a distributed cache.
The service makes setup, scaling,
and cluster failure handling much simpler than in a self-managed cache deployment.</p>
<p>In addition, through integration with Amazon CloudWatch,
customers get enhanced visibility into the key performance statistics
associated with their cache and can receive alarms if a part of their cache runs hot.</p>
<p>Amazon ElastiCache is a web service that makes it easier to set up, operate, and scale
a distributed cache in the cloud.</p>
<p>With ElastiCache, customers get all of the benefits of a high-performance, in-memory
cache with less of the administrative burden involved in launching and managing a
distributed cache. The service makes setup, scaling, and cluster failure handling much
simpler than in a self-managed cache deployment.</p>
<p>In addition, through integration with Amazon CloudWatch, customers get enhanced
visibility into the key performance statistics associated with their cache and can
receive alarms if a part of their cache runs hot.</p>

## Installing

Expand Down Expand Up @@ -733,3 +733,11 @@ TestFailover
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-elasticache/classes/testfailovercommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-elasticache/interfaces/testfailovercommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-elasticache/interfaces/testfailovercommandoutput.html)

</details>
<details>
<summary>
TestMigration
</summary>

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-elasticache/classes/testmigrationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-elasticache/interfaces/testmigrationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-elasticache/interfaces/testmigrationcommandoutput.html)

</details>
35 changes: 26 additions & 9 deletions clients/client-elasticache/src/ElastiCache.ts
Expand Up @@ -315,6 +315,11 @@ import {
TestFailoverCommandInput,
TestFailoverCommandOutput,
} from "./commands/TestFailoverCommand";
import {
TestMigrationCommand,
TestMigrationCommandInput,
TestMigrationCommandOutput,
} from "./commands/TestMigrationCommand";
import { ElastiCacheClient, ElastiCacheClientConfig } from "./ElastiCacheClient";

const commands = {
Expand Down Expand Up @@ -383,6 +388,7 @@ const commands = {
RevokeCacheSecurityGroupIngressCommand,
StartMigrationCommand,
TestFailoverCommand,
TestMigrationCommand,
};

export interface ElastiCache {
Expand Down Expand Up @@ -1433,20 +1439,31 @@ export interface ElastiCache {
options: __HttpHandlerOptions,
cb: (err: any, data?: TestFailoverCommandOutput) => void
): void;

/**
* @see {@link TestMigrationCommand}
*/
testMigration(args: TestMigrationCommandInput, options?: __HttpHandlerOptions): Promise<TestMigrationCommandOutput>;
testMigration(args: TestMigrationCommandInput, cb: (err: any, data?: TestMigrationCommandOutput) => void): void;
testMigration(
args: TestMigrationCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: TestMigrationCommandOutput) => void
): void;
}

/**
* @public
* <fullname>Amazon ElastiCache</fullname>
* <p>Amazon ElastiCache is a web service that makes it easier to set up, operate,
* and scale a distributed cache in the cloud.</p>
* <p>With ElastiCache, customers get all of the benefits of a high-performance,
* in-memory cache with less of the administrative burden involved in launching and managing a distributed cache.
* The service makes setup, scaling,
* and cluster failure handling much simpler than in a self-managed cache deployment.</p>
* <p>In addition, through integration with Amazon CloudWatch,
* customers get enhanced visibility into the key performance statistics
* associated with their cache and can receive alarms if a part of their cache runs hot.</p>
* <p>Amazon ElastiCache is a web service that makes it easier to set up, operate, and scale
* a distributed cache in the cloud.</p>
* <p>With ElastiCache, customers get all of the benefits of a high-performance, in-memory
* cache with less of the administrative burden involved in launching and managing a
* distributed cache. The service makes setup, scaling, and cluster failure handling much
* simpler than in a self-managed cache deployment.</p>
* <p>In addition, through integration with Amazon CloudWatch, customers get enhanced
* visibility into the key performance statistics associated with their cache and can
* receive alarms if a part of their cache runs hot.</p>
*/
export class ElastiCache extends ElastiCacheClient implements ElastiCache {}
createAggregatedClient(commands, ElastiCache);
25 changes: 14 additions & 11 deletions clients/client-elasticache/src/ElastiCacheClient.ts
Expand Up @@ -247,6 +247,7 @@ import {
} from "./commands/RevokeCacheSecurityGroupIngressCommand";
import { StartMigrationCommandInput, StartMigrationCommandOutput } from "./commands/StartMigrationCommand";
import { TestFailoverCommandInput, TestFailoverCommandOutput } from "./commands/TestFailoverCommand";
import { TestMigrationCommandInput, TestMigrationCommandOutput } from "./commands/TestMigrationCommand";
import {
ClientInputEndpointParameters,
ClientResolvedEndpointParameters,
Expand Down Expand Up @@ -325,7 +326,8 @@ export type ServiceInputTypes =
| ResetCacheParameterGroupCommandInput
| RevokeCacheSecurityGroupIngressCommandInput
| StartMigrationCommandInput
| TestFailoverCommandInput;
| TestFailoverCommandInput
| TestMigrationCommandInput;

/**
* @public
Expand Down Expand Up @@ -395,7 +397,8 @@ export type ServiceOutputTypes =
| ResetCacheParameterGroupCommandOutput
| RevokeCacheSecurityGroupIngressCommandOutput
| StartMigrationCommandOutput
| TestFailoverCommandOutput;
| TestFailoverCommandOutput
| TestMigrationCommandOutput;

/**
* @public
Expand Down Expand Up @@ -562,15 +565,15 @@ export interface ElastiCacheClientResolvedConfig extends ElastiCacheClientResolv
/**
* @public
* <fullname>Amazon ElastiCache</fullname>
* <p>Amazon ElastiCache is a web service that makes it easier to set up, operate,
* and scale a distributed cache in the cloud.</p>
* <p>With ElastiCache, customers get all of the benefits of a high-performance,
* in-memory cache with less of the administrative burden involved in launching and managing a distributed cache.
* The service makes setup, scaling,
* and cluster failure handling much simpler than in a self-managed cache deployment.</p>
* <p>In addition, through integration with Amazon CloudWatch,
* customers get enhanced visibility into the key performance statistics
* associated with their cache and can receive alarms if a part of their cache runs hot.</p>
* <p>Amazon ElastiCache is a web service that makes it easier to set up, operate, and scale
* a distributed cache in the cloud.</p>
* <p>With ElastiCache, customers get all of the benefits of a high-performance, in-memory
* cache with less of the administrative burden involved in launching and managing a
* distributed cache. The service makes setup, scaling, and cluster failure handling much
* simpler than in a self-managed cache deployment.</p>
* <p>In addition, through integration with Amazon CloudWatch, customers get enhanced
* visibility into the key performance statistics associated with their cache and can
* receive alarms if a part of their cache runs hot.</p>
*/
export class ElastiCacheClient extends __Client<
__HttpHandlerOptions,
Expand Down
40 changes: 23 additions & 17 deletions clients/client-elasticache/src/commands/AddTagsToResourceCommand.ts
Expand Up @@ -36,18 +36,18 @@ export interface AddTagsToResourceCommandOutput extends TagListMessage, __Metada

/**
* @public
* <p>A tag is a key-value pair where the key and value are case-sensitive.
* You can use tags to categorize and track all your ElastiCache resources, with the exception of global replication group. When you add or remove tags on replication groups, those actions will be replicated to all nodes in the replication group.
* For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/IAM.ResourceLevelPermissions.html">Resource-level permissions</a>.</p>
* <p>
* For example, you can use cost-allocation tags to your ElastiCache resources,
* Amazon generates a cost allocation report as a comma-separated value (CSV) file
* with your usage and costs aggregated by your tags.
* You can apply tags that represent business categories (such as cost centers, application names, or owners)
* to organize your costs across multiple services.</p>
* <p>For more information,
* see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Tagging.html">Using Cost Allocation Tags in Amazon ElastiCache</a>
* in the <i>ElastiCache User Guide</i>.</p>
* <p>A tag is a key-value pair where the key and value are case-sensitive. You can use tags
* to categorize and track all your ElastiCache resources, with the exception of global
* replication group. When you add or remove tags on replication groups, those actions will
* be replicated to all nodes in the replication group. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/IAM.ResourceLevelPermissions.html">Resource-level permissions</a>.</p>
* <p> For example, you can use cost-allocation tags to your ElastiCache resources, Amazon
* generates a cost allocation report as a comma-separated value (CSV) file with your usage
* and costs aggregated by your tags. You can apply tags that represent business categories
* (such as cost centers, application names, or owners) to organize your costs across
* multiple services.</p>
* <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Tagging.html">Using Cost Allocation Tags in
* Amazon ElastiCache</a> in the <i>ElastiCache User
* Guide</i>.</p>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
Expand Down Expand Up @@ -86,16 +86,20 @@ export interface AddTagsToResourceCommandOutput extends TagListMessage, __Metada
* <p>The requested cluster ID does not refer to an existing cluster.</p>
*
* @throws {@link CacheParameterGroupNotFoundFault} (client fault)
* <p>The requested cache parameter group name does not refer to an existing cache parameter group.</p>
* <p>The requested cache parameter group name does not refer to an existing cache parameter
* group.</p>
*
* @throws {@link CacheSecurityGroupNotFoundFault} (client fault)
* <p>The requested cache security group name does not refer to an existing cache security group.</p>
* <p>The requested cache security group name does not refer to an existing cache security
* group.</p>
*
* @throws {@link CacheSubnetGroupNotFoundFault} (client fault)
* <p>The requested cache subnet group name does not refer to an existing cache subnet group.</p>
* <p>The requested cache subnet group name does not refer to an existing cache subnet
* group.</p>
*
* @throws {@link InvalidARNFault} (client fault)
* <p>The requested Amazon Resource Name (ARN) does not refer to an existing resource.</p>
* <p>The requested Amazon Resource Name (ARN) does not refer to an existing
* resource.</p>
*
* @throws {@link InvalidReplicationGroupStateFault} (client fault)
* <p>The requested replication group is not in the <code>available</code> state.</p>
Expand All @@ -110,7 +114,9 @@ export interface AddTagsToResourceCommandOutput extends TagListMessage, __Metada
* <p>The requested snapshot name does not refer to an existing snapshot.</p>
*
* @throws {@link TagQuotaPerResourceExceeded} (client fault)
* <p>The request cannot be processed because it would cause the resource to have more than the allowed number of tags. The maximum number of tags permitted on a resource is 50.</p>
* <p>The request cannot be processed because it would cause the resource to have more than
* the allowed number of tags. The maximum number of tags permitted on a resource is
* 50.</p>
*
* @throws {@link UserGroupNotFoundFault} (client fault)
* <p>The user group was not found or does not exist</p>
Expand Down
Expand Up @@ -44,12 +44,12 @@ export interface AuthorizeCacheSecurityGroupIngressCommandOutput

/**
* @public
* <p>Allows network ingress to a cache
* security group. Applications using ElastiCache must be running on Amazon EC2, and Amazon EC2
* security groups are used as the authorization mechanism.</p>
* <p>Allows network ingress to a cache security group. Applications using ElastiCache must
* be running on Amazon EC2, and Amazon EC2 security groups are used as the authorization
* mechanism.</p>
* <note>
* <p>You cannot authorize ingress from an Amazon EC2 security group in one region to an
* ElastiCache cluster in another region.</p>
* ElastiCache cluster in another region.</p>
* </note>
* @example
* Use a bare-bones client and the command you need to make an API call.
Expand Down Expand Up @@ -89,10 +89,12 @@ export interface AuthorizeCacheSecurityGroupIngressCommandOutput
* @see {@link ElastiCacheClientResolvedConfig | config} for ElastiCacheClient's `config` shape.
*
* @throws {@link AuthorizationAlreadyExistsFault} (client fault)
* <p>The specified Amazon EC2 security group is already authorized for the specified cache security group.</p>
* <p>The specified Amazon EC2 security group is already authorized for the specified cache
* security group.</p>
*
* @throws {@link CacheSecurityGroupNotFoundFault} (client fault)
* <p>The requested cache security group name does not refer to an existing cache security group.</p>
* <p>The requested cache security group name does not refer to an existing cache security
* group.</p>
*
* @throws {@link InvalidCacheSecurityGroupStateFault} (client fault)
* <p>The current state of the cache security group does not allow deletion.</p>
Expand Down
Expand Up @@ -36,7 +36,9 @@ export interface BatchApplyUpdateActionCommandOutput extends UpdateActionResults

/**
* @public
* <p>Apply the service update. For more information on service updates and applying them, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/applying-updates.html">Applying Service Updates</a>.</p>
* <p>Apply the service update. For more information on service updates and applying them,
* see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/applying-updates.html">Applying Service
* Updates</a>.</p>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
Expand Down
Expand Up @@ -36,7 +36,9 @@ export interface BatchStopUpdateActionCommandOutput extends UpdateActionResultsM

/**
* @public
* <p>Stop the service update. For more information on service updates and stopping them, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/stopping-self-service-updates.html">Stopping Service Updates</a>.</p>
* <p>Stop the service update. For more information on service updates and stopping them,
* see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/stopping-self-service-updates.html">Stopping
* Service Updates</a>.</p>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
Expand Down

0 comments on commit f0d3d51

Please sign in to comment.