purchaseReservedCacheNodesOffering method
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.
May throw InvalidParameterCombinationException.
May throw InvalidParameterValueException.
May throw ReservedCacheNodeAlreadyExistsFault.
May throw ReservedCacheNodeQuotaExceededFault.
May throw ReservedCacheNodesOfferingNotFoundFault.
May throw TagQuotaPerResourceExceeded.
Parameter reservedCacheNodesOfferingId :
The ID of the reserved cache node offering to purchase.
Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706
Parameter cacheNodeCount :
The number of cache node instances to reserve.
Default: 1
Parameter reservedCacheNodeId :
A customer-specified identifier to track this reservation.
Example: myreservationID
Parameter tags :
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.
Implementation
Future<PurchaseReservedCacheNodesOfferingResult>
purchaseReservedCacheNodesOffering({
required String reservedCacheNodesOfferingId,
int? cacheNodeCount,
String? reservedCacheNodeId,
List<Tag>? tags,
}) async {
final $request = <String, String>{
'ReservedCacheNodesOfferingId': reservedCacheNodesOfferingId,
if (cacheNodeCount != null) 'CacheNodeCount': cacheNodeCount.toString(),
if (reservedCacheNodeId != null)
'ReservedCacheNodeId': reservedCacheNodeId,
if (tags != null)
if (tags.isEmpty)
'Tags': ''
else
for (var i1 = 0; i1 < tags.length; i1++)
for (var e3 in tags[i1].toQueryMap().entries)
'Tags.Tag.${i1 + 1}.${e3.key}': e3.value,
};
final $result = await _protocol.send(
$request,
action: 'PurchaseReservedCacheNodesOffering',
version: '2015-02-02',
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
resultWrapper: 'PurchaseReservedCacheNodesOfferingResult',
);
return PurchaseReservedCacheNodesOfferingResult.fromXml($result);
}