aws_sdk_apigatewayv2/operation/create_routing_rule/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_routing_rule::_create_routing_rule_output::CreateRoutingRuleOutputBuilder;
3
4pub use crate::operation::create_routing_rule::_create_routing_rule_input::CreateRoutingRuleInputBuilder;
5
6impl crate::operation::create_routing_rule::builders::CreateRoutingRuleInputBuilder {
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::create_routing_rule::CreateRoutingRuleOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_routing_rule::CreateRoutingRuleError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_routing_rule();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateRoutingRule`.
24///
25/// <p>Creates a RoutingRule.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateRoutingRuleFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_routing_rule::builders::CreateRoutingRuleInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_routing_rule::CreateRoutingRuleOutput,
35        crate::operation::create_routing_rule::CreateRoutingRuleError,
36    > for CreateRoutingRuleFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::create_routing_rule::CreateRoutingRuleOutput,
44            crate::operation::create_routing_rule::CreateRoutingRuleError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreateRoutingRuleFluentBuilder {
51    /// Creates a new `CreateRoutingRuleFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the CreateRoutingRule as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_routing_rule::builders::CreateRoutingRuleInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::create_routing_rule::CreateRoutingRuleOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_routing_rule::CreateRoutingRuleError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::create_routing_rule::CreateRoutingRule::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_routing_rule::CreateRoutingRule::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::create_routing_rule::CreateRoutingRuleOutput,
97        crate::operation::create_routing_rule::CreateRoutingRuleError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    ///
112    /// Appends an item to `Actions`.
113    ///
114    /// To override the contents of this collection use [`set_actions`](Self::set_actions).
115    ///
116    /// <p>Represents a routing rule action. The only supported action is invokeApi.</p>
117    pub fn actions(mut self, input: crate::types::RoutingRuleAction) -> Self {
118        self.inner = self.inner.actions(input);
119        self
120    }
121    /// <p>Represents a routing rule action. The only supported action is invokeApi.</p>
122    pub fn set_actions(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::RoutingRuleAction>>) -> Self {
123        self.inner = self.inner.set_actions(input);
124        self
125    }
126    /// <p>Represents a routing rule action. The only supported action is invokeApi.</p>
127    pub fn get_actions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::RoutingRuleAction>> {
128        self.inner.get_actions()
129    }
130    ///
131    /// Appends an item to `Conditions`.
132    ///
133    /// To override the contents of this collection use [`set_conditions`](Self::set_conditions).
134    ///
135    /// <p>Represents a condition. Conditions can contain up to two matchHeaders conditions and one matchBasePaths conditions. API Gateway evaluates header conditions and base path conditions together. You can only use AND between header and base path conditions.</p>
136    pub fn conditions(mut self, input: crate::types::RoutingRuleCondition) -> Self {
137        self.inner = self.inner.conditions(input);
138        self
139    }
140    /// <p>Represents a condition. Conditions can contain up to two matchHeaders conditions and one matchBasePaths conditions. API Gateway evaluates header conditions and base path conditions together. You can only use AND between header and base path conditions.</p>
141    pub fn set_conditions(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::RoutingRuleCondition>>) -> Self {
142        self.inner = self.inner.set_conditions(input);
143        self
144    }
145    /// <p>Represents a condition. Conditions can contain up to two matchHeaders conditions and one matchBasePaths conditions. API Gateway evaluates header conditions and base path conditions together. You can only use AND between header and base path conditions.</p>
146    pub fn get_conditions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::RoutingRuleCondition>> {
147        self.inner.get_conditions()
148    }
149    /// <p>The domain name.</p>
150    pub fn domain_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
151        self.inner = self.inner.domain_name(input.into());
152        self
153    }
154    /// <p>The domain name.</p>
155    pub fn set_domain_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
156        self.inner = self.inner.set_domain_name(input);
157        self
158    }
159    /// <p>The domain name.</p>
160    pub fn get_domain_name(&self) -> &::std::option::Option<::std::string::String> {
161        self.inner.get_domain_name()
162    }
163    /// <p>The domain name ID.</p>
164    pub fn domain_name_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
165        self.inner = self.inner.domain_name_id(input.into());
166        self
167    }
168    /// <p>The domain name ID.</p>
169    pub fn set_domain_name_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
170        self.inner = self.inner.set_domain_name_id(input);
171        self
172    }
173    /// <p>The domain name ID.</p>
174    pub fn get_domain_name_id(&self) -> &::std::option::Option<::std::string::String> {
175        self.inner.get_domain_name_id()
176    }
177    /// Represents the priority of the routing rule.
178    pub fn priority(mut self, input: i32) -> Self {
179        self.inner = self.inner.priority(input);
180        self
181    }
182    /// Represents the priority of the routing rule.
183    pub fn set_priority(mut self, input: ::std::option::Option<i32>) -> Self {
184        self.inner = self.inner.set_priority(input);
185        self
186    }
187    /// Represents the priority of the routing rule.
188    pub fn get_priority(&self) -> &::std::option::Option<i32> {
189        self.inner.get_priority()
190    }
191}