testDNSAnswer method

Future<TestDNSAnswerResponse> testDNSAnswer({
  1. required String hostedZoneId,
  2. required String recordName,
  3. required RRType recordType,
  4. String? eDNS0ClientSubnetIP,
  5. String? eDNS0ClientSubnetMask,
  6. String? resolverIP,
})

Gets the value that Amazon Route 53 returns in response to a DNS request for a specified record name and type. You can optionally specify the IP address of a DNS resolver, an EDNS0 client subnet IP address, and a subnet mask.

May throw NoSuchHostedZone. May throw InvalidInput.

Parameter hostedZoneId : The ID of the hosted zone that you want Amazon Route 53 to simulate a query for.

Parameter recordName : The name of the resource record set that you want Amazon Route 53 to simulate a query for.

Parameter recordType : The type of the resource record set.

Parameter eDNS0ClientSubnetIP : If the resolver that you specified for resolverip supports EDNS0, specify the IPv4 or IPv6 address of a client in the applicable location, for example, 192.0.2.44 or 2001:db8:85a3::8a2e:370:7334.

Parameter eDNS0ClientSubnetMask : If you specify an IP address for edns0clientsubnetip, you can optionally specify the number of bits of the IP address that you want the checking tool to include in the DNS query. For example, if you specify 192.0.2.44 for edns0clientsubnetip and 24 for edns0clientsubnetmask, the checking tool will simulate a request from 192.0.2.0/24. The default value is 24 bits for IPv4 addresses and 64 bits for IPv6 addresses.

The range of valid values depends on whether edns0clientsubnetip is an IPv4 or an IPv6 address:

  • IPv4: Specify a value between 0 and 32
  • IPv6: Specify a value between 0 and 128

Parameter resolverIP : If you want to simulate a request from a specific DNS resolver, specify the IP address for that resolver. If you omit this value, TestDnsAnswer uses the IP address of a DNS resolver in the AWS US East (N. Virginia) Region (us-east-1).

Implementation

Future<TestDNSAnswerResponse> testDNSAnswer({
  required String hostedZoneId,
  required String recordName,
  required RRType recordType,
  String? eDNS0ClientSubnetIP,
  String? eDNS0ClientSubnetMask,
  String? resolverIP,
}) async {
  ArgumentError.checkNotNull(hostedZoneId, 'hostedZoneId');
  _s.validateStringLength(
    'hostedZoneId',
    hostedZoneId,
    0,
    32,
    isRequired: true,
  );
  ArgumentError.checkNotNull(recordName, 'recordName');
  _s.validateStringLength(
    'recordName',
    recordName,
    0,
    1024,
    isRequired: true,
  );
  ArgumentError.checkNotNull(recordType, 'recordType');
  _s.validateStringLength(
    'eDNS0ClientSubnetIP',
    eDNS0ClientSubnetIP,
    0,
    45,
  );
  _s.validateStringLength(
    'eDNS0ClientSubnetMask',
    eDNS0ClientSubnetMask,
    0,
    3,
  );
  _s.validateStringLength(
    'resolverIP',
    resolverIP,
    0,
    45,
  );
  final $query = <String, List<String>>{
    'hostedzoneid': [hostedZoneId],
    'recordname': [recordName],
    'recordtype': [recordType.toValue()],
    if (eDNS0ClientSubnetIP != null)
      'edns0clientsubnetip': [eDNS0ClientSubnetIP],
    if (eDNS0ClientSubnetMask != null)
      'edns0clientsubnetmask': [eDNS0ClientSubnetMask],
    if (resolverIP != null) 'resolverip': [resolverIP],
  };
  final $result = await _protocol.send(
    method: 'GET',
    requestUri: '/2013-04-01/testdnsanswer',
    queryParams: $query,
    exceptionFnMap: _exceptionFns,
  );
  return TestDNSAnswerResponse.fromXml($result.body);
}