aws_sdk_workspaces/operation/create_ip_group/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_ip_group::_create_ip_group_output::CreateIpGroupOutputBuilder;
3
4pub use crate::operation::create_ip_group::_create_ip_group_input::CreateIpGroupInputBuilder;
5
6impl crate::operation::create_ip_group::builders::CreateIpGroupInputBuilder {
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_ip_group::CreateIpGroupOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_ip_group::CreateIpGroupError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_ip_group();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateIpGroup`.
24///
25/// <p>Creates an IP access control group.</p>
26/// <p>An IP access control group provides you with the ability to control the IP addresses from which users are allowed to access their WorkSpaces. To specify the CIDR address ranges, add rules to your IP access control group and then associate the group with your directory. You can add rules when you create the group or at any time using <code>AuthorizeIpRules</code>.</p>
27/// <p>There is a default IP access control group associated with your directory. If you don't associate an IP access control group with your directory, the default group is used. The default group includes a default rule that allows users to access their WorkSpaces from anywhere. You cannot modify the default IP access control group for your directory.</p>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct CreateIpGroupFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::create_ip_group::builders::CreateIpGroupInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::create_ip_group::CreateIpGroupOutput,
37        crate::operation::create_ip_group::CreateIpGroupError,
38    > for CreateIpGroupFluentBuilder
39{
40    fn send(
41        self,
42        config_override: crate::config::Builder,
43    ) -> crate::client::customize::internal::BoxFuture<
44        crate::client::customize::internal::SendResult<
45            crate::operation::create_ip_group::CreateIpGroupOutput,
46            crate::operation::create_ip_group::CreateIpGroupError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl CreateIpGroupFluentBuilder {
53    /// Creates a new `CreateIpGroupFluentBuilder`.
54    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
55        Self {
56            handle,
57            inner: ::std::default::Default::default(),
58            config_override: ::std::option::Option::None,
59        }
60    }
61    /// Access the CreateIpGroup as a reference.
62    pub fn as_input(&self) -> &crate::operation::create_ip_group::builders::CreateIpGroupInputBuilder {
63        &self.inner
64    }
65    /// Sends the request and returns the response.
66    ///
67    /// If an error occurs, an `SdkError` will be returned with additional details that
68    /// can be matched against.
69    ///
70    /// By default, any retryable failures will be retried twice. Retry behavior
71    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
72    /// set when configuring the client.
73    pub async fn send(
74        self,
75    ) -> ::std::result::Result<
76        crate::operation::create_ip_group::CreateIpGroupOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::create_ip_group::CreateIpGroupError,
79            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
80        >,
81    > {
82        let input = self
83            .inner
84            .build()
85            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
86        let runtime_plugins = crate::operation::create_ip_group::CreateIpGroup::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::create_ip_group::CreateIpGroup::orchestrate(&runtime_plugins, input).await
92    }
93
94    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
95    pub fn customize(
96        self,
97    ) -> crate::client::customize::CustomizableOperation<
98        crate::operation::create_ip_group::CreateIpGroupOutput,
99        crate::operation::create_ip_group::CreateIpGroupError,
100        Self,
101    > {
102        crate::client::customize::CustomizableOperation::new(self)
103    }
104    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
105        self.set_config_override(::std::option::Option::Some(config_override.into()));
106        self
107    }
108
109    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
110        self.config_override = config_override;
111        self
112    }
113    /// <p>The name of the group.</p>
114    pub fn group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
115        self.inner = self.inner.group_name(input.into());
116        self
117    }
118    /// <p>The name of the group.</p>
119    pub fn set_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
120        self.inner = self.inner.set_group_name(input);
121        self
122    }
123    /// <p>The name of the group.</p>
124    pub fn get_group_name(&self) -> &::std::option::Option<::std::string::String> {
125        self.inner.get_group_name()
126    }
127    /// <p>The description of the group.</p>
128    pub fn group_desc(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
129        self.inner = self.inner.group_desc(input.into());
130        self
131    }
132    /// <p>The description of the group.</p>
133    pub fn set_group_desc(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
134        self.inner = self.inner.set_group_desc(input);
135        self
136    }
137    /// <p>The description of the group.</p>
138    pub fn get_group_desc(&self) -> &::std::option::Option<::std::string::String> {
139        self.inner.get_group_desc()
140    }
141    ///
142    /// Appends an item to `UserRules`.
143    ///
144    /// To override the contents of this collection use [`set_user_rules`](Self::set_user_rules).
145    ///
146    /// <p>The rules to add to the group.</p>
147    pub fn user_rules(mut self, input: crate::types::IpRuleItem) -> Self {
148        self.inner = self.inner.user_rules(input);
149        self
150    }
151    /// <p>The rules to add to the group.</p>
152    pub fn set_user_rules(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::IpRuleItem>>) -> Self {
153        self.inner = self.inner.set_user_rules(input);
154        self
155    }
156    /// <p>The rules to add to the group.</p>
157    pub fn get_user_rules(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::IpRuleItem>> {
158        self.inner.get_user_rules()
159    }
160    ///
161    /// Appends an item to `Tags`.
162    ///
163    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
164    ///
165    /// <p>The tags. Each WorkSpaces resource can have a maximum of 50 tags.</p>
166    pub fn tags(mut self, input: crate::types::Tag) -> Self {
167        self.inner = self.inner.tags(input);
168        self
169    }
170    /// <p>The tags. Each WorkSpaces resource can have a maximum of 50 tags.</p>
171    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
172        self.inner = self.inner.set_tags(input);
173        self
174    }
175    /// <p>The tags. Each WorkSpaces resource can have a maximum of 50 tags.</p>
176    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
177        self.inner.get_tags()
178    }
179}