purchaseReservedCacheNodesOffering method

Future<PurchaseReservedCacheNodesOfferingResult> purchaseReservedCacheNodesOffering({
  1. required String reservedCacheNodesOfferingId,
  2. int? cacheNodeCount,
  3. String? reservedCacheNodeId,
  4. List<Tag>? tags,
})

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);
}