changeCidrCollection method
Creates, changes, or deletes CIDR blocks within a collection. Contains authoritative IP information mapping blocks to one or multiple locations.
A change request can update multiple locations in a collection at a time, which is helpful if you want to move one or more CIDR blocks from one location to another in one transaction, without downtime.
Limits
The max number of CIDR blocks included in the request is 1000. As a result, big updates require multiple API calls.
PUT and DELETE_IF_EXISTS
Use ChangeCidrCollection to perform the following actions:
-
PUT: Create a CIDR block within the specified collection. -
DELETE_IF_EXISTS: Delete an existing CIDR block from the collection.
May throw CidrBlockInUseException.
May throw CidrCollectionVersionMismatchException.
May throw ConcurrentModification.
May throw InvalidInput.
May throw LimitsExceeded.
May throw NoSuchCidrCollectionException.
Parameter changes :
Information about changes to a CIDR collection.
Parameter id :
The UUID of the CIDR collection to update.
Parameter collectionVersion :
A sequential counter that Amazon Route 53 sets to 1 when you create a
collection and increments it by 1 each time you update the collection.
We recommend that you use ListCidrCollection to get the
current value of CollectionVersion for the collection that
you want to update, and then include that value with the change request.
This prevents Route 53 from overwriting an intervening update:
-
If the value in the request matches the value of
CollectionVersionin the collection, Route 53 updates the collection. -
If the value of
CollectionVersionin the collection is greater than the value in the request, the collection was changed after you got the version number. Route 53 does not update the collection, and it returns aCidrCollectionVersionMismatcherror.
Implementation
Future<ChangeCidrCollectionResponse> changeCidrCollection({
required List<CidrCollectionChange> changes,
required String id,
int? collectionVersion,
}) async {
_s.validateNumRange(
'collectionVersion',
collectionVersion,
1,
1152921504606846976,
);
final $result = await _protocol.send(
method: 'POST',
requestUri: '/2013-04-01/cidrcollection/${Uri.encodeComponent(id)}',
payload: ChangeCidrCollectionRequest(
changes: changes, id: id, collectionVersion: collectionVersion)
.toXml('ChangeCidrCollectionRequest'),
exceptionFnMap: _exceptionFns,
);
return ChangeCidrCollectionResponse.fromXml($result.body);
}