aws_sdk_cognitoidentityprovider/operation/create_user_pool_client/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_user_pool_client::_create_user_pool_client_output::CreateUserPoolClientOutputBuilder;
3
4pub use crate::operation::create_user_pool_client::_create_user_pool_client_input::CreateUserPoolClientInputBuilder;
5
6impl crate::operation::create_user_pool_client::builders::CreateUserPoolClientInputBuilder {
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_user_pool_client::CreateUserPoolClientOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::create_user_pool_client::CreateUserPoolClientError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.create_user_pool_client();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `CreateUserPoolClient`.
24///
25/// <p>Creates an app client in a user pool. This operation sets basic and advanced configuration options.</p>
26/// <p>Unlike app clients created in the console, Amazon Cognito doesn't automatically assign a branding style to app clients that you configure with this API operation. Managed login and classic hosted UI pages aren't available for your client until after you apply a branding style.</p><important>
27/// <p>If you don't provide a value for an attribute, Amazon Cognito sets it to its default value.</p>
28/// </important> <note>
29/// <p>Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.</p>
30/// <p class="title"><b>Learn more</b></p>
31/// <ul>
32/// <li>
33/// <p><a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html">Signing Amazon Web Services API Requests</a></p></li>
34/// <li>
35/// <p><a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html">Using the Amazon Cognito user pools API and user pool endpoints</a></p></li>
36/// </ul>
37/// </note>
38#[derive(::std::clone::Clone, ::std::fmt::Debug)]
39pub struct CreateUserPoolClientFluentBuilder {
40 handle: ::std::sync::Arc<crate::client::Handle>,
41 inner: crate::operation::create_user_pool_client::builders::CreateUserPoolClientInputBuilder,
42 config_override: ::std::option::Option<crate::config::Builder>,
43}
44impl
45 crate::client::customize::internal::CustomizableSend<
46 crate::operation::create_user_pool_client::CreateUserPoolClientOutput,
47 crate::operation::create_user_pool_client::CreateUserPoolClientError,
48 > for CreateUserPoolClientFluentBuilder
49{
50 fn send(
51 self,
52 config_override: crate::config::Builder,
53 ) -> crate::client::customize::internal::BoxFuture<
54 crate::client::customize::internal::SendResult<
55 crate::operation::create_user_pool_client::CreateUserPoolClientOutput,
56 crate::operation::create_user_pool_client::CreateUserPoolClientError,
57 >,
58 > {
59 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
60 }
61}
62impl CreateUserPoolClientFluentBuilder {
63 /// Creates a new `CreateUserPoolClientFluentBuilder`.
64 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
65 Self {
66 handle,
67 inner: ::std::default::Default::default(),
68 config_override: ::std::option::Option::None,
69 }
70 }
71 /// Access the CreateUserPoolClient as a reference.
72 pub fn as_input(&self) -> &crate::operation::create_user_pool_client::builders::CreateUserPoolClientInputBuilder {
73 &self.inner
74 }
75 /// Sends the request and returns the response.
76 ///
77 /// If an error occurs, an `SdkError` will be returned with additional details that
78 /// can be matched against.
79 ///
80 /// By default, any retryable failures will be retried twice. Retry behavior
81 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
82 /// set when configuring the client.
83 pub async fn send(
84 self,
85 ) -> ::std::result::Result<
86 crate::operation::create_user_pool_client::CreateUserPoolClientOutput,
87 ::aws_smithy_runtime_api::client::result::SdkError<
88 crate::operation::create_user_pool_client::CreateUserPoolClientError,
89 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
90 >,
91 > {
92 let input = self
93 .inner
94 .build()
95 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
96 let runtime_plugins = crate::operation::create_user_pool_client::CreateUserPoolClient::operation_runtime_plugins(
97 self.handle.runtime_plugins.clone(),
98 &self.handle.conf,
99 self.config_override,
100 );
101 crate::operation::create_user_pool_client::CreateUserPoolClient::orchestrate(&runtime_plugins, input).await
102 }
103
104 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
105 pub fn customize(
106 self,
107 ) -> crate::client::customize::CustomizableOperation<
108 crate::operation::create_user_pool_client::CreateUserPoolClientOutput,
109 crate::operation::create_user_pool_client::CreateUserPoolClientError,
110 Self,
111 > {
112 crate::client::customize::CustomizableOperation::new(self)
113 }
114 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
115 self.set_config_override(::std::option::Option::Some(config_override.into()));
116 self
117 }
118
119 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
120 self.config_override = config_override;
121 self
122 }
123 /// <p>The ID of the user pool where you want to create an app client.</p>
124 pub fn user_pool_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
125 self.inner = self.inner.user_pool_id(input.into());
126 self
127 }
128 /// <p>The ID of the user pool where you want to create an app client.</p>
129 pub fn set_user_pool_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
130 self.inner = self.inner.set_user_pool_id(input);
131 self
132 }
133 /// <p>The ID of the user pool where you want to create an app client.</p>
134 pub fn get_user_pool_id(&self) -> &::std::option::Option<::std::string::String> {
135 self.inner.get_user_pool_id()
136 }
137 /// <p>A friendly name for the app client that you want to create.</p>
138 pub fn client_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
139 self.inner = self.inner.client_name(input.into());
140 self
141 }
142 /// <p>A friendly name for the app client that you want to create.</p>
143 pub fn set_client_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
144 self.inner = self.inner.set_client_name(input);
145 self
146 }
147 /// <p>A friendly name for the app client that you want to create.</p>
148 pub fn get_client_name(&self) -> &::std::option::Option<::std::string::String> {
149 self.inner.get_client_name()
150 }
151 /// <p>When <code>true</code>, generates a client secret for the app client. Client secrets are used with server-side and machine-to-machine applications. Client secrets are automatically generated; you can't specify a secret value. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html#user-pool-settings-client-app-client-types">App client types</a>.</p>
152 pub fn generate_secret(mut self, input: bool) -> Self {
153 self.inner = self.inner.generate_secret(input);
154 self
155 }
156 /// <p>When <code>true</code>, generates a client secret for the app client. Client secrets are used with server-side and machine-to-machine applications. Client secrets are automatically generated; you can't specify a secret value. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html#user-pool-settings-client-app-client-types">App client types</a>.</p>
157 pub fn set_generate_secret(mut self, input: ::std::option::Option<bool>) -> Self {
158 self.inner = self.inner.set_generate_secret(input);
159 self
160 }
161 /// <p>When <code>true</code>, generates a client secret for the app client. Client secrets are used with server-side and machine-to-machine applications. Client secrets are automatically generated; you can't specify a secret value. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html#user-pool-settings-client-app-client-types">App client types</a>.</p>
162 pub fn get_generate_secret(&self) -> &::std::option::Option<bool> {
163 self.inner.get_generate_secret()
164 }
165 /// <p>The refresh token time limit. After this limit expires, your user can't use their refresh token. To specify the time unit for <code>RefreshTokenValidity</code> as <code>seconds</code>, <code>minutes</code>, <code>hours</code>, or <code>days</code>, set a <code>TokenValidityUnits</code> value in your API request.</p>
166 /// <p>For example, when you set <code>RefreshTokenValidity</code> as <code>10</code> and <code>TokenValidityUnits</code> as <code>days</code>, your user can refresh their session and retrieve new access and ID tokens for 10 days.</p>
167 /// <p>The default time unit for <code>RefreshTokenValidity</code> in an API request is days. You can't set <code>RefreshTokenValidity</code> to 0. If you do, Amazon Cognito overrides the value with the default value of 30 days. <i>Valid range</i> is displayed below in seconds.</p>
168 /// <p>If you don't specify otherwise in the configuration of your app client, your refresh tokens are valid for 30 days.</p>
169 pub fn refresh_token_validity(mut self, input: i32) -> Self {
170 self.inner = self.inner.refresh_token_validity(input);
171 self
172 }
173 /// <p>The refresh token time limit. After this limit expires, your user can't use their refresh token. To specify the time unit for <code>RefreshTokenValidity</code> as <code>seconds</code>, <code>minutes</code>, <code>hours</code>, or <code>days</code>, set a <code>TokenValidityUnits</code> value in your API request.</p>
174 /// <p>For example, when you set <code>RefreshTokenValidity</code> as <code>10</code> and <code>TokenValidityUnits</code> as <code>days</code>, your user can refresh their session and retrieve new access and ID tokens for 10 days.</p>
175 /// <p>The default time unit for <code>RefreshTokenValidity</code> in an API request is days. You can't set <code>RefreshTokenValidity</code> to 0. If you do, Amazon Cognito overrides the value with the default value of 30 days. <i>Valid range</i> is displayed below in seconds.</p>
176 /// <p>If you don't specify otherwise in the configuration of your app client, your refresh tokens are valid for 30 days.</p>
177 pub fn set_refresh_token_validity(mut self, input: ::std::option::Option<i32>) -> Self {
178 self.inner = self.inner.set_refresh_token_validity(input);
179 self
180 }
181 /// <p>The refresh token time limit. After this limit expires, your user can't use their refresh token. To specify the time unit for <code>RefreshTokenValidity</code> as <code>seconds</code>, <code>minutes</code>, <code>hours</code>, or <code>days</code>, set a <code>TokenValidityUnits</code> value in your API request.</p>
182 /// <p>For example, when you set <code>RefreshTokenValidity</code> as <code>10</code> and <code>TokenValidityUnits</code> as <code>days</code>, your user can refresh their session and retrieve new access and ID tokens for 10 days.</p>
183 /// <p>The default time unit for <code>RefreshTokenValidity</code> in an API request is days. You can't set <code>RefreshTokenValidity</code> to 0. If you do, Amazon Cognito overrides the value with the default value of 30 days. <i>Valid range</i> is displayed below in seconds.</p>
184 /// <p>If you don't specify otherwise in the configuration of your app client, your refresh tokens are valid for 30 days.</p>
185 pub fn get_refresh_token_validity(&self) -> &::std::option::Option<i32> {
186 self.inner.get_refresh_token_validity()
187 }
188 /// <p>The access token time limit. After this limit expires, your user can't use their access token. To specify the time unit for <code>AccessTokenValidity</code> as <code>seconds</code>, <code>minutes</code>, <code>hours</code>, or <code>days</code>, set a <code>TokenValidityUnits</code> value in your API request.</p>
189 /// <p>For example, when you set <code>AccessTokenValidity</code> to <code>10</code> and <code>TokenValidityUnits</code> to <code>hours</code>, your user can authorize access with their access token for 10 hours.</p>
190 /// <p>The default time unit for <code>AccessTokenValidity</code> in an API request is hours. <i>Valid range</i> is displayed below in seconds.</p>
191 /// <p>If you don't specify otherwise in the configuration of your app client, your access tokens are valid for one hour.</p>
192 pub fn access_token_validity(mut self, input: i32) -> Self {
193 self.inner = self.inner.access_token_validity(input);
194 self
195 }
196 /// <p>The access token time limit. After this limit expires, your user can't use their access token. To specify the time unit for <code>AccessTokenValidity</code> as <code>seconds</code>, <code>minutes</code>, <code>hours</code>, or <code>days</code>, set a <code>TokenValidityUnits</code> value in your API request.</p>
197 /// <p>For example, when you set <code>AccessTokenValidity</code> to <code>10</code> and <code>TokenValidityUnits</code> to <code>hours</code>, your user can authorize access with their access token for 10 hours.</p>
198 /// <p>The default time unit for <code>AccessTokenValidity</code> in an API request is hours. <i>Valid range</i> is displayed below in seconds.</p>
199 /// <p>If you don't specify otherwise in the configuration of your app client, your access tokens are valid for one hour.</p>
200 pub fn set_access_token_validity(mut self, input: ::std::option::Option<i32>) -> Self {
201 self.inner = self.inner.set_access_token_validity(input);
202 self
203 }
204 /// <p>The access token time limit. After this limit expires, your user can't use their access token. To specify the time unit for <code>AccessTokenValidity</code> as <code>seconds</code>, <code>minutes</code>, <code>hours</code>, or <code>days</code>, set a <code>TokenValidityUnits</code> value in your API request.</p>
205 /// <p>For example, when you set <code>AccessTokenValidity</code> to <code>10</code> and <code>TokenValidityUnits</code> to <code>hours</code>, your user can authorize access with their access token for 10 hours.</p>
206 /// <p>The default time unit for <code>AccessTokenValidity</code> in an API request is hours. <i>Valid range</i> is displayed below in seconds.</p>
207 /// <p>If you don't specify otherwise in the configuration of your app client, your access tokens are valid for one hour.</p>
208 pub fn get_access_token_validity(&self) -> &::std::option::Option<i32> {
209 self.inner.get_access_token_validity()
210 }
211 /// <p>The ID token time limit. After this limit expires, your user can't use their ID token. To specify the time unit for <code>IdTokenValidity</code> as <code>seconds</code>, <code>minutes</code>, <code>hours</code>, or <code>days</code>, set a <code>TokenValidityUnits</code> value in your API request.</p>
212 /// <p>For example, when you set <code>IdTokenValidity</code> as <code>10</code> and <code>TokenValidityUnits</code> as <code>hours</code>, your user can authenticate their session with their ID token for 10 hours.</p>
213 /// <p>The default time unit for <code>IdTokenValidity</code> in an API request is hours. <i>Valid range</i> is displayed below in seconds.</p>
214 /// <p>If you don't specify otherwise in the configuration of your app client, your ID tokens are valid for one hour.</p>
215 pub fn id_token_validity(mut self, input: i32) -> Self {
216 self.inner = self.inner.id_token_validity(input);
217 self
218 }
219 /// <p>The ID token time limit. After this limit expires, your user can't use their ID token. To specify the time unit for <code>IdTokenValidity</code> as <code>seconds</code>, <code>minutes</code>, <code>hours</code>, or <code>days</code>, set a <code>TokenValidityUnits</code> value in your API request.</p>
220 /// <p>For example, when you set <code>IdTokenValidity</code> as <code>10</code> and <code>TokenValidityUnits</code> as <code>hours</code>, your user can authenticate their session with their ID token for 10 hours.</p>
221 /// <p>The default time unit for <code>IdTokenValidity</code> in an API request is hours. <i>Valid range</i> is displayed below in seconds.</p>
222 /// <p>If you don't specify otherwise in the configuration of your app client, your ID tokens are valid for one hour.</p>
223 pub fn set_id_token_validity(mut self, input: ::std::option::Option<i32>) -> Self {
224 self.inner = self.inner.set_id_token_validity(input);
225 self
226 }
227 /// <p>The ID token time limit. After this limit expires, your user can't use their ID token. To specify the time unit for <code>IdTokenValidity</code> as <code>seconds</code>, <code>minutes</code>, <code>hours</code>, or <code>days</code>, set a <code>TokenValidityUnits</code> value in your API request.</p>
228 /// <p>For example, when you set <code>IdTokenValidity</code> as <code>10</code> and <code>TokenValidityUnits</code> as <code>hours</code>, your user can authenticate their session with their ID token for 10 hours.</p>
229 /// <p>The default time unit for <code>IdTokenValidity</code> in an API request is hours. <i>Valid range</i> is displayed below in seconds.</p>
230 /// <p>If you don't specify otherwise in the configuration of your app client, your ID tokens are valid for one hour.</p>
231 pub fn get_id_token_validity(&self) -> &::std::option::Option<i32> {
232 self.inner.get_id_token_validity()
233 }
234 /// <p>The units that validity times are represented in. The default unit for refresh tokens is days, and the default for ID and access tokens are hours.</p>
235 pub fn token_validity_units(mut self, input: crate::types::TokenValidityUnitsType) -> Self {
236 self.inner = self.inner.token_validity_units(input);
237 self
238 }
239 /// <p>The units that validity times are represented in. The default unit for refresh tokens is days, and the default for ID and access tokens are hours.</p>
240 pub fn set_token_validity_units(mut self, input: ::std::option::Option<crate::types::TokenValidityUnitsType>) -> Self {
241 self.inner = self.inner.set_token_validity_units(input);
242 self
243 }
244 /// <p>The units that validity times are represented in. The default unit for refresh tokens is days, and the default for ID and access tokens are hours.</p>
245 pub fn get_token_validity_units(&self) -> &::std::option::Option<crate::types::TokenValidityUnitsType> {
246 self.inner.get_token_validity_units()
247 }
248 ///
249 /// Appends an item to `ReadAttributes`.
250 ///
251 /// To override the contents of this collection use [`set_read_attributes`](Self::set_read_attributes).
252 ///
253 /// <p>The list of user attributes that you want your app client to have read access to. After your user authenticates in your app, their access token authorizes them to read their own attribute value for any attribute in this list.</p>
254 /// <p>When you don't specify the <code>ReadAttributes</code> for your app client, your app can read the values of <code>email_verified</code>, <code>phone_number_verified</code>, and the standard attributes of your user pool. When your user pool app client has read access to these default attributes, <code>ReadAttributes</code> doesn't return any information. Amazon Cognito only populates <code>ReadAttributes</code> in the API response if you have specified your own custom set of read attributes.</p>
255 pub fn read_attributes(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
256 self.inner = self.inner.read_attributes(input.into());
257 self
258 }
259 /// <p>The list of user attributes that you want your app client to have read access to. After your user authenticates in your app, their access token authorizes them to read their own attribute value for any attribute in this list.</p>
260 /// <p>When you don't specify the <code>ReadAttributes</code> for your app client, your app can read the values of <code>email_verified</code>, <code>phone_number_verified</code>, and the standard attributes of your user pool. When your user pool app client has read access to these default attributes, <code>ReadAttributes</code> doesn't return any information. Amazon Cognito only populates <code>ReadAttributes</code> in the API response if you have specified your own custom set of read attributes.</p>
261 pub fn set_read_attributes(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
262 self.inner = self.inner.set_read_attributes(input);
263 self
264 }
265 /// <p>The list of user attributes that you want your app client to have read access to. After your user authenticates in your app, their access token authorizes them to read their own attribute value for any attribute in this list.</p>
266 /// <p>When you don't specify the <code>ReadAttributes</code> for your app client, your app can read the values of <code>email_verified</code>, <code>phone_number_verified</code>, and the standard attributes of your user pool. When your user pool app client has read access to these default attributes, <code>ReadAttributes</code> doesn't return any information. Amazon Cognito only populates <code>ReadAttributes</code> in the API response if you have specified your own custom set of read attributes.</p>
267 pub fn get_read_attributes(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
268 self.inner.get_read_attributes()
269 }
270 ///
271 /// Appends an item to `WriteAttributes`.
272 ///
273 /// To override the contents of this collection use [`set_write_attributes`](Self::set_write_attributes).
274 ///
275 /// <p>The list of user attributes that you want your app client to have write access to. After your user authenticates in your app, their access token authorizes them to set or modify their own attribute value for any attribute in this list.</p>
276 /// <p>When you don't specify the <code>WriteAttributes</code> for your app client, your app can write the values of the Standard attributes of your user pool. When your user pool has write access to these default attributes, <code>WriteAttributes</code> doesn't return any information. Amazon Cognito only populates <code>WriteAttributes</code> in the API response if you have specified your own custom set of write attributes.</p>
277 /// <p>If your app client allows users to sign in through an IdP, this array must include all attributes that you have mapped to IdP attributes. Amazon Cognito updates mapped attributes when users sign in to your application through an IdP. If your app client does not have write access to a mapped attribute, Amazon Cognito throws an error when it tries to update the attribute. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html">Specifying IdP Attribute Mappings for Your user pool</a>.</p>
278 pub fn write_attributes(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
279 self.inner = self.inner.write_attributes(input.into());
280 self
281 }
282 /// <p>The list of user attributes that you want your app client to have write access to. After your user authenticates in your app, their access token authorizes them to set or modify their own attribute value for any attribute in this list.</p>
283 /// <p>When you don't specify the <code>WriteAttributes</code> for your app client, your app can write the values of the Standard attributes of your user pool. When your user pool has write access to these default attributes, <code>WriteAttributes</code> doesn't return any information. Amazon Cognito only populates <code>WriteAttributes</code> in the API response if you have specified your own custom set of write attributes.</p>
284 /// <p>If your app client allows users to sign in through an IdP, this array must include all attributes that you have mapped to IdP attributes. Amazon Cognito updates mapped attributes when users sign in to your application through an IdP. If your app client does not have write access to a mapped attribute, Amazon Cognito throws an error when it tries to update the attribute. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html">Specifying IdP Attribute Mappings for Your user pool</a>.</p>
285 pub fn set_write_attributes(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
286 self.inner = self.inner.set_write_attributes(input);
287 self
288 }
289 /// <p>The list of user attributes that you want your app client to have write access to. After your user authenticates in your app, their access token authorizes them to set or modify their own attribute value for any attribute in this list.</p>
290 /// <p>When you don't specify the <code>WriteAttributes</code> for your app client, your app can write the values of the Standard attributes of your user pool. When your user pool has write access to these default attributes, <code>WriteAttributes</code> doesn't return any information. Amazon Cognito only populates <code>WriteAttributes</code> in the API response if you have specified your own custom set of write attributes.</p>
291 /// <p>If your app client allows users to sign in through an IdP, this array must include all attributes that you have mapped to IdP attributes. Amazon Cognito updates mapped attributes when users sign in to your application through an IdP. If your app client does not have write access to a mapped attribute, Amazon Cognito throws an error when it tries to update the attribute. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html">Specifying IdP Attribute Mappings for Your user pool</a>.</p>
292 pub fn get_write_attributes(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
293 self.inner.get_write_attributes()
294 }
295 ///
296 /// Appends an item to `ExplicitAuthFlows`.
297 ///
298 /// To override the contents of this collection use [`set_explicit_auth_flows`](Self::set_explicit_auth_flows).
299 ///
300 /// <p>The <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow-methods.html">authentication flows</a> that you want your user pool client to support. For each app client in your user pool, you can sign in your users with any combination of one or more flows, including with a user name and Secure Remote Password (SRP), a user name and password, or a custom authentication process that you define with Lambda functions.</p><note>
301 /// <p>If you don't specify a value for <code>ExplicitAuthFlows</code>, your app client supports <code>ALLOW_REFRESH_TOKEN_AUTH</code>, <code>ALLOW_USER_SRP_AUTH</code>, and <code>ALLOW_CUSTOM_AUTH</code>.</p>
302 /// </note>
303 /// <p>The values for authentication flow options include the following.</p>
304 /// <ul>
305 /// <li>
306 /// <p><code>ALLOW_USER_AUTH</code>: Enable selection-based sign-in with <code>USER_AUTH</code>. This setting covers username-password, secure remote password (SRP), passwordless, and passkey authentication. This authentiation flow can do username-password and SRP authentication without other <code>ExplicitAuthFlows</code> permitting them. For example users can complete an SRP challenge through <code>USER_AUTH</code> without the flow <code>USER_SRP_AUTH</code> being active for the app client. This flow doesn't include <code>CUSTOM_AUTH</code>.</p>
307 /// <p>To activate this setting, your user pool must be in the <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/feature-plans-features-essentials.html"> Essentials tier</a> or higher.</p></li>
308 /// <li>
309 /// <p><code>ALLOW_ADMIN_USER_PASSWORD_AUTH</code>: Enable admin based user password authentication flow <code>ADMIN_USER_PASSWORD_AUTH</code>. This setting replaces the <code>ADMIN_NO_SRP_AUTH</code> setting. With this authentication flow, your app passes a user name and password to Amazon Cognito in the request, instead of using the Secure Remote Password (SRP) protocol to securely transmit the password.</p></li>
310 /// <li>
311 /// <p><code>ALLOW_CUSTOM_AUTH</code>: Enable Lambda trigger based authentication.</p></li>
312 /// <li>
313 /// <p><code>ALLOW_USER_PASSWORD_AUTH</code>: Enable user password-based authentication. In this flow, Amazon Cognito receives the password in the request instead of using the SRP protocol to verify passwords.</p></li>
314 /// <li>
315 /// <p><code>ALLOW_USER_SRP_AUTH</code>: Enable SRP-based authentication.</p></li>
316 /// <li>
317 /// <p><code>ALLOW_REFRESH_TOKEN_AUTH</code>: Enable authflow to refresh tokens.</p></li>
318 /// </ul>
319 /// <p>In some environments, you will see the values <code>ADMIN_NO_SRP_AUTH</code>, <code>CUSTOM_AUTH_FLOW_ONLY</code>, or <code>USER_PASSWORD_AUTH</code>. You can't assign these legacy <code>ExplicitAuthFlows</code> values to user pool clients at the same time as values that begin with <code>ALLOW_</code>, like <code>ALLOW_USER_SRP_AUTH</code>.</p>
320 pub fn explicit_auth_flows(mut self, input: crate::types::ExplicitAuthFlowsType) -> Self {
321 self.inner = self.inner.explicit_auth_flows(input);
322 self
323 }
324 /// <p>The <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow-methods.html">authentication flows</a> that you want your user pool client to support. For each app client in your user pool, you can sign in your users with any combination of one or more flows, including with a user name and Secure Remote Password (SRP), a user name and password, or a custom authentication process that you define with Lambda functions.</p><note>
325 /// <p>If you don't specify a value for <code>ExplicitAuthFlows</code>, your app client supports <code>ALLOW_REFRESH_TOKEN_AUTH</code>, <code>ALLOW_USER_SRP_AUTH</code>, and <code>ALLOW_CUSTOM_AUTH</code>.</p>
326 /// </note>
327 /// <p>The values for authentication flow options include the following.</p>
328 /// <ul>
329 /// <li>
330 /// <p><code>ALLOW_USER_AUTH</code>: Enable selection-based sign-in with <code>USER_AUTH</code>. This setting covers username-password, secure remote password (SRP), passwordless, and passkey authentication. This authentiation flow can do username-password and SRP authentication without other <code>ExplicitAuthFlows</code> permitting them. For example users can complete an SRP challenge through <code>USER_AUTH</code> without the flow <code>USER_SRP_AUTH</code> being active for the app client. This flow doesn't include <code>CUSTOM_AUTH</code>.</p>
331 /// <p>To activate this setting, your user pool must be in the <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/feature-plans-features-essentials.html"> Essentials tier</a> or higher.</p></li>
332 /// <li>
333 /// <p><code>ALLOW_ADMIN_USER_PASSWORD_AUTH</code>: Enable admin based user password authentication flow <code>ADMIN_USER_PASSWORD_AUTH</code>. This setting replaces the <code>ADMIN_NO_SRP_AUTH</code> setting. With this authentication flow, your app passes a user name and password to Amazon Cognito in the request, instead of using the Secure Remote Password (SRP) protocol to securely transmit the password.</p></li>
334 /// <li>
335 /// <p><code>ALLOW_CUSTOM_AUTH</code>: Enable Lambda trigger based authentication.</p></li>
336 /// <li>
337 /// <p><code>ALLOW_USER_PASSWORD_AUTH</code>: Enable user password-based authentication. In this flow, Amazon Cognito receives the password in the request instead of using the SRP protocol to verify passwords.</p></li>
338 /// <li>
339 /// <p><code>ALLOW_USER_SRP_AUTH</code>: Enable SRP-based authentication.</p></li>
340 /// <li>
341 /// <p><code>ALLOW_REFRESH_TOKEN_AUTH</code>: Enable authflow to refresh tokens.</p></li>
342 /// </ul>
343 /// <p>In some environments, you will see the values <code>ADMIN_NO_SRP_AUTH</code>, <code>CUSTOM_AUTH_FLOW_ONLY</code>, or <code>USER_PASSWORD_AUTH</code>. You can't assign these legacy <code>ExplicitAuthFlows</code> values to user pool clients at the same time as values that begin with <code>ALLOW_</code>, like <code>ALLOW_USER_SRP_AUTH</code>.</p>
344 pub fn set_explicit_auth_flows(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ExplicitAuthFlowsType>>) -> Self {
345 self.inner = self.inner.set_explicit_auth_flows(input);
346 self
347 }
348 /// <p>The <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow-methods.html">authentication flows</a> that you want your user pool client to support. For each app client in your user pool, you can sign in your users with any combination of one or more flows, including with a user name and Secure Remote Password (SRP), a user name and password, or a custom authentication process that you define with Lambda functions.</p><note>
349 /// <p>If you don't specify a value for <code>ExplicitAuthFlows</code>, your app client supports <code>ALLOW_REFRESH_TOKEN_AUTH</code>, <code>ALLOW_USER_SRP_AUTH</code>, and <code>ALLOW_CUSTOM_AUTH</code>.</p>
350 /// </note>
351 /// <p>The values for authentication flow options include the following.</p>
352 /// <ul>
353 /// <li>
354 /// <p><code>ALLOW_USER_AUTH</code>: Enable selection-based sign-in with <code>USER_AUTH</code>. This setting covers username-password, secure remote password (SRP), passwordless, and passkey authentication. This authentiation flow can do username-password and SRP authentication without other <code>ExplicitAuthFlows</code> permitting them. For example users can complete an SRP challenge through <code>USER_AUTH</code> without the flow <code>USER_SRP_AUTH</code> being active for the app client. This flow doesn't include <code>CUSTOM_AUTH</code>.</p>
355 /// <p>To activate this setting, your user pool must be in the <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/feature-plans-features-essentials.html"> Essentials tier</a> or higher.</p></li>
356 /// <li>
357 /// <p><code>ALLOW_ADMIN_USER_PASSWORD_AUTH</code>: Enable admin based user password authentication flow <code>ADMIN_USER_PASSWORD_AUTH</code>. This setting replaces the <code>ADMIN_NO_SRP_AUTH</code> setting. With this authentication flow, your app passes a user name and password to Amazon Cognito in the request, instead of using the Secure Remote Password (SRP) protocol to securely transmit the password.</p></li>
358 /// <li>
359 /// <p><code>ALLOW_CUSTOM_AUTH</code>: Enable Lambda trigger based authentication.</p></li>
360 /// <li>
361 /// <p><code>ALLOW_USER_PASSWORD_AUTH</code>: Enable user password-based authentication. In this flow, Amazon Cognito receives the password in the request instead of using the SRP protocol to verify passwords.</p></li>
362 /// <li>
363 /// <p><code>ALLOW_USER_SRP_AUTH</code>: Enable SRP-based authentication.</p></li>
364 /// <li>
365 /// <p><code>ALLOW_REFRESH_TOKEN_AUTH</code>: Enable authflow to refresh tokens.</p></li>
366 /// </ul>
367 /// <p>In some environments, you will see the values <code>ADMIN_NO_SRP_AUTH</code>, <code>CUSTOM_AUTH_FLOW_ONLY</code>, or <code>USER_PASSWORD_AUTH</code>. You can't assign these legacy <code>ExplicitAuthFlows</code> values to user pool clients at the same time as values that begin with <code>ALLOW_</code>, like <code>ALLOW_USER_SRP_AUTH</code>.</p>
368 pub fn get_explicit_auth_flows(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ExplicitAuthFlowsType>> {
369 self.inner.get_explicit_auth_flows()
370 }
371 ///
372 /// Appends an item to `SupportedIdentityProviders`.
373 ///
374 /// To override the contents of this collection use [`set_supported_identity_providers`](Self::set_supported_identity_providers).
375 ///
376 /// <p>A list of provider names for the identity providers (IdPs) that are supported on this client. The following are supported: <code>COGNITO</code>, <code>Facebook</code>, <code>Google</code>, <code>SignInWithApple</code>, and <code>LoginWithAmazon</code>. You can also specify the names that you configured for the SAML and OIDC IdPs in your user pool, for example <code>MySAMLIdP</code> or <code>MyOIDCIdP</code>.</p>
377 /// <p>This parameter sets the IdPs that <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-managed-login.html">managed login</a> will display on the login page for your app client. The removal of <code>COGNITO</code> from this list doesn't prevent authentication operations for local users with the user pools API in an Amazon Web Services SDK. The only way to prevent SDK-based authentication is to block access with a <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-waf.html">WAF rule</a>.</p>
378 pub fn supported_identity_providers(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
379 self.inner = self.inner.supported_identity_providers(input.into());
380 self
381 }
382 /// <p>A list of provider names for the identity providers (IdPs) that are supported on this client. The following are supported: <code>COGNITO</code>, <code>Facebook</code>, <code>Google</code>, <code>SignInWithApple</code>, and <code>LoginWithAmazon</code>. You can also specify the names that you configured for the SAML and OIDC IdPs in your user pool, for example <code>MySAMLIdP</code> or <code>MyOIDCIdP</code>.</p>
383 /// <p>This parameter sets the IdPs that <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-managed-login.html">managed login</a> will display on the login page for your app client. The removal of <code>COGNITO</code> from this list doesn't prevent authentication operations for local users with the user pools API in an Amazon Web Services SDK. The only way to prevent SDK-based authentication is to block access with a <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-waf.html">WAF rule</a>.</p>
384 pub fn set_supported_identity_providers(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
385 self.inner = self.inner.set_supported_identity_providers(input);
386 self
387 }
388 /// <p>A list of provider names for the identity providers (IdPs) that are supported on this client. The following are supported: <code>COGNITO</code>, <code>Facebook</code>, <code>Google</code>, <code>SignInWithApple</code>, and <code>LoginWithAmazon</code>. You can also specify the names that you configured for the SAML and OIDC IdPs in your user pool, for example <code>MySAMLIdP</code> or <code>MyOIDCIdP</code>.</p>
389 /// <p>This parameter sets the IdPs that <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-managed-login.html">managed login</a> will display on the login page for your app client. The removal of <code>COGNITO</code> from this list doesn't prevent authentication operations for local users with the user pools API in an Amazon Web Services SDK. The only way to prevent SDK-based authentication is to block access with a <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-waf.html">WAF rule</a>.</p>
390 pub fn get_supported_identity_providers(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
391 self.inner.get_supported_identity_providers()
392 }
393 ///
394 /// Appends an item to `CallbackURLs`.
395 ///
396 /// To override the contents of this collection use [`set_callback_urls`](Self::set_callback_urls).
397 ///
398 /// <p>A list of allowed redirect, or callback, URLs for managed login authentication. These URLs are the paths where you want to send your users' browsers after they complete authentication with managed login or a third-party IdP. Typically, callback URLs are the home of an application that uses OAuth or OIDC libraries to process authentication outcomes.</p>
399 /// <p>A redirect URI must meet the following requirements:</p>
400 /// <ul>
401 /// <li>
402 /// <p>Be an absolute URI.</p></li>
403 /// <li>
404 /// <p>Be registered with the authorization server. Amazon Cognito doesn't accept authorization requests with <code>redirect_uri</code> values that aren't in the list of <code>CallbackURLs</code> that you provide in this parameter.</p></li>
405 /// <li>
406 /// <p>Not include a fragment component.</p></li>
407 /// </ul>
408 /// <p>See <a href="https://tools.ietf.org/html/rfc6749#section-3.1.2">OAuth 2.0 - Redirection Endpoint</a>.</p>
409 /// <p>Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only.</p>
410 /// <p>App callback URLs such as myapp://example are also supported.</p>
411 pub fn callback_urls(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
412 self.inner = self.inner.callback_urls(input.into());
413 self
414 }
415 /// <p>A list of allowed redirect, or callback, URLs for managed login authentication. These URLs are the paths where you want to send your users' browsers after they complete authentication with managed login or a third-party IdP. Typically, callback URLs are the home of an application that uses OAuth or OIDC libraries to process authentication outcomes.</p>
416 /// <p>A redirect URI must meet the following requirements:</p>
417 /// <ul>
418 /// <li>
419 /// <p>Be an absolute URI.</p></li>
420 /// <li>
421 /// <p>Be registered with the authorization server. Amazon Cognito doesn't accept authorization requests with <code>redirect_uri</code> values that aren't in the list of <code>CallbackURLs</code> that you provide in this parameter.</p></li>
422 /// <li>
423 /// <p>Not include a fragment component.</p></li>
424 /// </ul>
425 /// <p>See <a href="https://tools.ietf.org/html/rfc6749#section-3.1.2">OAuth 2.0 - Redirection Endpoint</a>.</p>
426 /// <p>Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only.</p>
427 /// <p>App callback URLs such as myapp://example are also supported.</p>
428 pub fn set_callback_urls(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
429 self.inner = self.inner.set_callback_urls(input);
430 self
431 }
432 /// <p>A list of allowed redirect, or callback, URLs for managed login authentication. These URLs are the paths where you want to send your users' browsers after they complete authentication with managed login or a third-party IdP. Typically, callback URLs are the home of an application that uses OAuth or OIDC libraries to process authentication outcomes.</p>
433 /// <p>A redirect URI must meet the following requirements:</p>
434 /// <ul>
435 /// <li>
436 /// <p>Be an absolute URI.</p></li>
437 /// <li>
438 /// <p>Be registered with the authorization server. Amazon Cognito doesn't accept authorization requests with <code>redirect_uri</code> values that aren't in the list of <code>CallbackURLs</code> that you provide in this parameter.</p></li>
439 /// <li>
440 /// <p>Not include a fragment component.</p></li>
441 /// </ul>
442 /// <p>See <a href="https://tools.ietf.org/html/rfc6749#section-3.1.2">OAuth 2.0 - Redirection Endpoint</a>.</p>
443 /// <p>Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only.</p>
444 /// <p>App callback URLs such as myapp://example are also supported.</p>
445 pub fn get_callback_urls(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
446 self.inner.get_callback_urls()
447 }
448 ///
449 /// Appends an item to `LogoutURLs`.
450 ///
451 /// To override the contents of this collection use [`set_logout_urls`](Self::set_logout_urls).
452 ///
453 /// <p>A list of allowed logout URLs for managed login authentication. When you pass <code>logout_uri</code> and <code>client_id</code> parameters to <code>/logout</code>, Amazon Cognito signs out your user and redirects them to the logout URL. This parameter describes the URLs that you want to be the permitted targets of <code>logout_uri</code>. A typical use of these URLs is when a user selects "Sign out" and you redirect them to your public homepage. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/logout-endpoint.html">Logout endpoint</a>.</p>
454 pub fn logout_urls(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
455 self.inner = self.inner.logout_urls(input.into());
456 self
457 }
458 /// <p>A list of allowed logout URLs for managed login authentication. When you pass <code>logout_uri</code> and <code>client_id</code> parameters to <code>/logout</code>, Amazon Cognito signs out your user and redirects them to the logout URL. This parameter describes the URLs that you want to be the permitted targets of <code>logout_uri</code>. A typical use of these URLs is when a user selects "Sign out" and you redirect them to your public homepage. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/logout-endpoint.html">Logout endpoint</a>.</p>
459 pub fn set_logout_urls(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
460 self.inner = self.inner.set_logout_urls(input);
461 self
462 }
463 /// <p>A list of allowed logout URLs for managed login authentication. When you pass <code>logout_uri</code> and <code>client_id</code> parameters to <code>/logout</code>, Amazon Cognito signs out your user and redirects them to the logout URL. This parameter describes the URLs that you want to be the permitted targets of <code>logout_uri</code>. A typical use of these URLs is when a user selects "Sign out" and you redirect them to your public homepage. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/logout-endpoint.html">Logout endpoint</a>.</p>
464 pub fn get_logout_urls(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
465 self.inner.get_logout_urls()
466 }
467 /// <p>The default redirect URI. In app clients with one assigned IdP, replaces <code>redirect_uri</code> in authentication requests. Must be in the <code>CallbackURLs</code> list.</p>
468 pub fn default_redirect_uri(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
469 self.inner = self.inner.default_redirect_uri(input.into());
470 self
471 }
472 /// <p>The default redirect URI. In app clients with one assigned IdP, replaces <code>redirect_uri</code> in authentication requests. Must be in the <code>CallbackURLs</code> list.</p>
473 pub fn set_default_redirect_uri(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
474 self.inner = self.inner.set_default_redirect_uri(input);
475 self
476 }
477 /// <p>The default redirect URI. In app clients with one assigned IdP, replaces <code>redirect_uri</code> in authentication requests. Must be in the <code>CallbackURLs</code> list.</p>
478 pub fn get_default_redirect_uri(&self) -> &::std::option::Option<::std::string::String> {
479 self.inner.get_default_redirect_uri()
480 }
481 ///
482 /// Appends an item to `AllowedOAuthFlows`.
483 ///
484 /// To override the contents of this collection use [`set_allowed_o_auth_flows`](Self::set_allowed_o_auth_flows).
485 ///
486 /// <p>The OAuth grant types that you want your app client to generate for clients in managed login authentication. To create an app client that generates client credentials grants, you must add <code>client_credentials</code> as the only allowed OAuth flow.</p>
487 /// <dl>
488 /// <dt>
489 /// code
490 /// </dt>
491 /// <dd>
492 /// <p>Use a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the <code>/oauth2/token</code> endpoint.</p>
493 /// </dd>
494 /// <dt>
495 /// implicit
496 /// </dt>
497 /// <dd>
498 /// <p>Issue the access token, and the ID token when scopes like <code>openid</code> and <code>profile</code> are requested, directly to your user.</p>
499 /// </dd>
500 /// <dt>
501 /// client_credentials
502 /// </dt>
503 /// <dd>
504 /// <p>Issue the access token from the <code>/oauth2/token</code> endpoint directly to a non-person user, authorized by a combination of the client ID and client secret.</p>
505 /// </dd>
506 /// </dl>
507 pub fn allowed_o_auth_flows(mut self, input: crate::types::OAuthFlowType) -> Self {
508 self.inner = self.inner.allowed_o_auth_flows(input);
509 self
510 }
511 /// <p>The OAuth grant types that you want your app client to generate for clients in managed login authentication. To create an app client that generates client credentials grants, you must add <code>client_credentials</code> as the only allowed OAuth flow.</p>
512 /// <dl>
513 /// <dt>
514 /// code
515 /// </dt>
516 /// <dd>
517 /// <p>Use a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the <code>/oauth2/token</code> endpoint.</p>
518 /// </dd>
519 /// <dt>
520 /// implicit
521 /// </dt>
522 /// <dd>
523 /// <p>Issue the access token, and the ID token when scopes like <code>openid</code> and <code>profile</code> are requested, directly to your user.</p>
524 /// </dd>
525 /// <dt>
526 /// client_credentials
527 /// </dt>
528 /// <dd>
529 /// <p>Issue the access token from the <code>/oauth2/token</code> endpoint directly to a non-person user, authorized by a combination of the client ID and client secret.</p>
530 /// </dd>
531 /// </dl>
532 pub fn set_allowed_o_auth_flows(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::OAuthFlowType>>) -> Self {
533 self.inner = self.inner.set_allowed_o_auth_flows(input);
534 self
535 }
536 /// <p>The OAuth grant types that you want your app client to generate for clients in managed login authentication. To create an app client that generates client credentials grants, you must add <code>client_credentials</code> as the only allowed OAuth flow.</p>
537 /// <dl>
538 /// <dt>
539 /// code
540 /// </dt>
541 /// <dd>
542 /// <p>Use a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the <code>/oauth2/token</code> endpoint.</p>
543 /// </dd>
544 /// <dt>
545 /// implicit
546 /// </dt>
547 /// <dd>
548 /// <p>Issue the access token, and the ID token when scopes like <code>openid</code> and <code>profile</code> are requested, directly to your user.</p>
549 /// </dd>
550 /// <dt>
551 /// client_credentials
552 /// </dt>
553 /// <dd>
554 /// <p>Issue the access token from the <code>/oauth2/token</code> endpoint directly to a non-person user, authorized by a combination of the client ID and client secret.</p>
555 /// </dd>
556 /// </dl>
557 pub fn get_allowed_o_auth_flows(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::OAuthFlowType>> {
558 self.inner.get_allowed_o_auth_flows()
559 }
560 ///
561 /// Appends an item to `AllowedOAuthScopes`.
562 ///
563 /// To override the contents of this collection use [`set_allowed_o_auth_scopes`](Self::set_allowed_o_auth_scopes).
564 ///
565 /// <p>The OAuth, OpenID Connect (OIDC), and custom scopes that you want to permit your app client to authorize access with. Scopes govern access control to user pool self-service API operations, user data from the <code>userInfo</code> endpoint, and third-party APIs. Scope values include <code>phone</code>, <code>email</code>, <code>openid</code>, and <code>profile</code>. The <code>aws.cognito.signin.user.admin</code> scope authorizes user self-service operations. Custom scopes with resource servers authorize access to external APIs.</p>
566 pub fn allowed_o_auth_scopes(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
567 self.inner = self.inner.allowed_o_auth_scopes(input.into());
568 self
569 }
570 /// <p>The OAuth, OpenID Connect (OIDC), and custom scopes that you want to permit your app client to authorize access with. Scopes govern access control to user pool self-service API operations, user data from the <code>userInfo</code> endpoint, and third-party APIs. Scope values include <code>phone</code>, <code>email</code>, <code>openid</code>, and <code>profile</code>. The <code>aws.cognito.signin.user.admin</code> scope authorizes user self-service operations. Custom scopes with resource servers authorize access to external APIs.</p>
571 pub fn set_allowed_o_auth_scopes(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
572 self.inner = self.inner.set_allowed_o_auth_scopes(input);
573 self
574 }
575 /// <p>The OAuth, OpenID Connect (OIDC), and custom scopes that you want to permit your app client to authorize access with. Scopes govern access control to user pool self-service API operations, user data from the <code>userInfo</code> endpoint, and third-party APIs. Scope values include <code>phone</code>, <code>email</code>, <code>openid</code>, and <code>profile</code>. The <code>aws.cognito.signin.user.admin</code> scope authorizes user self-service operations. Custom scopes with resource servers authorize access to external APIs.</p>
576 pub fn get_allowed_o_auth_scopes(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
577 self.inner.get_allowed_o_auth_scopes()
578 }
579 /// <p>Set to <code>true</code> to use OAuth 2.0 authorization server features in your app client.</p>
580 /// <p>This parameter must have a value of <code>true</code> before you can configure the following features in your app client.</p>
581 /// <ul>
582 /// <li>
583 /// <p><code>CallBackURLs</code>: Callback URLs.</p></li>
584 /// <li>
585 /// <p><code>LogoutURLs</code>: Sign-out redirect URLs.</p></li>
586 /// <li>
587 /// <p><code>AllowedOAuthScopes</code>: OAuth 2.0 scopes.</p></li>
588 /// <li>
589 /// <p><code>AllowedOAuthFlows</code>: Support for authorization code, implicit, and client credentials OAuth 2.0 grants.</p></li>
590 /// </ul>
591 /// <p>To use authorization server features, configure one of these features in the Amazon Cognito console or set <code>AllowedOAuthFlowsUserPoolClient</code> to <code>true</code> in a <code>CreateUserPoolClient</code> or <code>UpdateUserPoolClient</code> API request. If you don't set a value for <code>AllowedOAuthFlowsUserPoolClient</code> in a request with the CLI or SDKs, it defaults to <code>false</code>. When <code>false</code>, only SDK-based API sign-in is permitted.</p>
592 pub fn allowed_o_auth_flows_user_pool_client(mut self, input: bool) -> Self {
593 self.inner = self.inner.allowed_o_auth_flows_user_pool_client(input);
594 self
595 }
596 /// <p>Set to <code>true</code> to use OAuth 2.0 authorization server features in your app client.</p>
597 /// <p>This parameter must have a value of <code>true</code> before you can configure the following features in your app client.</p>
598 /// <ul>
599 /// <li>
600 /// <p><code>CallBackURLs</code>: Callback URLs.</p></li>
601 /// <li>
602 /// <p><code>LogoutURLs</code>: Sign-out redirect URLs.</p></li>
603 /// <li>
604 /// <p><code>AllowedOAuthScopes</code>: OAuth 2.0 scopes.</p></li>
605 /// <li>
606 /// <p><code>AllowedOAuthFlows</code>: Support for authorization code, implicit, and client credentials OAuth 2.0 grants.</p></li>
607 /// </ul>
608 /// <p>To use authorization server features, configure one of these features in the Amazon Cognito console or set <code>AllowedOAuthFlowsUserPoolClient</code> to <code>true</code> in a <code>CreateUserPoolClient</code> or <code>UpdateUserPoolClient</code> API request. If you don't set a value for <code>AllowedOAuthFlowsUserPoolClient</code> in a request with the CLI or SDKs, it defaults to <code>false</code>. When <code>false</code>, only SDK-based API sign-in is permitted.</p>
609 pub fn set_allowed_o_auth_flows_user_pool_client(mut self, input: ::std::option::Option<bool>) -> Self {
610 self.inner = self.inner.set_allowed_o_auth_flows_user_pool_client(input);
611 self
612 }
613 /// <p>Set to <code>true</code> to use OAuth 2.0 authorization server features in your app client.</p>
614 /// <p>This parameter must have a value of <code>true</code> before you can configure the following features in your app client.</p>
615 /// <ul>
616 /// <li>
617 /// <p><code>CallBackURLs</code>: Callback URLs.</p></li>
618 /// <li>
619 /// <p><code>LogoutURLs</code>: Sign-out redirect URLs.</p></li>
620 /// <li>
621 /// <p><code>AllowedOAuthScopes</code>: OAuth 2.0 scopes.</p></li>
622 /// <li>
623 /// <p><code>AllowedOAuthFlows</code>: Support for authorization code, implicit, and client credentials OAuth 2.0 grants.</p></li>
624 /// </ul>
625 /// <p>To use authorization server features, configure one of these features in the Amazon Cognito console or set <code>AllowedOAuthFlowsUserPoolClient</code> to <code>true</code> in a <code>CreateUserPoolClient</code> or <code>UpdateUserPoolClient</code> API request. If you don't set a value for <code>AllowedOAuthFlowsUserPoolClient</code> in a request with the CLI or SDKs, it defaults to <code>false</code>. When <code>false</code>, only SDK-based API sign-in is permitted.</p>
626 pub fn get_allowed_o_auth_flows_user_pool_client(&self) -> &::std::option::Option<bool> {
627 self.inner.get_allowed_o_auth_flows_user_pool_client()
628 }
629 /// <p>The user pool analytics configuration for collecting metrics and sending them to your Amazon Pinpoint campaign.</p>
630 /// <p>In Amazon Web Services Regions where Amazon Pinpoint isn't available, user pools might not have access to analytics or might be configurable with campaigns in the US East (N. Virginia) Region. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-pinpoint-integration.html">Using Amazon Pinpoint analytics</a>.</p>
631 pub fn analytics_configuration(mut self, input: crate::types::AnalyticsConfigurationType) -> Self {
632 self.inner = self.inner.analytics_configuration(input);
633 self
634 }
635 /// <p>The user pool analytics configuration for collecting metrics and sending them to your Amazon Pinpoint campaign.</p>
636 /// <p>In Amazon Web Services Regions where Amazon Pinpoint isn't available, user pools might not have access to analytics or might be configurable with campaigns in the US East (N. Virginia) Region. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-pinpoint-integration.html">Using Amazon Pinpoint analytics</a>.</p>
637 pub fn set_analytics_configuration(mut self, input: ::std::option::Option<crate::types::AnalyticsConfigurationType>) -> Self {
638 self.inner = self.inner.set_analytics_configuration(input);
639 self
640 }
641 /// <p>The user pool analytics configuration for collecting metrics and sending them to your Amazon Pinpoint campaign.</p>
642 /// <p>In Amazon Web Services Regions where Amazon Pinpoint isn't available, user pools might not have access to analytics or might be configurable with campaigns in the US East (N. Virginia) Region. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-pinpoint-integration.html">Using Amazon Pinpoint analytics</a>.</p>
643 pub fn get_analytics_configuration(&self) -> &::std::option::Option<crate::types::AnalyticsConfigurationType> {
644 self.inner.get_analytics_configuration()
645 }
646 /// <p>When <code>ENABLED</code>, suppresses messages that might indicate a valid user exists when someone attempts sign-in. This parameters sets your preference for the errors and responses that you want Amazon Cognito APIs to return during authentication, account confirmation, and password recovery when the user doesn't exist in the user pool. When set to <code>ENABLED</code> and the user doesn't exist, authentication returns an error indicating either the username or password was incorrect. Account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to <code>LEGACY</code>, those APIs return a <code>UserNotFoundException</code> exception if the user doesn't exist in the user pool.</p>
647 /// <p>Defaults to <code>LEGACY</code>.</p>
648 pub fn prevent_user_existence_errors(mut self, input: crate::types::PreventUserExistenceErrorTypes) -> Self {
649 self.inner = self.inner.prevent_user_existence_errors(input);
650 self
651 }
652 /// <p>When <code>ENABLED</code>, suppresses messages that might indicate a valid user exists when someone attempts sign-in. This parameters sets your preference for the errors and responses that you want Amazon Cognito APIs to return during authentication, account confirmation, and password recovery when the user doesn't exist in the user pool. When set to <code>ENABLED</code> and the user doesn't exist, authentication returns an error indicating either the username or password was incorrect. Account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to <code>LEGACY</code>, those APIs return a <code>UserNotFoundException</code> exception if the user doesn't exist in the user pool.</p>
653 /// <p>Defaults to <code>LEGACY</code>.</p>
654 pub fn set_prevent_user_existence_errors(mut self, input: ::std::option::Option<crate::types::PreventUserExistenceErrorTypes>) -> Self {
655 self.inner = self.inner.set_prevent_user_existence_errors(input);
656 self
657 }
658 /// <p>When <code>ENABLED</code>, suppresses messages that might indicate a valid user exists when someone attempts sign-in. This parameters sets your preference for the errors and responses that you want Amazon Cognito APIs to return during authentication, account confirmation, and password recovery when the user doesn't exist in the user pool. When set to <code>ENABLED</code> and the user doesn't exist, authentication returns an error indicating either the username or password was incorrect. Account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to <code>LEGACY</code>, those APIs return a <code>UserNotFoundException</code> exception if the user doesn't exist in the user pool.</p>
659 /// <p>Defaults to <code>LEGACY</code>.</p>
660 pub fn get_prevent_user_existence_errors(&self) -> &::std::option::Option<crate::types::PreventUserExistenceErrorTypes> {
661 self.inner.get_prevent_user_existence_errors()
662 }
663 /// <p>Activates or deactivates <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/token-revocation.html">token revocation</a> in the target app client.</p>
664 /// <p>If you don't include this parameter, token revocation is automatically activated for the new user pool client.</p>
665 pub fn enable_token_revocation(mut self, input: bool) -> Self {
666 self.inner = self.inner.enable_token_revocation(input);
667 self
668 }
669 /// <p>Activates or deactivates <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/token-revocation.html">token revocation</a> in the target app client.</p>
670 /// <p>If you don't include this parameter, token revocation is automatically activated for the new user pool client.</p>
671 pub fn set_enable_token_revocation(mut self, input: ::std::option::Option<bool>) -> Self {
672 self.inner = self.inner.set_enable_token_revocation(input);
673 self
674 }
675 /// <p>Activates or deactivates <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/token-revocation.html">token revocation</a> in the target app client.</p>
676 /// <p>If you don't include this parameter, token revocation is automatically activated for the new user pool client.</p>
677 pub fn get_enable_token_revocation(&self) -> &::std::option::Option<bool> {
678 self.inner.get_enable_token_revocation()
679 }
680 /// <p>When <code>true</code>, your application can include additional <code>UserContextData</code> in authentication requests. This data includes the IP address, and contributes to analysis by threat protection features. For more information about propagation of user context data, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-adaptive-authentication.html#user-pool-settings-adaptive-authentication-device-fingerprint">Adding session data to API requests</a>. If you don’t include this parameter, you can't send the source IP address to Amazon Cognito threat protection features. You can only activate <code>EnablePropagateAdditionalUserContextData</code> in an app client that has a client secret.</p>
681 pub fn enable_propagate_additional_user_context_data(mut self, input: bool) -> Self {
682 self.inner = self.inner.enable_propagate_additional_user_context_data(input);
683 self
684 }
685 /// <p>When <code>true</code>, your application can include additional <code>UserContextData</code> in authentication requests. This data includes the IP address, and contributes to analysis by threat protection features. For more information about propagation of user context data, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-adaptive-authentication.html#user-pool-settings-adaptive-authentication-device-fingerprint">Adding session data to API requests</a>. If you don’t include this parameter, you can't send the source IP address to Amazon Cognito threat protection features. You can only activate <code>EnablePropagateAdditionalUserContextData</code> in an app client that has a client secret.</p>
686 pub fn set_enable_propagate_additional_user_context_data(mut self, input: ::std::option::Option<bool>) -> Self {
687 self.inner = self.inner.set_enable_propagate_additional_user_context_data(input);
688 self
689 }
690 /// <p>When <code>true</code>, your application can include additional <code>UserContextData</code> in authentication requests. This data includes the IP address, and contributes to analysis by threat protection features. For more information about propagation of user context data, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-adaptive-authentication.html#user-pool-settings-adaptive-authentication-device-fingerprint">Adding session data to API requests</a>. If you don’t include this parameter, you can't send the source IP address to Amazon Cognito threat protection features. You can only activate <code>EnablePropagateAdditionalUserContextData</code> in an app client that has a client secret.</p>
691 pub fn get_enable_propagate_additional_user_context_data(&self) -> &::std::option::Option<bool> {
692 self.inner.get_enable_propagate_additional_user_context_data()
693 }
694 /// <p>Amazon Cognito creates a session token for each API request in an authentication flow. <code>AuthSessionValidity</code> is the duration, in minutes, of that session token. Your user pool native user must respond to each authentication challenge before the session expires.</p>
695 pub fn auth_session_validity(mut self, input: i32) -> Self {
696 self.inner = self.inner.auth_session_validity(input);
697 self
698 }
699 /// <p>Amazon Cognito creates a session token for each API request in an authentication flow. <code>AuthSessionValidity</code> is the duration, in minutes, of that session token. Your user pool native user must respond to each authentication challenge before the session expires.</p>
700 pub fn set_auth_session_validity(mut self, input: ::std::option::Option<i32>) -> Self {
701 self.inner = self.inner.set_auth_session_validity(input);
702 self
703 }
704 /// <p>Amazon Cognito creates a session token for each API request in an authentication flow. <code>AuthSessionValidity</code> is the duration, in minutes, of that session token. Your user pool native user must respond to each authentication challenge before the session expires.</p>
705 pub fn get_auth_session_validity(&self) -> &::std::option::Option<i32> {
706 self.inner.get_auth_session_validity()
707 }
708 /// <p>The configuration of your app client for refresh token rotation. When enabled, your app client issues new ID, access, and refresh tokens when users renew their sessions with refresh tokens. When disabled, token refresh issues only ID and access tokens.</p>
709 pub fn refresh_token_rotation(mut self, input: crate::types::RefreshTokenRotationType) -> Self {
710 self.inner = self.inner.refresh_token_rotation(input);
711 self
712 }
713 /// <p>The configuration of your app client for refresh token rotation. When enabled, your app client issues new ID, access, and refresh tokens when users renew their sessions with refresh tokens. When disabled, token refresh issues only ID and access tokens.</p>
714 pub fn set_refresh_token_rotation(mut self, input: ::std::option::Option<crate::types::RefreshTokenRotationType>) -> Self {
715 self.inner = self.inner.set_refresh_token_rotation(input);
716 self
717 }
718 /// <p>The configuration of your app client for refresh token rotation. When enabled, your app client issues new ID, access, and refresh tokens when users renew their sessions with refresh tokens. When disabled, token refresh issues only ID and access tokens.</p>
719 pub fn get_refresh_token_rotation(&self) -> &::std::option::Option<crate::types::RefreshTokenRotationType> {
720 self.inner.get_refresh_token_rotation()
721 }
722}