aws_sdk_kinesisanalytics/operation/add_application_reference_data_source/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::add_application_reference_data_source::_add_application_reference_data_source_output::AddApplicationReferenceDataSourceOutputBuilder;
3
4pub use crate::operation::add_application_reference_data_source::_add_application_reference_data_source_input::AddApplicationReferenceDataSourceInputBuilder;
5
6impl crate::operation::add_application_reference_data_source::builders::AddApplicationReferenceDataSourceInputBuilder {
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::add_application_reference_data_source::AddApplicationReferenceDataSourceOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::add_application_reference_data_source::AddApplicationReferenceDataSourceError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.add_application_reference_data_source();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `AddApplicationReferenceDataSource`.
24///
25/// <note>
26/// <p>This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>.</p>
27/// </note>
28/// <p>Adds a reference data source to an existing application.</p>
29/// <p>Amazon Kinesis Analytics reads reference data (that is, an Amazon S3 object) and creates an in-application table within your application. In the request, you provide the source (S3 bucket name and object key name), name of the in-application table to create, and the necessary mapping information that describes how data in Amazon S3 object maps to columns in the resulting in-application table.</p>
30/// <p>For conceptual information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html">Configuring Application Input</a>. For the limits on data sources you can add to your application, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/limits.html">Limits</a>.</p>
31/// <p>This operation requires permissions to perform the <code>kinesisanalytics:AddApplicationOutput</code> action.</p>
32#[derive(::std::clone::Clone, ::std::fmt::Debug)]
33pub struct AddApplicationReferenceDataSourceFluentBuilder {
34    handle: ::std::sync::Arc<crate::client::Handle>,
35    inner: crate::operation::add_application_reference_data_source::builders::AddApplicationReferenceDataSourceInputBuilder,
36    config_override: ::std::option::Option<crate::config::Builder>,
37}
38impl
39    crate::client::customize::internal::CustomizableSend<
40        crate::operation::add_application_reference_data_source::AddApplicationReferenceDataSourceOutput,
41        crate::operation::add_application_reference_data_source::AddApplicationReferenceDataSourceError,
42    > for AddApplicationReferenceDataSourceFluentBuilder
43{
44    fn send(
45        self,
46        config_override: crate::config::Builder,
47    ) -> crate::client::customize::internal::BoxFuture<
48        crate::client::customize::internal::SendResult<
49            crate::operation::add_application_reference_data_source::AddApplicationReferenceDataSourceOutput,
50            crate::operation::add_application_reference_data_source::AddApplicationReferenceDataSourceError,
51        >,
52    > {
53        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
54    }
55}
56impl AddApplicationReferenceDataSourceFluentBuilder {
57    /// Creates a new `AddApplicationReferenceDataSourceFluentBuilder`.
58    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
59        Self {
60            handle,
61            inner: ::std::default::Default::default(),
62            config_override: ::std::option::Option::None,
63        }
64    }
65    /// Access the AddApplicationReferenceDataSource as a reference.
66    pub fn as_input(&self) -> &crate::operation::add_application_reference_data_source::builders::AddApplicationReferenceDataSourceInputBuilder {
67        &self.inner
68    }
69    /// Sends the request and returns the response.
70    ///
71    /// If an error occurs, an `SdkError` will be returned with additional details that
72    /// can be matched against.
73    ///
74    /// By default, any retryable failures will be retried twice. Retry behavior
75    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
76    /// set when configuring the client.
77    pub async fn send(
78        self,
79    ) -> ::std::result::Result<
80        crate::operation::add_application_reference_data_source::AddApplicationReferenceDataSourceOutput,
81        ::aws_smithy_runtime_api::client::result::SdkError<
82            crate::operation::add_application_reference_data_source::AddApplicationReferenceDataSourceError,
83            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
84        >,
85    > {
86        let input = self
87            .inner
88            .build()
89            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
90        let runtime_plugins = crate::operation::add_application_reference_data_source::AddApplicationReferenceDataSource::operation_runtime_plugins(
91            self.handle.runtime_plugins.clone(),
92            &self.handle.conf,
93            self.config_override,
94        );
95        crate::operation::add_application_reference_data_source::AddApplicationReferenceDataSource::orchestrate(&runtime_plugins, input).await
96    }
97
98    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
99    pub fn customize(
100        self,
101    ) -> crate::client::customize::CustomizableOperation<
102        crate::operation::add_application_reference_data_source::AddApplicationReferenceDataSourceOutput,
103        crate::operation::add_application_reference_data_source::AddApplicationReferenceDataSourceError,
104        Self,
105    > {
106        crate::client::customize::CustomizableOperation::new(self)
107    }
108    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
109        self.set_config_override(::std::option::Option::Some(config_override.into()));
110        self
111    }
112
113    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
114        self.config_override = config_override;
115        self
116    }
117    /// <p>Name of an existing application.</p>
118    pub fn application_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
119        self.inner = self.inner.application_name(input.into());
120        self
121    }
122    /// <p>Name of an existing application.</p>
123    pub fn set_application_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
124        self.inner = self.inner.set_application_name(input);
125        self
126    }
127    /// <p>Name of an existing application.</p>
128    pub fn get_application_name(&self) -> &::std::option::Option<::std::string::String> {
129        self.inner.get_application_name()
130    }
131    /// <p>Version of the application for which you are adding the reference data source. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned.</p>
132    pub fn current_application_version_id(mut self, input: i64) -> Self {
133        self.inner = self.inner.current_application_version_id(input);
134        self
135    }
136    /// <p>Version of the application for which you are adding the reference data source. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned.</p>
137    pub fn set_current_application_version_id(mut self, input: ::std::option::Option<i64>) -> Self {
138        self.inner = self.inner.set_current_application_version_id(input);
139        self
140    }
141    /// <p>Version of the application for which you are adding the reference data source. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned.</p>
142    pub fn get_current_application_version_id(&self) -> &::std::option::Option<i64> {
143        self.inner.get_current_application_version_id()
144    }
145    /// <p>The reference data source can be an object in your Amazon S3 bucket. Amazon Kinesis Analytics reads the object and copies the data into the in-application table that is created. You provide an S3 bucket, object key name, and the resulting in-application table that is created. You must also provide an IAM role with the necessary permissions that Amazon Kinesis Analytics can assume to read the object from your S3 bucket on your behalf.</p>
146    pub fn reference_data_source(mut self, input: crate::types::ReferenceDataSource) -> Self {
147        self.inner = self.inner.reference_data_source(input);
148        self
149    }
150    /// <p>The reference data source can be an object in your Amazon S3 bucket. Amazon Kinesis Analytics reads the object and copies the data into the in-application table that is created. You provide an S3 bucket, object key name, and the resulting in-application table that is created. You must also provide an IAM role with the necessary permissions that Amazon Kinesis Analytics can assume to read the object from your S3 bucket on your behalf.</p>
151    pub fn set_reference_data_source(mut self, input: ::std::option::Option<crate::types::ReferenceDataSource>) -> Self {
152        self.inner = self.inner.set_reference_data_source(input);
153        self
154    }
155    /// <p>The reference data source can be an object in your Amazon S3 bucket. Amazon Kinesis Analytics reads the object and copies the data into the in-application table that is created. You provide an S3 bucket, object key name, and the resulting in-application table that is created. You must also provide an IAM role with the necessary permissions that Amazon Kinesis Analytics can assume to read the object from your S3 bucket on your behalf.</p>
156    pub fn get_reference_data_source(&self) -> &::std::option::Option<crate::types::ReferenceDataSource> {
157        self.inner.get_reference_data_source()
158    }
159}