aws_sdk_route53resolver/client/
create_resolver_endpoint.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2impl super::Client {
3    /// Constructs a fluent builder for the [`CreateResolverEndpoint`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder) operation.
4    ///
5    /// - The fluent builder is configurable:
6    ///   - [`creator_request_id(impl Into<String>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::creator_request_id) / [`set_creator_request_id(Option<String>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::set_creator_request_id):<br>required: **true**<br><p>A unique string that identifies the request and that allows failed requests to be retried without the risk of running the operation twice. <code>CreatorRequestId</code> can be any unique string, for example, a date/time stamp.</p><br>
7    ///   - [`name(impl Into<String>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::name) / [`set_name(Option<String>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::set_name):<br>required: **false**<br><p>A friendly name that lets you easily find a configuration in the Resolver dashboard in the Route 53 console.</p><br>
8    ///   - [`security_group_ids(impl Into<String>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::security_group_ids) / [`set_security_group_ids(Option<Vec::<String>>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::set_security_group_ids):<br>required: **true**<br><p>The ID of one or more security groups that you want to use to control access to this VPC. The security group that you specify must include one or more inbound rules (for inbound Resolver endpoints) or outbound rules (for outbound Resolver endpoints). Inbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port that you're using for DNS queries on your network.</p> <p>Some security group rules will cause your connection to be tracked. For outbound resolver endpoint, it can potentially impact the maximum queries per second from outbound endpoint to your target name server. For inbound resolver endpoint, it can bring down the overall maximum queries per second per IP address to as low as 1500. To avoid connection tracking caused by security group, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#untracked-connectionsl">Untracked connections</a>.</p><br>
9    ///   - [`direction(ResolverEndpointDirection)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::direction) / [`set_direction(Option<ResolverEndpointDirection>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::set_direction):<br>required: **true**<br><p>Specify the applicable value:</p> <ul>  <li>   <p><code>INBOUND</code>: Resolver forwards DNS queries to the DNS service for a VPC from your network.</p></li>  <li>   <p><code>OUTBOUND</code>: Resolver forwards DNS queries from the DNS service for a VPC to your network.</p></li>  <li>   <p><code>INBOUND_DELEGATION</code>: Resolver delegates queries to Route 53 private hosted zones from your network.</p></li> </ul><br>
10    ///   - [`ip_addresses(IpAddressRequest)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::ip_addresses) / [`set_ip_addresses(Option<Vec::<IpAddressRequest>>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::set_ip_addresses):<br>required: **true**<br><p>The subnets and IP addresses in your VPC that DNS queries originate from (for outbound endpoints) or that you forward DNS queries to (for inbound endpoints). The subnet ID uniquely identifies a VPC.</p><note>  <p>Even though the minimum is 1, Route&nbsp;53 requires that you create at least two.</p> </note><br>
11    ///   - [`outpost_arn(impl Into<String>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::outpost_arn) / [`set_outpost_arn(Option<String>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::set_outpost_arn):<br>required: **false**<br><p>The Amazon Resource Name (ARN) of the Outpost. If you specify this, you must also specify a value for the <code>PreferredInstanceType</code>.</p><br>
12    ///   - [`preferred_instance_type(impl Into<String>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::preferred_instance_type) / [`set_preferred_instance_type(Option<String>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::set_preferred_instance_type):<br>required: **false**<br><p>The instance type. If you specify this, you must also specify a value for the <code>OutpostArn</code>.</p><br>
13    ///   - [`tags(Tag)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::set_tags):<br>required: **false**<br><p>A list of the tag keys and values that you want to associate with the endpoint.</p><br>
14    ///   - [`resolver_endpoint_type(ResolverEndpointType)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::resolver_endpoint_type) / [`set_resolver_endpoint_type(Option<ResolverEndpointType>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::set_resolver_endpoint_type):<br>required: **false**<br><p>For the endpoint type you can choose either IPv4, IPv6, or dual-stack. A dual-stack endpoint means that it will resolve via both IPv4 and IPv6. This endpoint type is applied to all IP addresses.</p><br>
15    ///   - [`protocols(Protocol)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::protocols) / [`set_protocols(Option<Vec::<Protocol>>)`](crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::set_protocols):<br>required: **false**<br><p>The protocols you want to use for the endpoint. DoH-FIPS is applicable for default inbound endpoints only.</p> <p>For a default inbound endpoint you can apply the protocols as follows:</p> <ul>  <li>   <p>Do53 and DoH in combination.</p></li>  <li>   <p>Do53 and DoH-FIPS in combination.</p></li>  <li>   <p>Do53 alone.</p></li>  <li>   <p>DoH alone.</p></li>  <li>   <p>DoH-FIPS alone.</p></li>  <li>   <p>None, which is treated as Do53.</p></li> </ul> <p>For a delegation inbound endpoint you can use Do53 only.</p> <p>For an outbound endpoint you can apply the protocols as follows:</p> <ul>  <li>   <p>Do53 and DoH in combination.</p></li>  <li>   <p>Do53 alone.</p></li>  <li>   <p>DoH alone.</p></li>  <li>   <p>None, which is treated as Do53.</p></li> </ul><br>
16    /// - On success, responds with [`CreateResolverEndpointOutput`](crate::operation::create_resolver_endpoint::CreateResolverEndpointOutput) with field(s):
17    ///   - [`resolver_endpoint(Option<ResolverEndpoint>)`](crate::operation::create_resolver_endpoint::CreateResolverEndpointOutput::resolver_endpoint): <p>Information about the <code>CreateResolverEndpoint</code> request, including the status of the request.</p>
18    /// - On failure, responds with [`SdkError<CreateResolverEndpointError>`](crate::operation::create_resolver_endpoint::CreateResolverEndpointError)
19    pub fn create_resolver_endpoint(&self) -> crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder {
20        crate::operation::create_resolver_endpoint::builders::CreateResolverEndpointFluentBuilder::new(self.handle.clone())
21    }
22}