purchaseReservedNodesOffering method

Future<PurchaseReservedNodesOfferingResponse> purchaseReservedNodesOffering({
  1. required String reservedNodesOfferingId,
  2. int? nodeCount,
  3. String? reservationId,
  4. List<Tag>? tags,
})

Allows you to purchase a reserved node offering. Reserved nodes are not eligible for cancellation and are non-refundable.

May throw InvalidParameterCombinationException. May throw InvalidParameterValueException. May throw ReservedNodeAlreadyExistsFault. May throw ReservedNodeQuotaExceededFault. May throw ReservedNodesOfferingNotFoundFault. May throw ServiceLinkedRoleNotFoundFault. May throw TagQuotaPerResourceExceeded.

Parameter reservedNodesOfferingId : The ID of the reserved node offering to purchase.

Parameter nodeCount : The number of node instances to reserve.

Parameter reservationId : A customer-specified identifier to track this reservation.

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<PurchaseReservedNodesOfferingResponse> purchaseReservedNodesOffering({
  required String reservedNodesOfferingId,
  int? nodeCount,
  String? reservationId,
  List<Tag>? tags,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AmazonMemoryDB.PurchaseReservedNodesOffering'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'ReservedNodesOfferingId': reservedNodesOfferingId,
      if (nodeCount != null) 'NodeCount': nodeCount,
      if (reservationId != null) 'ReservationId': reservationId,
      if (tags != null) 'Tags': tags,
    },
  );

  return PurchaseReservedNodesOfferingResponse.fromJson(jsonResponse.body);
}