purchaseReservedDBInstancesOffering method

Future<PurchaseReservedDBInstancesOfferingResult> purchaseReservedDBInstancesOffering({
  1. required String reservedDBInstancesOfferingId,
  2. int? dBInstanceCount,
  3. String? reservedDBInstanceId,
  4. List<Tag>? tags,
})

Purchases a reserved DB instance offering.

May throw ReservedDBInstanceAlreadyExistsFault. May throw ReservedDBInstanceQuotaExceededFault. May throw ReservedDBInstancesOfferingNotFoundFault.

Parameter reservedDBInstancesOfferingId : The ID of the Reserved DB instance offering to purchase.

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

Parameter dBInstanceCount : The number of instances to reserve.

Default: 1

Parameter reservedDBInstanceId : Customer-specified identifier to track this reservation.

Example: myreservationID

Implementation

Future<PurchaseReservedDBInstancesOfferingResult>
    purchaseReservedDBInstancesOffering({
  required String reservedDBInstancesOfferingId,
  int? dBInstanceCount,
  String? reservedDBInstanceId,
  List<Tag>? tags,
}) async {
  final $request = <String, String>{
    'ReservedDBInstancesOfferingId': reservedDBInstancesOfferingId,
    if (dBInstanceCount != null)
      'DBInstanceCount': dBInstanceCount.toString(),
    if (reservedDBInstanceId != null)
      'ReservedDBInstanceId': reservedDBInstanceId,
    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: 'PurchaseReservedDBInstancesOffering',
    version: '2014-10-31',
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    resultWrapper: 'PurchaseReservedDBInstancesOfferingResult',
  );
  return PurchaseReservedDBInstancesOfferingResult.fromXml($result);
}