aws_sdk_qbusiness/operation/create_data_accessor/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_data_accessor::_create_data_accessor_output::CreateDataAccessorOutputBuilder;
3
4pub use crate::operation::create_data_accessor::_create_data_accessor_input::CreateDataAccessorInputBuilder;
5
6impl crate::operation::create_data_accessor::builders::CreateDataAccessorInputBuilder {
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_data_accessor::CreateDataAccessorOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_data_accessor::CreateDataAccessorError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_data_accessor();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateDataAccessor`.
24///
25/// <p>Creates a new data accessor for an ISV to access data from a Amazon Q Business application. The data accessor is an entity that represents the ISV's access to the Amazon Q Business application's data. It includes the IAM role ARN for the ISV, a friendly name, and a set of action configurations that define the specific actions the ISV is allowed to perform and any associated data filters. When the data accessor is created, an IAM Identity Center application is also created to manage the ISV's identity and authentication for accessing the Amazon Q Business application.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateDataAccessorFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_data_accessor::builders::CreateDataAccessorInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_data_accessor::CreateDataAccessorOutput,
35        crate::operation::create_data_accessor::CreateDataAccessorError,
36    > for CreateDataAccessorFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::create_data_accessor::CreateDataAccessorOutput,
44            crate::operation::create_data_accessor::CreateDataAccessorError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreateDataAccessorFluentBuilder {
51    /// Creates a new `CreateDataAccessorFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the CreateDataAccessor as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_data_accessor::builders::CreateDataAccessorInputBuilder {
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.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::create_data_accessor::CreateDataAccessorOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_data_accessor::CreateDataAccessorError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::create_data_accessor::CreateDataAccessor::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_data_accessor::CreateDataAccessor::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::create_data_accessor::CreateDataAccessorOutput,
97        crate::operation::create_data_accessor::CreateDataAccessorError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// <p>The unique identifier of the Amazon Q Business application.</p>
112    pub fn application_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.application_id(input.into());
114        self
115    }
116    /// <p>The unique identifier of the Amazon Q Business application.</p>
117    pub fn set_application_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_application_id(input);
119        self
120    }
121    /// <p>The unique identifier of the Amazon Q Business application.</p>
122    pub fn get_application_id(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_application_id()
124    }
125    /// <p>The Amazon Resource Name (ARN) of the IAM role for the ISV that will be accessing the data.</p>
126    pub fn principal(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127        self.inner = self.inner.principal(input.into());
128        self
129    }
130    /// <p>The Amazon Resource Name (ARN) of the IAM role for the ISV that will be accessing the data.</p>
131    pub fn set_principal(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132        self.inner = self.inner.set_principal(input);
133        self
134    }
135    /// <p>The Amazon Resource Name (ARN) of the IAM role for the ISV that will be accessing the data.</p>
136    pub fn get_principal(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_principal()
138    }
139    ///
140    /// Appends an item to `actionConfigurations`.
141    ///
142    /// To override the contents of this collection use [`set_action_configurations`](Self::set_action_configurations).
143    ///
144    /// <p>A list of action configurations specifying the allowed actions and any associated filters.</p>
145    pub fn action_configurations(mut self, input: crate::types::ActionConfiguration) -> Self {
146        self.inner = self.inner.action_configurations(input);
147        self
148    }
149    /// <p>A list of action configurations specifying the allowed actions and any associated filters.</p>
150    pub fn set_action_configurations(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ActionConfiguration>>) -> Self {
151        self.inner = self.inner.set_action_configurations(input);
152        self
153    }
154    /// <p>A list of action configurations specifying the allowed actions and any associated filters.</p>
155    pub fn get_action_configurations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ActionConfiguration>> {
156        self.inner.get_action_configurations()
157    }
158    /// <p>A unique, case-sensitive identifier you provide to ensure idempotency of the request.</p>
159    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
160        self.inner = self.inner.client_token(input.into());
161        self
162    }
163    /// <p>A unique, case-sensitive identifier you provide to ensure idempotency of the request.</p>
164    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
165        self.inner = self.inner.set_client_token(input);
166        self
167    }
168    /// <p>A unique, case-sensitive identifier you provide to ensure idempotency of the request.</p>
169    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
170        self.inner.get_client_token()
171    }
172    /// <p>A friendly name for the data accessor.</p>
173    pub fn display_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
174        self.inner = self.inner.display_name(input.into());
175        self
176    }
177    /// <p>A friendly name for the data accessor.</p>
178    pub fn set_display_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
179        self.inner = self.inner.set_display_name(input);
180        self
181    }
182    /// <p>A friendly name for the data accessor.</p>
183    pub fn get_display_name(&self) -> &::std::option::Option<::std::string::String> {
184        self.inner.get_display_name()
185    }
186    /// <p>The authentication configuration details for the data accessor. This specifies how the ISV will authenticate when accessing data through this data accessor.</p>
187    pub fn authentication_detail(mut self, input: crate::types::DataAccessorAuthenticationDetail) -> Self {
188        self.inner = self.inner.authentication_detail(input);
189        self
190    }
191    /// <p>The authentication configuration details for the data accessor. This specifies how the ISV will authenticate when accessing data through this data accessor.</p>
192    pub fn set_authentication_detail(mut self, input: ::std::option::Option<crate::types::DataAccessorAuthenticationDetail>) -> Self {
193        self.inner = self.inner.set_authentication_detail(input);
194        self
195    }
196    /// <p>The authentication configuration details for the data accessor. This specifies how the ISV will authenticate when accessing data through this data accessor.</p>
197    pub fn get_authentication_detail(&self) -> &::std::option::Option<crate::types::DataAccessorAuthenticationDetail> {
198        self.inner.get_authentication_detail()
199    }
200    ///
201    /// Appends an item to `tags`.
202    ///
203    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
204    ///
205    /// <p>The tags to associate with the data accessor.</p>
206    pub fn tags(mut self, input: crate::types::Tag) -> Self {
207        self.inner = self.inner.tags(input);
208        self
209    }
210    /// <p>The tags to associate with the data accessor.</p>
211    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
212        self.inner = self.inner.set_tags(input);
213        self
214    }
215    /// <p>The tags to associate with the data accessor.</p>
216    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
217        self.inner.get_tags()
218    }
219}