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}