claimPhoneNumber method

Future<ClaimPhoneNumberResponse> claimPhoneNumber({
  1. required String phoneNumber,
  2. String? clientToken,
  3. String? instanceId,
  4. String? phoneNumberDescription,
  5. Map<String, String>? tags,
  6. String? targetArn,
})

Claims an available phone number to your Connect Customer instance or traffic distribution group. You can call this API only in the same Amazon Web Services Region where the Connect Customer instance or traffic distribution group was created.

For more information about how to use this operation, see Claim a phone number in your country and Claim phone numbers to traffic distribution groups in the Connect Customer Administrator Guide. If you plan to claim and release numbers frequently, contact us for a service quota exception. Otherwise, it is possible you will be blocked from claiming and releasing any more numbers until up to 180 days past the oldest number released has expired.

By default you can claim and release up to 200% of your maximum number of active phone numbers. If you claim and release phone numbers using the UI or API during a rolling 180 day cycle that exceeds 200% of your phone number service level quota, you will be blocked from claiming any more numbers until 180 days past the oldest number released has expired.

For example, if you already have 99 claimed numbers and a service level quota of 99 phone numbers, and in any 180 day period you release 99, claim 99, and then release 99, you will have exceeded the 200% limit. At that point you are blocked from claiming any more numbers until you open an Amazon Web Services support ticket.

May throw AccessDeniedException. May throw IdempotencyException. May throw InternalServiceException. May throw InvalidParameterException. May throw ResourceNotFoundException. May throw ThrottlingException.

Parameter phoneNumber : The phone number you want to claim. Phone numbers are formatted [+] [country code] [subscriber number including area code].

Parameter clientToken : A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

Pattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$

Parameter instanceId : The identifier of the Connect Customer instance that phone numbers are claimed to. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. You must enter InstanceId or TargetArn.

Parameter phoneNumberDescription : The description of the phone number.

Parameter tags : The tags used to organize, track, or control access for this resource. For example, { "Tags": {"key1":"value1", "key2":"value2"} }.

Parameter targetArn : The Amazon Resource Name (ARN) for Connect Customer instances or traffic distribution groups that phone number inbound traffic is routed through. You must enter InstanceId or TargetArn.

Implementation

Future<ClaimPhoneNumberResponse> claimPhoneNumber({
  required String phoneNumber,
  String? clientToken,
  String? instanceId,
  String? phoneNumberDescription,
  Map<String, String>? tags,
  String? targetArn,
}) async {
  final $payload = <String, dynamic>{
    'PhoneNumber': phoneNumber,
    'ClientToken': clientToken ?? _s.generateIdempotencyToken(),
    if (instanceId != null) 'InstanceId': instanceId,
    if (phoneNumberDescription != null)
      'PhoneNumberDescription': phoneNumberDescription,
    if (tags != null) 'Tags': tags,
    if (targetArn != null) 'TargetArn': targetArn,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/phone-number/claim',
    exceptionFnMap: _exceptionFns,
  );
  return ClaimPhoneNumberResponse.fromJson(response);
}