purchase_reserved_cache_nodes_offering

purchase_reserved_cache_nodes_offering(**kwargs)

Allows you to purchase a reserved cache node offering. Reserved nodes are not eligible for cancellation and are non-refundable. For more information, see Managing Costs with Reserved Nodes for Redis or Managing Costs with Reserved Nodes for Memcached.

See also: AWS API Documentation

Request Syntax

response = client.purchase_reserved_cache_nodes_offering(
    ReservedCacheNodesOfferingId='string',
    ReservedCacheNodeId='string',
    CacheNodeCount=123,
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ]
)
Parameters
  • ReservedCacheNodesOfferingId (string) --

    [REQUIRED]

    The ID of the reserved cache node offering to purchase.

    Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706

  • ReservedCacheNodeId (string) --

    A customer-specified identifier to track this reservation.

    Note

    The Reserved Cache Node ID is an unique customer-specified identifier to track this reservation. If this parameter is not specified, ElastiCache automatically generates an identifier for the reservation.

    Example: myreservationID

  • CacheNodeCount (integer) --

    The number of cache node instances to reserve.

    Default: 1

  • Tags (list) --

    A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted.

    • (dict) --

      A tag that can be added to an ElastiCache cluster or replication group. Tags are composed of a Key/Value pair. 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. A tag with a null Value is permitted.

      • Key (string) --

        The key for the tag. May not be null.

      • Value (string) --

        The tag's value. May be null.

Return type

dict

Returns

Response Syntax

{
    'ReservedCacheNode': {
        'ReservedCacheNodeId': 'string',
        'ReservedCacheNodesOfferingId': 'string',
        'CacheNodeType': 'string',
        'StartTime': datetime(2015, 1, 1),
        'Duration': 123,
        'FixedPrice': 123.0,
        'UsagePrice': 123.0,
        'CacheNodeCount': 123,
        'ProductDescription': 'string',
        'OfferingType': 'string',
        'State': 'string',
        'RecurringCharges': [
            {
                'RecurringChargeAmount': 123.0,
                'RecurringChargeFrequency': 'string'
            },
        ],
        'ReservationARN': 'string'
    }
}

Response Structure

  • (dict) --

    • ReservedCacheNode (dict) --

      Represents the output of a PurchaseReservedCacheNodesOffering operation.

      • ReservedCacheNodeId (string) --

        The unique identifier for the reservation.

      • ReservedCacheNodesOfferingId (string) --

        The offering identifier.

      • CacheNodeType (string) --

        The cache node type for the reserved cache nodes.

        The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

        • General purpose:

          • Current generation: M6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large , cache.m6g.xlarge , cache.m6g.2xlarge , cache.m6g.4xlarge , cache.m6g.8xlarge , cache.m6g.12xlarge , cache.m6g.16xlarge

          Note

          For region availability, see Supported Node Types

          M5 node types: cache.m5.large , cache.m5.xlarge , cache.m5.2xlarge , cache.m5.4xlarge , cache.m5.12xlarge , cache.m5.24xlarge M4 node types: cache.m4.large , cache.m4.xlarge , cache.m4.2xlarge , cache.m4.4xlarge , cache.m4.10xlarge T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro , cache.t4g.small , cache.t4g.medium T3 node types: cache.t3.micro , cache.t3.small , cache.t3.medium T2 node types: cache.t2.micro , cache.t2.small , cache.t2.medium

          • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) T1 node types: cache.t1.micro M1 node types: cache.m1.small , cache.m1.medium , cache.m1.large , cache.m1.xlarge M3 node types: cache.m3.medium , cache.m3.large , cache.m3.xlarge , cache.m3.2xlarge
        • Compute optimized:

          • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) C1 node types: cache.c1.xlarge
        • Memory optimized:

          • Current generation: R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward). cache.r6g.large , cache.r6g.xlarge , cache.r6g.2xlarge , cache.r6g.4xlarge , cache.r6g.8xlarge , cache.r6g.12xlarge , cache.r6g.16xlarge

          Note

          For region availability, see Supported Node Types

          R5 node types: cache.r5.large , cache.r5.xlarge , cache.r5.2xlarge , cache.r5.4xlarge , cache.r5.12xlarge , cache.r5.24xlarge R4 node types: cache.r4.large , cache.r4.xlarge , cache.r4.2xlarge , cache.r4.4xlarge , cache.r4.8xlarge , cache.r4.16xlarge

          • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) M2 node types: cache.m2.xlarge , cache.m2.2xlarge , cache.m2.4xlarge R3 node types: cache.r3.large , cache.r3.xlarge , cache.r3.2xlarge , cache.r3.4xlarge , cache.r3.8xlarge

        Additional node type info

        • All current generation instance types are created in Amazon VPC by default.
        • Redis append-only files (AOF) are not supported for T1 or T2 instances.
        • Redis Multi-AZ with automatic failover is not supported on T1 instances.
        • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.
      • StartTime (datetime) --

        The time the reservation started.

      • Duration (integer) --

        The duration of the reservation in seconds.

      • FixedPrice (float) --

        The fixed price charged for this reserved cache node.

      • UsagePrice (float) --

        The hourly price charged for this reserved cache node.

      • CacheNodeCount (integer) --

        The number of cache nodes that have been reserved.

      • ProductDescription (string) --

        The description of the reserved cache node.

      • OfferingType (string) --

        The offering type of this reserved cache node.

      • State (string) --

        The state of the reserved cache node.

      • RecurringCharges (list) --

        The recurring price charged to run this reserved cache node.

        • (dict) --

          Contains the specific price and frequency of a recurring charges for a reserved cache node, or for a reserved cache node offering.

          • RecurringChargeAmount (float) --

            The monetary amount of the recurring charge.

          • RecurringChargeFrequency (string) --

            The frequency of the recurring charge.

      • ReservationARN (string) --

        The Amazon Resource Name (ARN) of the reserved cache node.

        Example: arn:aws:elasticache:us-east-1:123456789012:reserved-instance:ri-2017-03-27-08-33-25-582

Exceptions

  • ElastiCache.Client.exceptions.ReservedCacheNodesOfferingNotFoundFault
  • ElastiCache.Client.exceptions.ReservedCacheNodeAlreadyExistsFault
  • ElastiCache.Client.exceptions.ReservedCacheNodeQuotaExceededFault
  • ElastiCache.Client.exceptions.TagQuotaPerResourceExceeded
  • ElastiCache.Client.exceptions.InvalidParameterValueException
  • ElastiCache.Client.exceptions.InvalidParameterCombinationException

Examples

Allows you to purchase a reserved cache node offering.

response = client.purchase_reserved_cache_nodes_offering(
    ReservedCacheNodesOfferingId='1ef01f5b-94ff-433f-a530-61a56bfc8e7a',
)

print(response)

Expected Output:

{
    'ResponseMetadata': {
        '...': '...',
    },
}