aws_sdk_directory/operation/create_directory/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_directory::_create_directory_output::CreateDirectoryOutputBuilder;
3
4pub use crate::operation::create_directory::_create_directory_input::CreateDirectoryInputBuilder;
5
6impl crate::operation::create_directory::builders::CreateDirectoryInputBuilder {
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_directory::CreateDirectoryOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::create_directory::CreateDirectoryError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.create_directory();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `CreateDirectory`.
24///
25/// <p>Creates a Simple AD directory. For more information, see <a href="https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_simple_ad.html">Simple Active Directory</a> in the <i>Directory Service Admin Guide</i>.</p>
26/// <p>Before you call <code>CreateDirectory</code>, ensure that all of the required permissions have been explicitly granted through a policy. For details about what permissions are required to run the <code>CreateDirectory</code> operation, see <a href="http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html">Directory Service API Permissions: Actions, Resources, and Conditions Reference</a>.</p>
27#[derive(::std::clone::Clone, ::std::fmt::Debug)]
28pub struct CreateDirectoryFluentBuilder {
29 handle: ::std::sync::Arc<crate::client::Handle>,
30 inner: crate::operation::create_directory::builders::CreateDirectoryInputBuilder,
31 config_override: ::std::option::Option<crate::config::Builder>,
32}
33impl
34 crate::client::customize::internal::CustomizableSend<
35 crate::operation::create_directory::CreateDirectoryOutput,
36 crate::operation::create_directory::CreateDirectoryError,
37 > for CreateDirectoryFluentBuilder
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::create_directory::CreateDirectoryOutput,
45 crate::operation::create_directory::CreateDirectoryError,
46 >,
47 > {
48 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
49 }
50}
51impl CreateDirectoryFluentBuilder {
52 /// Creates a new `CreateDirectoryFluentBuilder`.
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 CreateDirectory as a reference.
61 pub fn as_input(&self) -> &crate::operation::create_directory::builders::CreateDirectoryInputBuilder {
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::create_directory::CreateDirectoryOutput,
76 ::aws_smithy_runtime_api::client::result::SdkError<
77 crate::operation::create_directory::CreateDirectoryError,
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::create_directory::CreateDirectory::operation_runtime_plugins(
86 self.handle.runtime_plugins.clone(),
87 &self.handle.conf,
88 self.config_override,
89 );
90 crate::operation::create_directory::CreateDirectory::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::create_directory::CreateDirectoryOutput,
98 crate::operation::create_directory::CreateDirectoryError,
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 fully qualified name for the directory, such as <code>corp.example.com</code>.</p>
113 pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
114 self.inner = self.inner.name(input.into());
115 self
116 }
117 /// <p>The fully qualified name for the directory, such as <code>corp.example.com</code>.</p>
118 pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
119 self.inner = self.inner.set_name(input);
120 self
121 }
122 /// <p>The fully qualified name for the directory, such as <code>corp.example.com</code>.</p>
123 pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
124 self.inner.get_name()
125 }
126 /// <p>The NetBIOS name of the directory, such as <code>CORP</code>.</p>
127 pub fn short_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
128 self.inner = self.inner.short_name(input.into());
129 self
130 }
131 /// <p>The NetBIOS name of the directory, such as <code>CORP</code>.</p>
132 pub fn set_short_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
133 self.inner = self.inner.set_short_name(input);
134 self
135 }
136 /// <p>The NetBIOS name of the directory, such as <code>CORP</code>.</p>
137 pub fn get_short_name(&self) -> &::std::option::Option<::std::string::String> {
138 self.inner.get_short_name()
139 }
140 /// <p>The password for the directory administrator. The directory creation process creates a directory administrator account with the user name <code>Administrator</code> and this password.</p>
141 /// <p>If you need to change the password for the administrator account, you can use the <code>ResetUserPassword</code> API call.</p>
142 /// <p>The regex pattern for this string is made up of the following conditions:</p>
143 /// <ul>
144 /// <li>
145 /// <p>Length (?=^.{8,64}$) – Must be between 8 and 64 characters</p></li>
146 /// </ul>
147 /// <p>AND any 3 of the following password complexity rules required by Active Directory:</p>
148 /// <ul>
149 /// <li>
150 /// <p>Numbers and upper case and lowercase (?=.*\d)(?=.*\[A-Z\])(?=.*\[a-z\])</p></li>
151 /// <li>
152 /// <p>Numbers and special characters and lower case (?=.*\d)(?=.*\[^A-Za-z0-9\s\])(?=.*\[a-z\])</p></li>
153 /// <li>
154 /// <p>Special characters and upper case and lower case (?=.*\[^A-Za-z0-9\s\])(?=.*\[A-Z\])(?=.*\[a-z\])</p></li>
155 /// <li>
156 /// <p>Numbers and upper case and special characters (?=.*\d)(?=.*\[A-Z\])(?=.*\[^A-Za-z0-9\s\])</p></li>
157 /// </ul>
158 /// <p>For additional information about how Active Directory passwords are enforced, see <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/password-must-meet-complexity-requirements">Password must meet complexity requirements</a> on the Microsoft website.</p>
159 pub fn password(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
160 self.inner = self.inner.password(input.into());
161 self
162 }
163 /// <p>The password for the directory administrator. The directory creation process creates a directory administrator account with the user name <code>Administrator</code> and this password.</p>
164 /// <p>If you need to change the password for the administrator account, you can use the <code>ResetUserPassword</code> API call.</p>
165 /// <p>The regex pattern for this string is made up of the following conditions:</p>
166 /// <ul>
167 /// <li>
168 /// <p>Length (?=^.{8,64}$) – Must be between 8 and 64 characters</p></li>
169 /// </ul>
170 /// <p>AND any 3 of the following password complexity rules required by Active Directory:</p>
171 /// <ul>
172 /// <li>
173 /// <p>Numbers and upper case and lowercase (?=.*\d)(?=.*\[A-Z\])(?=.*\[a-z\])</p></li>
174 /// <li>
175 /// <p>Numbers and special characters and lower case (?=.*\d)(?=.*\[^A-Za-z0-9\s\])(?=.*\[a-z\])</p></li>
176 /// <li>
177 /// <p>Special characters and upper case and lower case (?=.*\[^A-Za-z0-9\s\])(?=.*\[A-Z\])(?=.*\[a-z\])</p></li>
178 /// <li>
179 /// <p>Numbers and upper case and special characters (?=.*\d)(?=.*\[A-Z\])(?=.*\[^A-Za-z0-9\s\])</p></li>
180 /// </ul>
181 /// <p>For additional information about how Active Directory passwords are enforced, see <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/password-must-meet-complexity-requirements">Password must meet complexity requirements</a> on the Microsoft website.</p>
182 pub fn set_password(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
183 self.inner = self.inner.set_password(input);
184 self
185 }
186 /// <p>The password for the directory administrator. The directory creation process creates a directory administrator account with the user name <code>Administrator</code> and this password.</p>
187 /// <p>If you need to change the password for the administrator account, you can use the <code>ResetUserPassword</code> API call.</p>
188 /// <p>The regex pattern for this string is made up of the following conditions:</p>
189 /// <ul>
190 /// <li>
191 /// <p>Length (?=^.{8,64}$) – Must be between 8 and 64 characters</p></li>
192 /// </ul>
193 /// <p>AND any 3 of the following password complexity rules required by Active Directory:</p>
194 /// <ul>
195 /// <li>
196 /// <p>Numbers and upper case and lowercase (?=.*\d)(?=.*\[A-Z\])(?=.*\[a-z\])</p></li>
197 /// <li>
198 /// <p>Numbers and special characters and lower case (?=.*\d)(?=.*\[^A-Za-z0-9\s\])(?=.*\[a-z\])</p></li>
199 /// <li>
200 /// <p>Special characters and upper case and lower case (?=.*\[^A-Za-z0-9\s\])(?=.*\[A-Z\])(?=.*\[a-z\])</p></li>
201 /// <li>
202 /// <p>Numbers and upper case and special characters (?=.*\d)(?=.*\[A-Z\])(?=.*\[^A-Za-z0-9\s\])</p></li>
203 /// </ul>
204 /// <p>For additional information about how Active Directory passwords are enforced, see <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/password-must-meet-complexity-requirements">Password must meet complexity requirements</a> on the Microsoft website.</p>
205 pub fn get_password(&self) -> &::std::option::Option<::std::string::String> {
206 self.inner.get_password()
207 }
208 /// <p>A description for the directory.</p>
209 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
210 self.inner = self.inner.description(input.into());
211 self
212 }
213 /// <p>A description for the directory.</p>
214 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
215 self.inner = self.inner.set_description(input);
216 self
217 }
218 /// <p>A description for the directory.</p>
219 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
220 self.inner.get_description()
221 }
222 /// <p>The size of the directory.</p>
223 pub fn size(mut self, input: crate::types::DirectorySize) -> Self {
224 self.inner = self.inner.size(input);
225 self
226 }
227 /// <p>The size of the directory.</p>
228 pub fn set_size(mut self, input: ::std::option::Option<crate::types::DirectorySize>) -> Self {
229 self.inner = self.inner.set_size(input);
230 self
231 }
232 /// <p>The size of the directory.</p>
233 pub fn get_size(&self) -> &::std::option::Option<crate::types::DirectorySize> {
234 self.inner.get_size()
235 }
236 /// <p>A <code>DirectoryVpcSettings</code> object that contains additional information for the operation.</p>
237 pub fn vpc_settings(mut self, input: crate::types::DirectoryVpcSettings) -> Self {
238 self.inner = self.inner.vpc_settings(input);
239 self
240 }
241 /// <p>A <code>DirectoryVpcSettings</code> object that contains additional information for the operation.</p>
242 pub fn set_vpc_settings(mut self, input: ::std::option::Option<crate::types::DirectoryVpcSettings>) -> Self {
243 self.inner = self.inner.set_vpc_settings(input);
244 self
245 }
246 /// <p>A <code>DirectoryVpcSettings</code> object that contains additional information for the operation.</p>
247 pub fn get_vpc_settings(&self) -> &::std::option::Option<crate::types::DirectoryVpcSettings> {
248 self.inner.get_vpc_settings()
249 }
250 ///
251 /// Appends an item to `Tags`.
252 ///
253 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
254 ///
255 /// <p>The tags to be assigned to the Simple AD directory.</p>
256 pub fn tags(mut self, input: crate::types::Tag) -> Self {
257 self.inner = self.inner.tags(input);
258 self
259 }
260 /// <p>The tags to be assigned to the Simple AD directory.</p>
261 pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
262 self.inner = self.inner.set_tags(input);
263 self
264 }
265 /// <p>The tags to be assigned to the Simple AD directory.</p>
266 pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
267 self.inner.get_tags()
268 }
269 /// <p>The network type for your directory. Simple AD supports IPv4 and Dual-stack only.</p>
270 pub fn network_type(mut self, input: crate::types::NetworkType) -> Self {
271 self.inner = self.inner.network_type(input);
272 self
273 }
274 /// <p>The network type for your directory. Simple AD supports IPv4 and Dual-stack only.</p>
275 pub fn set_network_type(mut self, input: ::std::option::Option<crate::types::NetworkType>) -> Self {
276 self.inner = self.inner.set_network_type(input);
277 self
278 }
279 /// <p>The network type for your directory. Simple AD supports IPv4 and Dual-stack only.</p>
280 pub fn get_network_type(&self) -> &::std::option::Option<crate::types::NetworkType> {
281 self.inner.get_network_type()
282 }
283}