1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_integration::_create_integration_output::CreateIntegrationOutputBuilder;
34pub use crate::operation::create_integration::_create_integration_input::CreateIntegrationInputBuilder;
56impl crate::operation::create_integration::builders::CreateIntegrationInputBuilder {
7/// Sends a request with this input using the given client.
8pub async fn send_with(
9self,
10 client: &crate::Client,
11 ) -> ::std::result::Result<
12crate::operation::create_integration::CreateIntegrationOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14crate::operation::create_integration::CreateIntegrationError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18let mut fluent_builder = client.create_integration();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21}
22}
23/// Fluent builder constructing a request to `CreateIntegration`.
24///
25/// <p>Creates a zero-ETL integration or S3 event integration with Amazon Redshift.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateIntegrationFluentBuilder {
28 handle: ::std::sync::Arc<crate::client::Handle>,
29 inner: crate::operation::create_integration::builders::CreateIntegrationInputBuilder,
30 config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33crate::client::customize::internal::CustomizableSend<
34crate::operation::create_integration::CreateIntegrationOutput,
35crate::operation::create_integration::CreateIntegrationError,
36 > for CreateIntegrationFluentBuilder
37{
38fn send(
39self,
40 config_override: crate::config::Builder,
41 ) -> crate::client::customize::internal::BoxFuture<
42crate::client::customize::internal::SendResult<
43crate::operation::create_integration::CreateIntegrationOutput,
44crate::operation::create_integration::CreateIntegrationError,
45 >,
46 > {
47 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48 }
49}
50impl CreateIntegrationFluentBuilder {
51/// Creates a new `CreateIntegrationFluentBuilder`.
52pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53Self {
54 handle,
55 inner: ::std::default::Default::default(),
56 config_override: ::std::option::Option::None,
57 }
58 }
59/// Access the CreateIntegration as a reference.
60pub fn as_input(&self) -> &crate::operation::create_integration::builders::CreateIntegrationInputBuilder {
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.
71pub async fn send(
72self,
73 ) -> ::std::result::Result<
74crate::operation::create_integration::CreateIntegrationOutput,
75 ::aws_smithy_runtime_api::client::result::SdkError<
76crate::operation::create_integration::CreateIntegrationError,
77 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78 >,
79 > {
80let input = self
81.inner
82 .build()
83 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84let runtime_plugins = crate::operation::create_integration::CreateIntegration::operation_runtime_plugins(
85self.handle.runtime_plugins.clone(),
86&self.handle.conf,
87self.config_override,
88 );
89crate::operation::create_integration::CreateIntegration::orchestrate(&runtime_plugins, input).await
90}
9192/// Consumes this builder, creating a customizable operation that can be modified before being sent.
93pub fn customize(
94self,
95 ) -> crate::client::customize::CustomizableOperation<
96crate::operation::create_integration::CreateIntegrationOutput,
97crate::operation::create_integration::CreateIntegrationError,
98Self,
99 > {
100crate::client::customize::CustomizableOperation::new(self)
101 }
102pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103self.set_config_override(::std::option::Option::Some(config_override.into()));
104self
105}
106107pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108self.config_override = config_override;
109self
110}
111/// <p>The Amazon Resource Name (ARN) of the database to use as the source for replication.</p>
112pub fn source_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113self.inner = self.inner.source_arn(input.into());
114self
115}
116/// <p>The Amazon Resource Name (ARN) of the database to use as the source for replication.</p>
117pub fn set_source_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118self.inner = self.inner.set_source_arn(input);
119self
120}
121/// <p>The Amazon Resource Name (ARN) of the database to use as the source for replication.</p>
122pub fn get_source_arn(&self) -> &::std::option::Option<::std::string::String> {
123self.inner.get_source_arn()
124 }
125/// <p>The Amazon Resource Name (ARN) of the Amazon Redshift data warehouse to use as the target for replication.</p>
126pub fn target_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127self.inner = self.inner.target_arn(input.into());
128self
129}
130/// <p>The Amazon Resource Name (ARN) of the Amazon Redshift data warehouse to use as the target for replication.</p>
131pub fn set_target_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132self.inner = self.inner.set_target_arn(input);
133self
134}
135/// <p>The Amazon Resource Name (ARN) of the Amazon Redshift data warehouse to use as the target for replication.</p>
136pub fn get_target_arn(&self) -> &::std::option::Option<::std::string::String> {
137self.inner.get_target_arn()
138 }
139/// <p>The name of the integration.</p>
140pub fn integration_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
141self.inner = self.inner.integration_name(input.into());
142self
143}
144/// <p>The name of the integration.</p>
145pub fn set_integration_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
146self.inner = self.inner.set_integration_name(input);
147self
148}
149/// <p>The name of the integration.</p>
150pub fn get_integration_name(&self) -> &::std::option::Option<::std::string::String> {
151self.inner.get_integration_name()
152 }
153/// <p>An Key Management Service (KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default Amazon Web Services owned key is used.</p>
154pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
155self.inner = self.inner.kms_key_id(input.into());
156self
157}
158/// <p>An Key Management Service (KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default Amazon Web Services owned key is used.</p>
159pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
160self.inner = self.inner.set_kms_key_id(input);
161self
162}
163/// <p>An Key Management Service (KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default Amazon Web Services owned key is used.</p>
164pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
165self.inner.get_kms_key_id()
166 }
167///
168 /// Appends an item to `TagList`.
169 ///
170 /// To override the contents of this collection use [`set_tag_list`](Self::set_tag_list).
171 ///
172 /// <p>A list of tags.</p>
173pub fn tag_list(mut self, input: crate::types::Tag) -> Self {
174self.inner = self.inner.tag_list(input);
175self
176}
177/// <p>A list of tags.</p>
178pub fn set_tag_list(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
179self.inner = self.inner.set_tag_list(input);
180self
181}
182/// <p>A list of tags.</p>
183pub fn get_tag_list(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
184self.inner.get_tag_list()
185 }
186///
187 /// Adds a key-value pair to `AdditionalEncryptionContext`.
188 ///
189 /// To override the contents of this collection use [`set_additional_encryption_context`](Self::set_additional_encryption_context).
190 ///
191 /// <p>An optional set of non-secret key–value pairs that contains additional contextual information about the data. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption context</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
192 /// <p>You can only include this parameter if you specify the <code>KMSKeyId</code> parameter.</p>
193pub fn additional_encryption_context(
194mut self,
195 k: impl ::std::convert::Into<::std::string::String>,
196 v: impl ::std::convert::Into<::std::string::String>,
197 ) -> Self {
198self.inner = self.inner.additional_encryption_context(k.into(), v.into());
199self
200}
201/// <p>An optional set of non-secret key–value pairs that contains additional contextual information about the data. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption context</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
202 /// <p>You can only include this parameter if you specify the <code>KMSKeyId</code> parameter.</p>
203pub fn set_additional_encryption_context(
204mut self,
205 input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
206 ) -> Self {
207self.inner = self.inner.set_additional_encryption_context(input);
208self
209}
210/// <p>An optional set of non-secret key–value pairs that contains additional contextual information about the data. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption context</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
211 /// <p>You can only include this parameter if you specify the <code>KMSKeyId</code> parameter.</p>
212pub fn get_additional_encryption_context(
213&self,
214 ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
215self.inner.get_additional_encryption_context()
216 }
217/// <p>A description of the integration.</p>
218pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
219self.inner = self.inner.description(input.into());
220self
221}
222/// <p>A description of the integration.</p>
223pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
224self.inner = self.inner.set_description(input);
225self
226}
227/// <p>A description of the integration.</p>
228pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
229self.inner.get_description()
230 }
231}