aws_sdk_directory/operation/start_ad_assessment/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::start_ad_assessment::_start_ad_assessment_output::StartAdAssessmentOutputBuilder;
3
4pub use crate::operation::start_ad_assessment::_start_ad_assessment_input::StartAdAssessmentInputBuilder;
5
6impl crate::operation::start_ad_assessment::builders::StartAdAssessmentInputBuilder {
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::start_ad_assessment::StartAdAssessmentOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::start_ad_assessment::StartADAssessmentError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.start_ad_assessment();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `StartADAssessment`.
24///
25/// <p>Initiates a directory assessment to validate your self-managed AD environment for hybrid domain join. The assessment checks compatibility and connectivity of the self-managed AD environment.</p>
26/// <p>A directory assessment is automatically created when you create a hybrid directory. There are two types of assessments: <code>CUSTOMER</code> and <code>SYSTEM</code>. Your Amazon Web Services account has a limit of 100 <code>CUSTOMER</code> directory assessments.</p>
27/// <p>The assessment process typically takes 30 minutes or more to complete. The assessment process is asynchronous and you can monitor it with <code>DescribeADAssessment</code>.</p>
28/// <p>The InstanceIds must have a one-to-one correspondence with CustomerDnsIps, meaning that if the IP address for instance i-10243410 is 10.24.34.100 and the IP address for instance i-10243420 is 10.24.34.200, then the input arrays must maintain the same order relationship, either \[10.24.34.100, 10.24.34.200\] paired with \[i-10243410, i-10243420\] or \[10.24.34.200, 10.24.34.100\] paired with \[i-10243420, i-10243410\].</p>
29/// <p>Note: You must provide exactly one <code>DirectoryId</code> or <code>AssessmentConfiguration</code>.</p>
30#[derive(::std::clone::Clone, ::std::fmt::Debug)]
31pub struct StartADAssessmentFluentBuilder {
32    handle: ::std::sync::Arc<crate::client::Handle>,
33    inner: crate::operation::start_ad_assessment::builders::StartAdAssessmentInputBuilder,
34    config_override: ::std::option::Option<crate::config::Builder>,
35}
36impl
37    crate::client::customize::internal::CustomizableSend<
38        crate::operation::start_ad_assessment::StartAdAssessmentOutput,
39        crate::operation::start_ad_assessment::StartADAssessmentError,
40    > for StartADAssessmentFluentBuilder
41{
42    fn send(
43        self,
44        config_override: crate::config::Builder,
45    ) -> crate::client::customize::internal::BoxFuture<
46        crate::client::customize::internal::SendResult<
47            crate::operation::start_ad_assessment::StartAdAssessmentOutput,
48            crate::operation::start_ad_assessment::StartADAssessmentError,
49        >,
50    > {
51        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
52    }
53}
54impl StartADAssessmentFluentBuilder {
55    /// Creates a new `StartADAssessmentFluentBuilder`.
56    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
57        Self {
58            handle,
59            inner: ::std::default::Default::default(),
60            config_override: ::std::option::Option::None,
61        }
62    }
63    /// Access the StartADAssessment as a reference.
64    pub fn as_input(&self) -> &crate::operation::start_ad_assessment::builders::StartAdAssessmentInputBuilder {
65        &self.inner
66    }
67    /// Sends the request and returns the response.
68    ///
69    /// If an error occurs, an `SdkError` will be returned with additional details that
70    /// can be matched against.
71    ///
72    /// By default, any retryable failures will be retried twice. Retry behavior
73    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
74    /// set when configuring the client.
75    pub async fn send(
76        self,
77    ) -> ::std::result::Result<
78        crate::operation::start_ad_assessment::StartAdAssessmentOutput,
79        ::aws_smithy_runtime_api::client::result::SdkError<
80            crate::operation::start_ad_assessment::StartADAssessmentError,
81            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
82        >,
83    > {
84        let input = self
85            .inner
86            .build()
87            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
88        let runtime_plugins = crate::operation::start_ad_assessment::StartADAssessment::operation_runtime_plugins(
89            self.handle.runtime_plugins.clone(),
90            &self.handle.conf,
91            self.config_override,
92        );
93        crate::operation::start_ad_assessment::StartADAssessment::orchestrate(&runtime_plugins, input).await
94    }
95
96    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
97    pub fn customize(
98        self,
99    ) -> crate::client::customize::CustomizableOperation<
100        crate::operation::start_ad_assessment::StartAdAssessmentOutput,
101        crate::operation::start_ad_assessment::StartADAssessmentError,
102        Self,
103    > {
104        crate::client::customize::CustomizableOperation::new(self)
105    }
106    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
107        self.set_config_override(::std::option::Option::Some(config_override.into()));
108        self
109    }
110
111    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
112        self.config_override = config_override;
113        self
114    }
115    /// <p>Configuration parameters for the directory assessment, including DNS server information, domain name, Amazon VPC subnet, and Amazon Web Services System Manager managed node details.</p>
116    pub fn assessment_configuration(mut self, input: crate::types::AssessmentConfiguration) -> Self {
117        self.inner = self.inner.assessment_configuration(input);
118        self
119    }
120    /// <p>Configuration parameters for the directory assessment, including DNS server information, domain name, Amazon VPC subnet, and Amazon Web Services System Manager managed node details.</p>
121    pub fn set_assessment_configuration(mut self, input: ::std::option::Option<crate::types::AssessmentConfiguration>) -> Self {
122        self.inner = self.inner.set_assessment_configuration(input);
123        self
124    }
125    /// <p>Configuration parameters for the directory assessment, including DNS server information, domain name, Amazon VPC subnet, and Amazon Web Services System Manager managed node details.</p>
126    pub fn get_assessment_configuration(&self) -> &::std::option::Option<crate::types::AssessmentConfiguration> {
127        self.inner.get_assessment_configuration()
128    }
129    /// <p>The identifier of the directory for which to perform the assessment. This should be an existing directory. If the assessment is not for an existing directory, this parameter should be omitted.</p>
130    pub fn directory_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
131        self.inner = self.inner.directory_id(input.into());
132        self
133    }
134    /// <p>The identifier of the directory for which to perform the assessment. This should be an existing directory. If the assessment is not for an existing directory, this parameter should be omitted.</p>
135    pub fn set_directory_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
136        self.inner = self.inner.set_directory_id(input);
137        self
138    }
139    /// <p>The identifier of the directory for which to perform the assessment. This should be an existing directory. If the assessment is not for an existing directory, this parameter should be omitted.</p>
140    pub fn get_directory_id(&self) -> &::std::option::Option<::std::string::String> {
141        self.inner.get_directory_id()
142    }
143}