aws_sdk_quicksight/operation/create_iam_policy_assignment/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_iam_policy_assignment::_create_iam_policy_assignment_output::CreateIamPolicyAssignmentOutputBuilder;
3
4pub use crate::operation::create_iam_policy_assignment::_create_iam_policy_assignment_input::CreateIamPolicyAssignmentInputBuilder;
5
6impl crate::operation::create_iam_policy_assignment::builders::CreateIamPolicyAssignmentInputBuilder {
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_iam_policy_assignment::CreateIamPolicyAssignmentOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_iam_policy_assignment::CreateIAMPolicyAssignmentError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_iam_policy_assignment();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateIAMPolicyAssignment`.
24///
25/// <p>Creates an assignment with one specified IAM policy, identified by its Amazon Resource Name (ARN). This policy assignment is attached to the specified groups or users of Amazon QuickSight. Assignment names are unique per Amazon Web Services account. To avoid overwriting rules in other namespaces, use assignment names that are unique.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateIAMPolicyAssignmentFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_iam_policy_assignment::builders::CreateIamPolicyAssignmentInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_iam_policy_assignment::CreateIamPolicyAssignmentOutput,
35        crate::operation::create_iam_policy_assignment::CreateIAMPolicyAssignmentError,
36    > for CreateIAMPolicyAssignmentFluentBuilder
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_iam_policy_assignment::CreateIamPolicyAssignmentOutput,
44            crate::operation::create_iam_policy_assignment::CreateIAMPolicyAssignmentError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreateIAMPolicyAssignmentFluentBuilder {
51    /// Creates a new `CreateIAMPolicyAssignmentFluentBuilder`.
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 CreateIAMPolicyAssignment as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_iam_policy_assignment::builders::CreateIamPolicyAssignmentInputBuilder {
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_iam_policy_assignment::CreateIamPolicyAssignmentOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_iam_policy_assignment::CreateIAMPolicyAssignmentError,
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_iam_policy_assignment::CreateIAMPolicyAssignment::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_iam_policy_assignment::CreateIAMPolicyAssignment::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_iam_policy_assignment::CreateIamPolicyAssignmentOutput,
97        crate::operation::create_iam_policy_assignment::CreateIAMPolicyAssignmentError,
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 ID of the Amazon Web Services account where you want to assign an IAM policy to Amazon QuickSight users or groups.</p>
112    pub fn aws_account_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.aws_account_id(input.into());
114        self
115    }
116    /// <p>The ID of the Amazon Web Services account where you want to assign an IAM policy to Amazon QuickSight users or groups.</p>
117    pub fn set_aws_account_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_aws_account_id(input);
119        self
120    }
121    /// <p>The ID of the Amazon Web Services account where you want to assign an IAM policy to Amazon QuickSight users or groups.</p>
122    pub fn get_aws_account_id(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_aws_account_id()
124    }
125    /// <p>The name of the assignment, also called a rule. The name must be unique within the Amazon Web Services account.</p>
126    pub fn assignment_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127        self.inner = self.inner.assignment_name(input.into());
128        self
129    }
130    /// <p>The name of the assignment, also called a rule. The name must be unique within the Amazon Web Services account.</p>
131    pub fn set_assignment_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132        self.inner = self.inner.set_assignment_name(input);
133        self
134    }
135    /// <p>The name of the assignment, also called a rule. The name must be unique within the Amazon Web Services account.</p>
136    pub fn get_assignment_name(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_assignment_name()
138    }
139    /// <p>The status of the assignment. Possible values are as follows:</p>
140    /// <ul>
141    /// <li>
142    /// <p><code>ENABLED</code> - Anything specified in this assignment is used when creating the data source.</p></li>
143    /// <li>
144    /// <p><code>DISABLED</code> - This assignment isn't used when creating the data source.</p></li>
145    /// <li>
146    /// <p><code>DRAFT</code> - This assignment is an unfinished draft and isn't used when creating the data source.</p></li>
147    /// </ul>
148    pub fn assignment_status(mut self, input: crate::types::AssignmentStatus) -> Self {
149        self.inner = self.inner.assignment_status(input);
150        self
151    }
152    /// <p>The status of the assignment. Possible values are as follows:</p>
153    /// <ul>
154    /// <li>
155    /// <p><code>ENABLED</code> - Anything specified in this assignment is used when creating the data source.</p></li>
156    /// <li>
157    /// <p><code>DISABLED</code> - This assignment isn't used when creating the data source.</p></li>
158    /// <li>
159    /// <p><code>DRAFT</code> - This assignment is an unfinished draft and isn't used when creating the data source.</p></li>
160    /// </ul>
161    pub fn set_assignment_status(mut self, input: ::std::option::Option<crate::types::AssignmentStatus>) -> Self {
162        self.inner = self.inner.set_assignment_status(input);
163        self
164    }
165    /// <p>The status of the assignment. Possible values are as follows:</p>
166    /// <ul>
167    /// <li>
168    /// <p><code>ENABLED</code> - Anything specified in this assignment is used when creating the data source.</p></li>
169    /// <li>
170    /// <p><code>DISABLED</code> - This assignment isn't used when creating the data source.</p></li>
171    /// <li>
172    /// <p><code>DRAFT</code> - This assignment is an unfinished draft and isn't used when creating the data source.</p></li>
173    /// </ul>
174    pub fn get_assignment_status(&self) -> &::std::option::Option<crate::types::AssignmentStatus> {
175        self.inner.get_assignment_status()
176    }
177    /// <p>The ARN for the IAM policy to apply to the Amazon QuickSight users and groups specified in this assignment.</p>
178    pub fn policy_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
179        self.inner = self.inner.policy_arn(input.into());
180        self
181    }
182    /// <p>The ARN for the IAM policy to apply to the Amazon QuickSight users and groups specified in this assignment.</p>
183    pub fn set_policy_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
184        self.inner = self.inner.set_policy_arn(input);
185        self
186    }
187    /// <p>The ARN for the IAM policy to apply to the Amazon QuickSight users and groups specified in this assignment.</p>
188    pub fn get_policy_arn(&self) -> &::std::option::Option<::std::string::String> {
189        self.inner.get_policy_arn()
190    }
191    ///
192    /// Adds a key-value pair to `Identities`.
193    ///
194    /// To override the contents of this collection use [`set_identities`](Self::set_identities).
195    ///
196    /// <p>The Amazon QuickSight users, groups, or both that you want to assign the policy to.</p>
197    pub fn identities(mut self, k: impl ::std::convert::Into<::std::string::String>, v: ::std::vec::Vec<::std::string::String>) -> Self {
198        self.inner = self.inner.identities(k.into(), v);
199        self
200    }
201    /// <p>The Amazon QuickSight users, groups, or both that you want to assign the policy to.</p>
202    pub fn set_identities(
203        mut self,
204        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
205    ) -> Self {
206        self.inner = self.inner.set_identities(input);
207        self
208    }
209    /// <p>The Amazon QuickSight users, groups, or both that you want to assign the policy to.</p>
210    pub fn get_identities(
211        &self,
212    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
213        self.inner.get_identities()
214    }
215    /// <p>The namespace that contains the assignment.</p>
216    pub fn namespace(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
217        self.inner = self.inner.namespace(input.into());
218        self
219    }
220    /// <p>The namespace that contains the assignment.</p>
221    pub fn set_namespace(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
222        self.inner = self.inner.set_namespace(input);
223        self
224    }
225    /// <p>The namespace that contains the assignment.</p>
226    pub fn get_namespace(&self) -> &::std::option::Option<::std::string::String> {
227        self.inner.get_namespace()
228    }
229}