Skip to content

Commit

Permalink
feat(client-route53resolver): Add dual-stack and IPv6 support for Rou…
Browse files Browse the repository at this point in the history
…te 53 Resolver Endpoint,Add IPv6 target IP in Route 53 Resolver Forwarding Rule
  • Loading branch information
awstools committed Mar 8, 2023
1 parent af81575 commit ab22b63
Show file tree
Hide file tree
Showing 21 changed files with 1,953 additions and 2,177 deletions.
6 changes: 0 additions & 6 deletions clients/client-route53resolver/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,31 +14,25 @@ from Route 53 Resolver. By default, Resolver answers DNS queries for VPC domain
such as domain names for EC2 instances or Elastic Load Balancing load balancers.
Resolver performs recursive lookups against public name servers for all other domain
names.</p>

<p>You can also configure DNS resolution between your VPC and your network over a Direct Connect or VPN connection:</p>

<p>
<b>Forward DNS queries from resolvers on your network to Route 53 Resolver</b>
</p>

<p>DNS resolvers on your network can forward DNS queries to Resolver in a specified VPC. This allows your DNS resolvers
to easily resolve domain names for Amazon Web Services resources such as EC2 instances or records in a Route 53 private hosted zone.
For more information, see
<a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html#resolver-overview-forward-network-to-vpc">How DNS Resolvers
on Your Network Forward DNS Queries to Route 53 Resolver</a> in the <i>Amazon Route 53 Developer Guide</i>.</p>

<p>
<b>Conditionally forward queries from a VPC to resolvers on your network</b>
</p>

<p>You can configure Resolver to forward queries that it receives from EC2 instances in your VPCs to DNS resolvers on your network.
To forward selected queries, you create Resolver rules that specify the domain names for the DNS queries that you want to forward
(such as example.com), and the IP addresses of the DNS resolvers on your network that you want to forward the queries to.
If a query matches multiple rules (example.com, acme.example.com), Resolver chooses the rule with the most specific match
(acme.example.com) and forwards the query to the IP addresses that you specified in that rule. For more information, see
<a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html#resolver-overview-forward-vpc-to-network">How Route 53 Resolver
Forwards DNS Queries from Your VPCs to Your Network</a> in the <i>Amazon Route 53 Developer Guide</i>.</p>

