1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::start_data_quality_rule_recommendation_run::_start_data_quality_rule_recommendation_run_output::StartDataQualityRuleRecommendationRunOutputBuilder;

pub use crate::operation::start_data_quality_rule_recommendation_run::_start_data_quality_rule_recommendation_run_input::StartDataQualityRuleRecommendationRunInputBuilder;

impl StartDataQualityRuleRecommendationRunInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::start_data_quality_rule_recommendation_run::StartDataQualityRuleRecommendationRunOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::start_data_quality_rule_recommendation_run::StartDataQualityRuleRecommendationRunError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.start_data_quality_rule_recommendation_run();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `StartDataQualityRuleRecommendationRun`.
///
/// <p>Starts a recommendation run that is used to generate rules when you don't know what rules to write. Glue Data Quality analyzes the data and comes up with recommendations for a potential ruleset. You can then triage the ruleset and modify the generated ruleset to your liking.</p>
/// <p>Recommendation runs are automatically deleted after 90 days.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct StartDataQualityRuleRecommendationRunFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::start_data_quality_rule_recommendation_run::builders::StartDataQualityRuleRecommendationRunInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::start_data_quality_rule_recommendation_run::StartDataQualityRuleRecommendationRunOutput,
        crate::operation::start_data_quality_rule_recommendation_run::StartDataQualityRuleRecommendationRunError,
    > for StartDataQualityRuleRecommendationRunFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::start_data_quality_rule_recommendation_run::StartDataQualityRuleRecommendationRunOutput,
            crate::operation::start_data_quality_rule_recommendation_run::StartDataQualityRuleRecommendationRunError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl StartDataQualityRuleRecommendationRunFluentBuilder {
    /// Creates a new `StartDataQualityRuleRecommendationRun`.
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
        Self {
            handle,
            inner: ::std::default::Default::default(),
            config_override: ::std::option::Option::None,
        }
    }
    /// Access the StartDataQualityRuleRecommendationRun as a reference.
    pub fn as_input(
        &self,
    ) -> &crate::operation::start_data_quality_rule_recommendation_run::builders::StartDataQualityRuleRecommendationRunInputBuilder {
        &self.inner
    }
    /// Sends the request and returns the response.
    ///
    /// If an error occurs, an `SdkError` will be returned with additional details that
    /// can be matched against.
    ///
    /// By default, any retryable failures will be retried twice. Retry behavior
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
    /// set when configuring the client.
    pub async fn send(
        self,
    ) -> ::std::result::Result<
        crate::operation::start_data_quality_rule_recommendation_run::StartDataQualityRuleRecommendationRunOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::start_data_quality_rule_recommendation_run::StartDataQualityRuleRecommendationRunError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let input = self
            .inner
            .build()
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
        let runtime_plugins =
            crate::operation::start_data_quality_rule_recommendation_run::StartDataQualityRuleRecommendationRun::operation_runtime_plugins(
                self.handle.runtime_plugins.clone(),
                &self.handle.conf,
                self.config_override,
            );
        crate::operation::start_data_quality_rule_recommendation_run::StartDataQualityRuleRecommendationRun::orchestrate(&runtime_plugins, input)
            .await
    }

    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
    pub fn customize(
        self,
    ) -> crate::client::customize::CustomizableOperation<
        crate::operation::start_data_quality_rule_recommendation_run::StartDataQualityRuleRecommendationRunOutput,
        crate::operation::start_data_quality_rule_recommendation_run::StartDataQualityRuleRecommendationRunError,
        Self,
    > {
        crate::client::customize::CustomizableOperation::new(self)
    }
    pub(crate) fn config_override(mut self, config_override: impl Into<crate::config::Builder>) -> Self {
        self.set_config_override(Some(config_override.into()));
        self
    }

    pub(crate) fn set_config_override(&mut self, config_override: Option<crate::config::Builder>) -> &mut Self {
        self.config_override = config_override;
        self
    }
    /// <p>The data source (Glue table) associated with this run.</p>
    pub fn data_source(mut self, input: crate::types::DataSource) -> Self {
        self.inner = self.inner.data_source(input);
        self
    }
    /// <p>The data source (Glue table) associated with this run.</p>
    pub fn set_data_source(mut self, input: ::std::option::Option<crate::types::DataSource>) -> Self {
        self.inner = self.inner.set_data_source(input);
        self
    }
    /// <p>The data source (Glue table) associated with this run.</p>
    pub fn get_data_source(&self) -> &::std::option::Option<crate::types::DataSource> {
        self.inner.get_data_source()
    }
    /// <p>An IAM role supplied to encrypt the results of the run.</p>
    pub fn role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.role(input.into());
        self
    }
    /// <p>An IAM role supplied to encrypt the results of the run.</p>
    pub fn set_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_role(input);
        self
    }
    /// <p>An IAM role supplied to encrypt the results of the run.</p>
    pub fn get_role(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_role()
    }
    /// <p>The number of <code>G.1X</code> workers to be used in the run. The default is 5.</p>
    pub fn number_of_workers(mut self, input: i32) -> Self {
        self.inner = self.inner.number_of_workers(input);
        self
    }
    /// <p>The number of <code>G.1X</code> workers to be used in the run. The default is 5.</p>
    pub fn set_number_of_workers(mut self, input: ::std::option::Option<i32>) -> Self {
        self.inner = self.inner.set_number_of_workers(input);
        self
    }
    /// <p>The number of <code>G.1X</code> workers to be used in the run. The default is 5.</p>
    pub fn get_number_of_workers(&self) -> &::std::option::Option<i32> {
        self.inner.get_number_of_workers()
    }
    /// <p>The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
    pub fn timeout(mut self, input: i32) -> Self {
        self.inner = self.inner.timeout(input);
        self
    }
    /// <p>The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
    pub fn set_timeout(mut self, input: ::std::option::Option<i32>) -> Self {
        self.inner = self.inner.set_timeout(input);
        self
    }
    /// <p>The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
    pub fn get_timeout(&self) -> &::std::option::Option<i32> {
        self.inner.get_timeout()
    }
    /// <p>A name for the ruleset.</p>
    pub fn created_ruleset_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.created_ruleset_name(input.into());
        self
    }
    /// <p>A name for the ruleset.</p>
    pub fn set_created_ruleset_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_created_ruleset_name(input);
        self
    }
    /// <p>A name for the ruleset.</p>
    pub fn get_created_ruleset_name(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_created_ruleset_name()
    }
    /// <p>Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.</p>
    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.client_token(input.into());
        self
    }
    /// <p>Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.</p>
    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_client_token(input);
        self
    }
    /// <p>Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.</p>
    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_client_token()
    }
}