testDNSAnswer method
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);
}