<p>Like Amazon VPC, Resolver is Regional. In each Region where you have VPCs, you can choose
whether to forward queries from your VPCs to your network (outbound queries), from your
network to your VPCs (inbound queries), or both.</p>
Expand Down
80 changes: 34 additions & 46 deletions clients/client-route53resolver/src/Route53Resolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -320,32 +320,26 @@ import { Route53ResolverClient } from "./Route53ResolverClient";
* such as domain names for EC2 instances or Elastic Load Balancing load balancers.
* Resolver performs recursive lookups against public name servers for all other domain
* names.</p>
*
* <p>You can also configure DNS resolution between your VPC and your network over a Direct Connect or VPN connection:</p>
*
* <p>
* <p>You can also configure DNS resolution between your VPC and your network over a Direct Connect or VPN connection:</p>
* <p>
* <b>Forward DNS queries from resolvers on your network to Route 53 Resolver</b>
* </p>
*
* <p>DNS resolvers on your network can forward DNS queries to Resolver in a specified VPC. This allows your DNS resolvers
* <p>DNS resolvers on your network can forward DNS queries to Resolver in a specified VPC. This allows your DNS resolvers
* to easily resolve domain names for Amazon Web Services resources such as EC2 instances or records in a Route 53 private hosted zone.
* For more information, see
* <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html#resolver-overview-forward-network-to-vpc">How DNS Resolvers
* on Your Network Forward DNS Queries to Route 53 Resolver</a> in the <i>Amazon Route 53 Developer Guide</i>.</p>
*
* <p>
* <p>
* <b>Conditionally forward queries from a VPC to resolvers on your network</b>
* </p>
*
* <p>You can configure Resolver to forward queries that it receives from EC2 instances in your VPCs to DNS resolvers on your network.
* <p>You can configure Resolver to forward queries that it receives from EC2 instances in your VPCs to DNS resolvers on your network.
* To forward selected queries, you create Resolver rules that specify the domain names for the DNS queries that you want to forward
* (such as example.com), and the IP addresses of the DNS resolvers on your network that you want to forward the queries to.
* If a query matches multiple rules (example.com, acme.example.com), Resolver chooses the rule with the most specific match
* (acme.example.com) and forwards the query to the IP addresses that you specified in that rule. For more information, see
* <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html#resolver-overview-forward-vpc-to-network">How Route 53 Resolver
* Forwards DNS Queries from Your VPCs to Your Network</a> in the <i>Amazon Route 53 Developer Guide</i>.</p>
*
* <p>Like Amazon VPC, Resolver is Regional. In each Region where you have VPCs, you can choose
* <p>Like Amazon VPC, Resolver is Regional. In each Region where you have VPCs, you can choose
* whether to forward queries from your VPCs to your network (outbound queries), from your
* network to your VPCs (inbound queries), or both.</p>
*/
Expand Down Expand Up @@ -385,7 +379,7 @@ export class Route53Resolver extends Route53ResolverClient {
/**
* <p>Adds IP addresses to an inbound or an outbound Resolver endpoint. If you want to add more than one IP address,
* submit one <code>AssociateResolverEndpointIpAddress</code> request for each IP address.</p>
* <p>To remove an IP address from an endpoint, see
* <p>To remove an IP address from an endpoint, see
* <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverEndpointIpAddress.html">DisassociateResolverEndpointIpAddress</a>.
* </p>
*/
Expand Down Expand Up @@ -422,12 +416,10 @@ export class Route53Resolver extends Route53ResolverClient {
* <p>Associates an Amazon VPC with a specified query logging configuration. Route 53 Resolver logs DNS queries that originate in all of the Amazon VPCs
* that are associated with a specified query logging configuration. To associate more than one VPC with a configuration, submit one <code>AssociateResolverQueryLogConfig</code>
* request for each VPC.</p>
*
* <note>
* <note>
* <p>The VPCs that you associate with a query logging configuration must be in the same Region as the configuration.</p>
* </note>
*
* <p>To remove a VPC from a query logging configuration, see
* <p>To remove a VPC from a query logging configuration, see
* <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html">DisassociateResolverQueryLogConfig</a>.
* </p>
*/
Expand Down Expand Up @@ -594,7 +586,7 @@ export class Route53Resolver extends Route53ResolverClient {

/**
* <p>Creates a Resolver endpoint. There are two types of Resolver endpoints, inbound and outbound:</p>
* <ul>
* <ul>
* <li>
* <p>An <i>inbound Resolver endpoint</i> forwards DNS queries to the DNS service for a VPC
* from your network.</p>
Expand Down Expand Up @@ -637,11 +629,9 @@ export class Route53Resolver extends Route53ResolverClient {
/**
* <p>Creates a Resolver query logging configuration, which defines where you want Resolver to save DNS query logs that originate in your VPCs.
* Resolver can log queries only for VPCs that are in the same Region as the query logging configuration.</p>
*
* <p>To specify which VPCs you want to log queries for, you use <code>AssociateResolverQueryLogConfig</code>. For more information, see
* <p>To specify which VPCs you want to log queries for, you use <code>AssociateResolverQueryLogConfig</code>. For more information, see
* <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverQueryLogConfig.html">AssociateResolverQueryLogConfig</a>. </p>
*
* <p>You can optionally use Resource Access Manager (RAM) to share a query logging configuration with other Amazon Web Services accounts. The other accounts
* <p>You can optionally use Resource Access Manager (RAM) to share a query logging configuration with other Amazon Web Services accounts. The other accounts
* can then associate VPCs with the configuration. The query logs that Resolver creates for a configuration include all DNS queries that originate in all
* VPCs that are associated with the configuration.</p>
*/
Expand Down Expand Up @@ -806,7 +796,7 @@ export class Route53Resolver extends Route53ResolverClient {
/**
* <p>Deletes a Resolver endpoint. The effect of deleting a Resolver endpoint depends on whether it's an inbound or an outbound
* Resolver endpoint:</p>
* <ul>
* <ul>
* <li>
* <p>
* <b>Inbound</b>: DNS queries from your network are no longer routed
Expand Down Expand Up @@ -851,11 +841,9 @@ export class Route53Resolver extends Route53ResolverClient {
* <p>Deletes a query logging configuration. When you delete a configuration, Resolver stops logging DNS queries for all of the Amazon VPCs that are
* associated with the configuration. This also applies if the query logging configuration is shared with other Amazon Web Services accounts, and
* the other accounts have associated VPCs with the shared configuration.</p>
*
* <p>Before you can delete a query logging configuration, you must first disassociate all VPCs from the configuration. See
* <p>Before you can delete a query logging configuration, you must first disassociate all VPCs from the configuration. See
* <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html">DisassociateResolverQueryLogConfig</a>.</p>
*
* <p>If you used Resource Access Manager (RAM) to share a query logging configuration with other accounts, you must stop sharing
* <p>If you used Resource Access Manager (RAM) to share a query logging configuration with other accounts, you must stop sharing
* the configuration before you can delete a configuration. The accounts that you shared the configuration with can first disassociate VPCs
* that they associated with the configuration, but that's not necessary. If you stop sharing the configuration, those VPCs are automatically
* disassociated from the configuration.</p>
Expand Down Expand Up @@ -958,7 +946,7 @@ export class Route53Resolver extends Route53ResolverClient {
/**
* <p>Removes IP addresses from an inbound or an outbound Resolver endpoint. If you want to remove more than one IP address,
* submit one <code>DisassociateResolverEndpointIpAddress</code> request for each IP address.</p>
* <p>To add an IP address to an endpoint, see
* <p>To add an IP address to an endpoint, see
* <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverEndpointIpAddress.html">AssociateResolverEndpointIpAddress</a>.
* </p>
*/
Expand Down Expand Up @@ -995,21 +983,20 @@ export class Route53Resolver extends Route53ResolverClient {

/**
* <p>Disassociates a VPC from a query logging configuration.</p>
*
* <note>
* <p>Before you can delete a query logging configuration, you must first disassociate all VPCs
* <note>
* <p>Before you can delete a query logging configuration, you must first disassociate all VPCs
* from the configuration. If you used Resource Access Manager (RAM) to share a
* query logging configuration with other accounts, VPCs can be disassociated from the
* configuration in the following ways:</p>
* <ul>
* <ul>
* <li>
* <p>The accounts that you shared the configuration with can disassociate VPCs from the configuration.</p>
* </li>
* <li>
* <p>You can stop sharing the configuration.</p>
* </li>
* </ul>
* </note>
* </note>
*/
public disassociateResolverQueryLogConfig(
args: DisassociateResolverQueryLogConfigCommandInput,
Expand Down Expand Up @@ -1042,10 +1029,10 @@ export class Route53Resolver extends Route53ResolverClient {

/**
* <p>Removes the association between a specified Resolver rule and a specified VPC.</p>
* <important>
* <p>If you disassociate a Resolver rule from a VPC, Resolver stops forwarding DNS queries for the
* <important>
* <p>If you disassociate a Resolver rule from a VPC, Resolver stops forwarding DNS queries for the
* domain name that you specified in the Resolver rule. </p>
* </important>
* </important>
*/
public disassociateResolverRule(
args: DisassociateResolverRuleCommandInput,
Expand Down Expand Up @@ -1239,7 +1226,7 @@ export class Route53Resolver extends Route53ResolverClient {
}

/**
* <p>Retrieves the behavior configuration of Route 53 Resolver behavior for a single VPC from
* <p>Retrieves the behavior configuration of Route 53 Resolver behavior for a single VPC from
* Amazon Virtual Private Cloud.</p>
*/
public getResolverConfig(
Expand Down Expand Up @@ -1540,16 +1527,16 @@ export class Route53Resolver extends Route53ResolverClient {
* requirements: </p>
* <ul>
* <li>
* <p>It can optionally start with <code>*</code> (asterisk).</p>
* </li>
* <p>It can optionally start with <code>*</code> (asterisk).</p>
* </li>
* <li>
* <p>With the exception of the optional starting asterisk, it must only contain
* <p>With the exception of the optional starting asterisk, it must only contain
* the following characters: <code>A-Z</code>, <code>a-z</code>,
* <code>0-9</code>, <code>-</code> (hyphen).</p>
* </li>
* </li>
* <li>
* <p>It must be from 1-255 characters in length. </p>
* </li>
* <p>It must be from 1-255 characters in length. </p>
* </li>
* </ul>
*/
public importFirewallDomains(
Expand Down Expand Up @@ -1781,7 +1768,7 @@ export class Route53Resolver extends Route53ResolverClient {

/**
* <p>Retrieves the Resolver configurations that you have defined.
* Route 53 Resolver uses the configurations to manage DNS resolution behavior for your VPCs.</p>
* Route 53 Resolver uses the configurations to manage DNS resolution behavior for your VPCs.</p>
*/
public listResolverConfigs(
args: ListResolverConfigsCommandInput,
Expand Down Expand Up @@ -2359,7 +2346,7 @@ export class Route53Resolver extends Route53ResolverClient {
}

/**
* <p>Updates the behavior configuration of Route 53 Resolver behavior for a single VPC from
* <p>Updates the behavior configuration of Route 53 Resolver behavior for a single VPC from
* Amazon Virtual Private Cloud.</p>
*/
public updateResolverConfig(
Expand Down Expand Up @@ -2424,7 +2411,8 @@ export class Route53Resolver extends Route53ResolverClient {
}

/**
* <p>Updates the name of an inbound or an outbound Resolver endpoint. </p>
* <p>Updates the name, or enpoint type for an inbound or an outbound Resolver endpoint.
* You can only update between IPV4 and DUALSTACK, IPV6 endpoint type can't be updated to other type. </p>
*/
public updateResolverEndpoint(
args: UpdateResolverEndpointCommandInput,
Expand Down
18 changes: 6 additions & 12 deletions clients/client-route53resolver/src/Route53ResolverClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -555,32 +555,26 @@ export interface Route53ResolverClientResolvedConfig extends Route53ResolverClie
* such as domain names for EC2 instances or Elastic Load Balancing load balancers.
* Resolver performs recursive lookups against public name servers for all other domain
* names.</p>
*
* <p>You can also configure DNS resolution between your VPC and your network over a Direct Connect or VPN connection:</p>
*
* <p>
* <p>You can also configure DNS resolution between your VPC and your network over a Direct Connect or VPN connection:</p>
* <p>
* <b>Forward DNS queries from resolvers on your network to Route 53 Resolver</b>
* </p>
*
* <p>DNS resolvers on your network can forward DNS queries to Resolver in a specified VPC. This allows your DNS resolvers
* <p>DNS resolvers on your network can forward DNS queries to Resolver in a specified VPC. This allows your DNS resolvers
* to easily resolve domain names for Amazon Web Services resources such as EC2 instances or records in a Route 53 private hosted zone.
* For more information, see
* <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html#resolver-overview-forward-network-to-vpc">How DNS Resolvers
* on Your Network Forward DNS Queries to Route 53 Resolver</a> in the <i>Amazon Route 53 Developer Guide</i>.</p>
*
* <p>
* <p>
* <b>Conditionally forward queries from a VPC to resolvers on your network</b>
* </p>
*
* <p>You can configure Resolver to forward queries that it receives from EC2 instances in your VPCs to DNS resolvers on your network.
* <p>You can configure Resolver to forward queries that it receives from EC2 instances in your VPCs to DNS resolvers on your network.
* To forward selected queries, you create Resolver rules that specify the domain names for the DNS queries that you want to forward
* (such as example.com), and the IP addresses of the DNS resolvers on your network that you want to forward the queries to.
* If a query matches multiple rules (example.com, acme.example.com), Resolver chooses the rule with the most specific match
* (acme.example.com) and forwards the query to the IP addresses that you specified in that rule. For more information, see
* <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html#resolver-overview-forward-vpc-to-network">How Route 53 Resolver
* Forwards DNS Queries from Your VPCs to Your Network</a> in the <i>Amazon Route 53 Developer Guide</i>.</p>
*
* <p>Like Amazon VPC, Resolver is Regional. In each Region where you have VPCs, you can choose
* <p>Like Amazon VPC, Resolver is Regional. In each Region where you have VPCs, you can choose
* whether to forward queries from your VPCs to your network (outbound queries), from your
* network to your VPCs (inbound queries), or both.</p>
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export interface AssociateResolverEndpointIpAddressCommandOutput
/**
* <p>Adds IP addresses to an inbound or an outbound Resolver endpoint. If you want to add more than one IP address,
* submit one <code>AssociateResolverEndpointIpAddress</code> request for each IP address.</p>
* <p>To remove an IP address from an endpoint, see
* <p>To remove an IP address from an endpoint, see
* <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverEndpointIpAddress.html">DisassociateResolverEndpointIpAddress</a>.
* </p>
* @example
Expand Down
Loading

0 comments on commit ab22b63

Please sign in to comment.