aws_sdk_qbusiness/operation/create_index/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_index::_create_index_output::CreateIndexOutputBuilder;
3
4pub use crate::operation::create_index::_create_index_input::CreateIndexInputBuilder;
5
6impl crate::operation::create_index::builders::CreateIndexInputBuilder {
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_index::CreateIndexOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_index::CreateIndexError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_index();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateIndex`.
24///
25/// <p>Creates an Amazon Q Business index.</p>
26/// <p>To determine if index creation has completed, check the <code>Status</code> field returned from a call to <code>DescribeIndex</code>. The <code>Status</code> field is set to <code>ACTIVE</code> when the index is ready to use.</p>
27/// <p>Once the index is active, you can index your documents using the <a href="https://docs.aws.amazon.com/amazonq/latest/api-reference/API_BatchPutDocument.html"> <code>BatchPutDocument</code> </a> API or the <a href="https://docs.aws.amazon.com/amazonq/latest/api-reference/API_CreateDataSource.html"> <code>CreateDataSource</code> </a> API.</p>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct CreateIndexFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::create_index::builders::CreateIndexInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::create_index::CreateIndexOutput,
37        crate::operation::create_index::CreateIndexError,
38    > for CreateIndexFluentBuilder
39{
40    fn send(
41        self,
42        config_override: crate::config::Builder,
43    ) -> crate::client::customize::internal::BoxFuture<
44        crate::client::customize::internal::SendResult<
45            crate::operation::create_index::CreateIndexOutput,
46            crate::operation::create_index::CreateIndexError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl CreateIndexFluentBuilder {
53    /// Creates a new `CreateIndexFluentBuilder`.
54    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
55        Self {
56            handle,
57            inner: ::std::default::Default::default(),
58            config_override: ::std::option::Option::None,
59        }
60    }
61    /// Access the CreateIndex as a reference.
62    pub fn as_input(&self) -> &crate::operation::create_index::builders::CreateIndexInputBuilder {
63        &self.inner
64    }
65    /// Sends the request and returns the response.
66    ///
67    /// If an error occurs, an `SdkError` will be returned with additional details that
68    /// can be matched against.
69    ///
70    /// By default, any retryable failures will be retried twice. Retry behavior
71    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
72    /// set when configuring the client.
73    pub async fn send(
74        self,
75    ) -> ::std::result::Result<
76        crate::operation::create_index::CreateIndexOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::create_index::CreateIndexError,
79            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
80        >,
81    > {
82        let input = self
83            .inner
84            .build()
85            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
86        let runtime_plugins = crate::operation::create_index::CreateIndex::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::create_index::CreateIndex::orchestrate(&runtime_plugins, input).await
92    }
93
94    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
95    pub fn customize(
96        self,
97    ) -> crate::client::customize::CustomizableOperation<
98        crate::operation::create_index::CreateIndexOutput,
99        crate::operation::create_index::CreateIndexError,
100        Self,
101    > {
102        crate::client::customize::CustomizableOperation::new(self)
103    }
104    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
105        self.set_config_override(::std::option::Option::Some(config_override.into()));
106        self
107    }
108
109    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
110        self.config_override = config_override;
111        self
112    }
113    /// <p>The identifier of the Amazon Q Business application using the index.</p>
114    pub fn application_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
115        self.inner = self.inner.application_id(input.into());
116        self
117    }
118    /// <p>The identifier of the Amazon Q Business application using the index.</p>
119    pub fn set_application_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
120        self.inner = self.inner.set_application_id(input);
121        self
122    }
123    /// <p>The identifier of the Amazon Q Business application using the index.</p>
124    pub fn get_application_id(&self) -> &::std::option::Option<::std::string::String> {
125        self.inner.get_application_id()
126    }
127    /// <p>A name for the Amazon Q Business index.</p>
128    pub fn display_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
129        self.inner = self.inner.display_name(input.into());
130        self
131    }
132    /// <p>A name for the Amazon Q Business index.</p>
133    pub fn set_display_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
134        self.inner = self.inner.set_display_name(input);
135        self
136    }
137    /// <p>A name for the Amazon Q Business index.</p>
138    pub fn get_display_name(&self) -> &::std::option::Option<::std::string::String> {
139        self.inner.get_display_name()
140    }
141    /// <p>A description for the Amazon Q Business index.</p>
142    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
143        self.inner = self.inner.description(input.into());
144        self
145    }
146    /// <p>A description for the Amazon Q Business index.</p>
147    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
148        self.inner = self.inner.set_description(input);
149        self
150    }
151    /// <p>A description for the Amazon Q Business index.</p>
152    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
153        self.inner.get_description()
154    }
155    /// <p>The index type that's suitable for your needs. For more information on what's included in each type of index, see <a href="https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/tiers.html#index-tiers">Amazon Q Business tiers</a>.</p>
156    pub fn r#type(mut self, input: crate::types::IndexType) -> Self {
157        self.inner = self.inner.r#type(input);
158        self
159    }
160    /// <p>The index type that's suitable for your needs. For more information on what's included in each type of index, see <a href="https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/tiers.html#index-tiers">Amazon Q Business tiers</a>.</p>
161    pub fn set_type(mut self, input: ::std::option::Option<crate::types::IndexType>) -> Self {
162        self.inner = self.inner.set_type(input);
163        self
164    }
165    /// <p>The index type that's suitable for your needs. For more information on what's included in each type of index, see <a href="https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/tiers.html#index-tiers">Amazon Q Business tiers</a>.</p>
166    pub fn get_type(&self) -> &::std::option::Option<crate::types::IndexType> {
167        self.inner.get_type()
168    }
169    ///
170    /// Appends an item to `tags`.
171    ///
172    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
173    ///
174    /// <p>A list of key-value pairs that identify or categorize the index. You can also use tags to help control access to the index. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.</p>
175    pub fn tags(mut self, input: crate::types::Tag) -> Self {
176        self.inner = self.inner.tags(input);
177        self
178    }
179    /// <p>A list of key-value pairs that identify or categorize the index. You can also use tags to help control access to the index. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.</p>
180    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
181        self.inner = self.inner.set_tags(input);
182        self
183    }
184    /// <p>A list of key-value pairs that identify or categorize the index. You can also use tags to help control access to the index. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.</p>
185    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
186        self.inner.get_tags()
187    }
188    /// <p>The capacity units you want to provision for your index. You can add and remove capacity to fit your usage needs.</p>
189    pub fn capacity_configuration(mut self, input: crate::types::IndexCapacityConfiguration) -> Self {
190        self.inner = self.inner.capacity_configuration(input);
191        self
192    }
193    /// <p>The capacity units you want to provision for your index. You can add and remove capacity to fit your usage needs.</p>
194    pub fn set_capacity_configuration(mut self, input: ::std::option::Option<crate::types::IndexCapacityConfiguration>) -> Self {
195        self.inner = self.inner.set_capacity_configuration(input);
196        self
197    }
198    /// <p>The capacity units you want to provision for your index. You can add and remove capacity to fit your usage needs.</p>
199    pub fn get_capacity_configuration(&self) -> &::std::option::Option<crate::types::IndexCapacityConfiguration> {
200        self.inner.get_capacity_configuration()
201    }
202    /// <p>A token that you provide to identify the request to create an index. Multiple calls to the <code>CreateIndex</code> API with the same client token will create only one index.</p>
203    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
204        self.inner = self.inner.client_token(input.into());
205        self
206    }
207    /// <p>A token that you provide to identify the request to create an index. Multiple calls to the <code>CreateIndex</code> API with the same client token will create only one index.</p>
208    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
209        self.inner = self.inner.set_client_token(input);
210        self
211    }
212    /// <p>A token that you provide to identify the request to create an index. Multiple calls to the <code>CreateIndex</code> API with the same client token will create only one index.</p>
213    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
214        self.inner.get_client_token()
215    }
216}