aws_sdk_globalaccelerator/operation/allow_custom_routing_traffic/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::allow_custom_routing_traffic::_allow_custom_routing_traffic_output::AllowCustomRoutingTrafficOutputBuilder;
3
4pub use crate::operation::allow_custom_routing_traffic::_allow_custom_routing_traffic_input::AllowCustomRoutingTrafficInputBuilder;
5
6impl crate::operation::allow_custom_routing_traffic::builders::AllowCustomRoutingTrafficInputBuilder {
7 /// Sends a request with this input using the given client.
8 pub async fn send_with(
9 self,
10 client: &crate::Client,
11 ) -> ::std::result::Result<
12 crate::operation::allow_custom_routing_traffic::AllowCustomRoutingTrafficOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::allow_custom_routing_traffic::AllowCustomRoutingTrafficError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.allow_custom_routing_traffic();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `AllowCustomRoutingTraffic`.
24///
25/// <p>Specify the Amazon EC2 instance (destination) IP addresses and ports for a VPC subnet endpoint that can receive traffic for a custom routing accelerator. You can allow traffic to all destinations in the subnet endpoint, or allow traffic to a specified list of destination IP addresses and ports in the subnet. Note that you cannot specify IP addresses or ports outside of the range that you configured for the endpoint group.</p>
26/// <p>After you make changes, you can verify that the updates are complete by checking the status of your accelerator: the status changes from IN_PROGRESS to DEPLOYED.</p>
27#[derive(::std::clone::Clone, ::std::fmt::Debug)]
28pub struct AllowCustomRoutingTrafficFluentBuilder {
29 handle: ::std::sync::Arc<crate::client::Handle>,
30 inner: crate::operation::allow_custom_routing_traffic::builders::AllowCustomRoutingTrafficInputBuilder,
31 config_override: ::std::option::Option<crate::config::Builder>,
32}
33impl
34 crate::client::customize::internal::CustomizableSend<
35 crate::operation::allow_custom_routing_traffic::AllowCustomRoutingTrafficOutput,
36 crate::operation::allow_custom_routing_traffic::AllowCustomRoutingTrafficError,
37 > for AllowCustomRoutingTrafficFluentBuilder
38{
39 fn send(
40 self,
41 config_override: crate::config::Builder,
42 ) -> crate::client::customize::internal::BoxFuture<
43 crate::client::customize::internal::SendResult<
44 crate::operation::allow_custom_routing_traffic::AllowCustomRoutingTrafficOutput,
45 crate::operation::allow_custom_routing_traffic::AllowCustomRoutingTrafficError,
46 >,
47 > {
48 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
49 }
50}
51impl AllowCustomRoutingTrafficFluentBuilder {
52 /// Creates a new `AllowCustomRoutingTrafficFluentBuilder`.
53 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
54 Self {
55 handle,
56 inner: ::std::default::Default::default(),
57 config_override: ::std::option::Option::None,
58 }
59 }
60 /// Access the AllowCustomRoutingTraffic as a reference.
61 pub fn as_input(&self) -> &crate::operation::allow_custom_routing_traffic::builders::AllowCustomRoutingTrafficInputBuilder {
62 &self.inner
63 }
64 /// Sends the request and returns the response.
65 ///
66 /// If an error occurs, an `SdkError` will be returned with additional details that
67 /// can be matched against.
68 ///
69 /// By default, any retryable failures will be retried twice. Retry behavior
70 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
71 /// set when configuring the client.
72 pub async fn send(
73 self,
74 ) -> ::std::result::Result<
75 crate::operation::allow_custom_routing_traffic::AllowCustomRoutingTrafficOutput,
76 ::aws_smithy_runtime_api::client::result::SdkError<
77 crate::operation::allow_custom_routing_traffic::AllowCustomRoutingTrafficError,
78 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
79 >,
80 > {
81 let input = self
82 .inner
83 .build()
84 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
85 let runtime_plugins = crate::operation::allow_custom_routing_traffic::AllowCustomRoutingTraffic::operation_runtime_plugins(
86 self.handle.runtime_plugins.clone(),
87 &self.handle.conf,
88 self.config_override,
89 );
90 crate::operation::allow_custom_routing_traffic::AllowCustomRoutingTraffic::orchestrate(&runtime_plugins, input).await
91 }
92
93 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
94 pub fn customize(
95 self,
96 ) -> crate::client::customize::CustomizableOperation<
97 crate::operation::allow_custom_routing_traffic::AllowCustomRoutingTrafficOutput,
98 crate::operation::allow_custom_routing_traffic::AllowCustomRoutingTrafficError,
99 Self,
100 > {
101 crate::client::customize::CustomizableOperation::new(self)
102 }
103 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
104 self.set_config_override(::std::option::Option::Some(config_override.into()));
105 self
106 }
107
108 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
109 self.config_override = config_override;
110 self
111 }
112 /// <p>The Amazon Resource Name (ARN) of the endpoint group.</p>
113 pub fn endpoint_group_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
114 self.inner = self.inner.endpoint_group_arn(input.into());
115 self
116 }
117 /// <p>The Amazon Resource Name (ARN) of the endpoint group.</p>
118 pub fn set_endpoint_group_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
119 self.inner = self.inner.set_endpoint_group_arn(input);
120 self
121 }
122 /// <p>The Amazon Resource Name (ARN) of the endpoint group.</p>
123 pub fn get_endpoint_group_arn(&self) -> &::std::option::Option<::std::string::String> {
124 self.inner.get_endpoint_group_arn()
125 }
126 /// <p>An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) subnet ID.</p>
127 pub fn endpoint_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
128 self.inner = self.inner.endpoint_id(input.into());
129 self
130 }
131 /// <p>An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) subnet ID.</p>
132 pub fn set_endpoint_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
133 self.inner = self.inner.set_endpoint_id(input);
134 self
135 }
136 /// <p>An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) subnet ID.</p>
137 pub fn get_endpoint_id(&self) -> &::std::option::Option<::std::string::String> {
138 self.inner.get_endpoint_id()
139 }
140 ///
141 /// Appends an item to `DestinationAddresses`.
142 ///
143 /// To override the contents of this collection use [`set_destination_addresses`](Self::set_destination_addresses).
144 ///
145 /// <p>A list of specific Amazon EC2 instance IP addresses (destination addresses) in a subnet that you want to allow to receive traffic. The IP addresses must be a subset of the IP addresses that you specified for the endpoint group.</p>
146 /// <p><code>DestinationAddresses</code> is required if <code>AllowAllTrafficToEndpoint</code> is <code>FALSE</code> or is not specified.</p>
147 pub fn destination_addresses(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
148 self.inner = self.inner.destination_addresses(input.into());
149 self
150 }
151 /// <p>A list of specific Amazon EC2 instance IP addresses (destination addresses) in a subnet that you want to allow to receive traffic. The IP addresses must be a subset of the IP addresses that you specified for the endpoint group.</p>
152 /// <p><code>DestinationAddresses</code> is required if <code>AllowAllTrafficToEndpoint</code> is <code>FALSE</code> or is not specified.</p>
153 pub fn set_destination_addresses(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
154 self.inner = self.inner.set_destination_addresses(input);
155 self
156 }
157 /// <p>A list of specific Amazon EC2 instance IP addresses (destination addresses) in a subnet that you want to allow to receive traffic. The IP addresses must be a subset of the IP addresses that you specified for the endpoint group.</p>
158 /// <p><code>DestinationAddresses</code> is required if <code>AllowAllTrafficToEndpoint</code> is <code>FALSE</code> or is not specified.</p>
159 pub fn get_destination_addresses(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
160 self.inner.get_destination_addresses()
161 }
162 ///
163 /// Appends an item to `DestinationPorts`.
164 ///
165 /// To override the contents of this collection use [`set_destination_ports`](Self::set_destination_ports).
166 ///
167 /// <p>A list of specific Amazon EC2 instance ports (destination ports) that you want to allow to receive traffic.</p>
168 pub fn destination_ports(mut self, input: i32) -> Self {
169 self.inner = self.inner.destination_ports(input);
170 self
171 }
172 /// <p>A list of specific Amazon EC2 instance ports (destination ports) that you want to allow to receive traffic.</p>
173 pub fn set_destination_ports(mut self, input: ::std::option::Option<::std::vec::Vec<i32>>) -> Self {
174 self.inner = self.inner.set_destination_ports(input);
175 self
176 }
177 /// <p>A list of specific Amazon EC2 instance ports (destination ports) that you want to allow to receive traffic.</p>
178 pub fn get_destination_ports(&self) -> &::std::option::Option<::std::vec::Vec<i32>> {
179 self.inner.get_destination_ports()
180 }
181 /// <p>Indicates whether all destination IP addresses and ports for a specified VPC subnet endpoint can receive traffic from a custom routing accelerator. The value is TRUE or FALSE.</p>
182 /// <p>When set to TRUE, <i>all</i> destinations in the custom routing VPC subnet can receive traffic. Note that you cannot specify destination IP addresses and ports when the value is set to TRUE.</p>
183 /// <p>When set to FALSE (or not specified), you <i>must</i> specify a list of destination IP addresses that are allowed to receive traffic. A list of ports is optional. If you don't specify a list of ports, the ports that can accept traffic is the same as the ports configured for the endpoint group.</p>
184 /// <p>The default value is FALSE.</p>
185 pub fn allow_all_traffic_to_endpoint(mut self, input: bool) -> Self {
186 self.inner = self.inner.allow_all_traffic_to_endpoint(input);
187 self
188 }
189 /// <p>Indicates whether all destination IP addresses and ports for a specified VPC subnet endpoint can receive traffic from a custom routing accelerator. The value is TRUE or FALSE.</p>
190 /// <p>When set to TRUE, <i>all</i> destinations in the custom routing VPC subnet can receive traffic. Note that you cannot specify destination IP addresses and ports when the value is set to TRUE.</p>
191 /// <p>When set to FALSE (or not specified), you <i>must</i> specify a list of destination IP addresses that are allowed to receive traffic. A list of ports is optional. If you don't specify a list of ports, the ports that can accept traffic is the same as the ports configured for the endpoint group.</p>
192 /// <p>The default value is FALSE.</p>
193 pub fn set_allow_all_traffic_to_endpoint(mut self, input: ::std::option::Option<bool>) -> Self {
194 self.inner = self.inner.set_allow_all_traffic_to_endpoint(input);
195 self
196 }
197 /// <p>Indicates whether all destination IP addresses and ports for a specified VPC subnet endpoint can receive traffic from a custom routing accelerator. The value is TRUE or FALSE.</p>
198 /// <p>When set to TRUE, <i>all</i> destinations in the custom routing VPC subnet can receive traffic. Note that you cannot specify destination IP addresses and ports when the value is set to TRUE.</p>
199 /// <p>When set to FALSE (or not specified), you <i>must</i> specify a list of destination IP addresses that are allowed to receive traffic. A list of ports is optional. If you don't specify a list of ports, the ports that can accept traffic is the same as the ports configured for the endpoint group.</p>
200 /// <p>The default value is FALSE.</p>
201 pub fn get_allow_all_traffic_to_endpoint(&self) -> &::std::option::Option<bool> {
202 self.inner.get_allow_all_traffic_to_endpoint()
203 }
204}