/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the cognito-idp-2016-04-18.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.CognitoIdentityProvider.Model
{
///
/// Container for the parameters to the UpdateUserPoolClient operation.
/// Updates the specified user pool app client with the specified attributes. You can
/// get a list of the current user pool app client settings using DescribeUserPoolClient.
///
///
///
/// If you don't provide a value for an attribute, it will be set to the default value.
///
///
///
/// You can also use this operation to enable token revocation for user pool clients.
/// For more information about revoking tokens, see RevokeToken.
///
///
public partial class UpdateUserPoolClientRequest : AmazonCognitoIdentityProviderRequest
{
private int? _accessTokenValidity;
private List _allowedOAuthFlows = new List();
private bool? _allowedOAuthFlowsUserPoolClient;
private List _allowedOAuthScopes = new List();
private AnalyticsConfigurationType _analyticsConfiguration;
private int? _authSessionValidity;
private List _callbackURLs = new List();
private string _clientId;
private string _clientName;
private string _defaultRedirectURI;
private bool? _enablePropagateAdditionalUserContextData;
private bool? _enableTokenRevocation;
private List _explicitAuthFlows = new List();
private int? _idTokenValidity;
private List _logoutURLs = new List();
private PreventUserExistenceErrorTypes _preventUserExistenceErrors;
private List _readAttributes = new List();
private int? _refreshTokenValidity;
private List _supportedIdentityProviders = new List();
private TokenValidityUnitsType _tokenValidityUnits;
private string _userPoolId;
private List _writeAttributes = new List();
///
/// Gets and sets the property AccessTokenValidity.
///
/// The access token time limit. After this limit expires, your user can't use their access
/// token. To specify the time unit for AccessTokenValidity
as seconds
,
/// minutes
, hours
, or days
, set a TokenValidityUnits
/// value in your API request.
///
///
///
/// For example, when you set AccessTokenValidity
to 10
and
/// TokenValidityUnits
to hours
, your user can authorize access
/// with their access token for 10 hours.
///
///
///
/// The default time unit for AccessTokenValidity
in an API request is hours.
/// Valid range is displayed below in seconds.
///
///
///
/// If you don't specify otherwise in the configuration of your app client, your access
/// tokens are valid for one hour.
///
///
[AWSProperty(Min=1, Max=86400)]
public int AccessTokenValidity
{
get { return this._accessTokenValidity.GetValueOrDefault(); }
set { this._accessTokenValidity = value; }
}
// Check to see if AccessTokenValidity property is set
internal bool IsSetAccessTokenValidity()
{
return this._accessTokenValidity.HasValue;
}
///
/// Gets and sets the property AllowedOAuthFlows.
///
/// The allowed OAuth flows.
///
/// - code
-
///
/// Use a code grant flow, which provides an authorization code as the response. This
/// code can be exchanged for access tokens with the
/oauth2/token
endpoint.
///
/// - implicit
-
///
/// Issue the access token (and, optionally, ID token, based on scopes) directly to your
/// user.
///
///
- client_credentials
-
///
/// Issue the access token from the
/oauth2/token
endpoint directly to a
/// non-person user using a combination of the client ID and client secret.
///
///
///
[AWSProperty(Min=0, Max=3)]
public List AllowedOAuthFlows
{
get { return this._allowedOAuthFlows; }
set { this._allowedOAuthFlows = value; }
}
// Check to see if AllowedOAuthFlows property is set
internal bool IsSetAllowedOAuthFlows()
{
return this._allowedOAuthFlows != null && this._allowedOAuthFlows.Count > 0;
}
///
/// Gets and sets the property AllowedOAuthFlowsUserPoolClient.
///
/// Set to true if the client is allowed to follow the OAuth protocol when interacting
/// with Amazon Cognito user pools.
///
///
public bool AllowedOAuthFlowsUserPoolClient
{
get { return this._allowedOAuthFlowsUserPoolClient.GetValueOrDefault(); }
set { this._allowedOAuthFlowsUserPoolClient = value; }
}
// Check to see if AllowedOAuthFlowsUserPoolClient property is set
internal bool IsSetAllowedOAuthFlowsUserPoolClient()
{
return this._allowedOAuthFlowsUserPoolClient.HasValue;
}
///
/// Gets and sets the property AllowedOAuthScopes.
///
/// The allowed OAuth scopes. Possible values provided by OAuth are phone
,
/// email
, openid
, and profile
. Possible values
/// provided by Amazon Web Services are aws.cognito.signin.user.admin
. Custom
/// scopes created in Resource Servers are also supported.
///
///
[AWSProperty(Max=50)]
public List AllowedOAuthScopes
{
get { return this._allowedOAuthScopes; }
set { this._allowedOAuthScopes = value; }
}
// Check to see if AllowedOAuthScopes property is set
internal bool IsSetAllowedOAuthScopes()
{
return this._allowedOAuthScopes != null && this._allowedOAuthScopes.Count > 0;
}
///
/// Gets and sets the property AnalyticsConfiguration.
///
/// The Amazon Pinpoint analytics configuration necessary to collect metrics for this
/// user pool.
///
///
///
/// In Amazon Web Services Regions where Amazon Pinpoint isn't available, user pools only
/// support sending events to Amazon Pinpoint projects in us-east-1. In Regions where
/// Amazon Pinpoint is available, user pools support sending events to Amazon Pinpoint
/// projects within that same Region.
///
///
///
public AnalyticsConfigurationType AnalyticsConfiguration
{
get { return this._analyticsConfiguration; }
set { this._analyticsConfiguration = value; }
}
// Check to see if AnalyticsConfiguration property is set
internal bool IsSetAnalyticsConfiguration()
{
return this._analyticsConfiguration != null;
}
///
/// Gets and sets the property AuthSessionValidity.
///
/// Amazon Cognito creates a session token for each API request in an authentication flow.
/// AuthSessionValidity
is the duration, in minutes, of that session token.
/// Your user pool native user must respond to each authentication challenge before the
/// session expires.
///
///
[AWSProperty(Min=3, Max=15)]
public int AuthSessionValidity
{
get { return this._authSessionValidity.GetValueOrDefault(); }
set { this._authSessionValidity = value; }
}
// Check to see if AuthSessionValidity property is set
internal bool IsSetAuthSessionValidity()
{
return this._authSessionValidity.HasValue;
}
///
/// Gets and sets the property CallbackURLs.
///
/// A list of allowed redirect (callback) URLs for the IdPs.
///
///
///
/// A redirect URI must:
///
/// -
///
/// Be an absolute URI.
///
///
-
///
/// Be registered with the authorization server.
///
///
-
///
/// Not include a fragment component.
///
///
///
/// See OAuth 2.0 - Redirection
/// Endpoint.
///
///
///
/// Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes
/// only.
///
///
///
/// App callback URLs such as myapp://example
are also supported.
///
///
[AWSProperty(Min=0, Max=100)]
public List CallbackURLs
{
get { return this._callbackURLs; }
set { this._callbackURLs = value; }
}
// Check to see if CallbackURLs property is set
internal bool IsSetCallbackURLs()
{
return this._callbackURLs != null && this._callbackURLs.Count > 0;
}
///
/// Gets and sets the property ClientId.
///
/// The ID of the client associated with the user pool.
///
///
[AWSProperty(Required=true, Sensitive=true, Min=1, Max=128)]
public string ClientId
{
get { return this._clientId; }
set { this._clientId = value; }
}
// Check to see if ClientId property is set
internal bool IsSetClientId()
{
return this._clientId != null;
}
///
/// Gets and sets the property ClientName.
///
/// The client name from the update user pool client request.
///
///
[AWSProperty(Min=1, Max=128)]
public string ClientName
{
get { return this._clientName; }
set { this._clientName = value; }
}
// Check to see if ClientName property is set
internal bool IsSetClientName()
{
return this._clientName != null;
}
///
/// Gets and sets the property DefaultRedirectURI.
///
/// The default redirect URI. Must be in the CallbackURLs
list.
///
///
///
/// A redirect URI must:
///
/// -
///
/// Be an absolute URI.
///
///
-
///
/// Be registered with the authorization server.
///
///
-
///
/// Not include a fragment component.
///
///
///
/// See OAuth 2.0 - Redirection
/// Endpoint.
///
///
///
/// Amazon Cognito requires HTTPS over HTTP except for http://localhost
for
/// testing purposes only.
///
///
///
/// App callback URLs such as myapp://example
are also supported.
///
///
[AWSProperty(Min=1, Max=1024)]
public string DefaultRedirectURI
{
get { return this._defaultRedirectURI; }
set { this._defaultRedirectURI = value; }
}
// Check to see if DefaultRedirectURI property is set
internal bool IsSetDefaultRedirectURI()
{
return this._defaultRedirectURI != null;
}
///
/// Gets and sets the property EnablePropagateAdditionalUserContextData.
///
/// Activates the propagation of additional user context data. For more information about
/// propagation of user context data, see
/// Adding advanced security to a user pool. If you don’t include this parameter,
/// you can't send device fingerprint information, including source IP address, to Amazon
/// Cognito advanced security. You can only activate EnablePropagateAdditionalUserContextData
/// in an app client that has a client secret.
///
///
public bool EnablePropagateAdditionalUserContextData
{
get { return this._enablePropagateAdditionalUserContextData.GetValueOrDefault(); }
set { this._enablePropagateAdditionalUserContextData = value; }
}
// Check to see if EnablePropagateAdditionalUserContextData property is set
internal bool IsSetEnablePropagateAdditionalUserContextData()
{
return this._enablePropagateAdditionalUserContextData.HasValue;
}
///
/// Gets and sets the property EnableTokenRevocation.
///
/// Activates or deactivates token revocation. For more information about revoking tokens,
/// see RevokeToken.
///
///
public bool EnableTokenRevocation
{
get { return this._enableTokenRevocation.GetValueOrDefault(); }
set { this._enableTokenRevocation = value; }
}
// Check to see if EnableTokenRevocation property is set
internal bool IsSetEnableTokenRevocation()
{
return this._enableTokenRevocation.HasValue;
}
///
/// Gets and sets the property ExplicitAuthFlows.
///
/// The authentication flows 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.
///
///
///
/// If you don't specify a value for ExplicitAuthFlows
, your user client
/// supports ALLOW_REFRESH_TOKEN_AUTH
, ALLOW_USER_SRP_AUTH
,
/// and ALLOW_CUSTOM_AUTH
.
///
///
///
/// Valid values include:
///
/// -
///
///
ALLOW_ADMIN_USER_PASSWORD_AUTH
: Enable admin based user password authentication
/// flow ADMIN_USER_PASSWORD_AUTH
. This setting replaces the ADMIN_NO_SRP_AUTH
/// 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.
///
/// -
///
///
ALLOW_CUSTOM_AUTH
: Enable Lambda trigger based authentication.
///
/// -
///
///
ALLOW_USER_PASSWORD_AUTH
: 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.
///
/// -
///
///
ALLOW_USER_SRP_AUTH
: Enable SRP-based authentication.
///
/// -
///
///
ALLOW_REFRESH_TOKEN_AUTH
: Enable authflow to refresh tokens.
///
///
///
/// In some environments, you will see the values ADMIN_NO_SRP_AUTH
, CUSTOM_AUTH_FLOW_ONLY
,
/// or USER_PASSWORD_AUTH
. You can't assign these legacy ExplicitAuthFlows
/// values to user pool clients at the same time as values that begin with ALLOW_
,
/// like ALLOW_USER_SRP_AUTH
.
///
///
public List ExplicitAuthFlows
{
get { return this._explicitAuthFlows; }
set { this._explicitAuthFlows = value; }
}
// Check to see if ExplicitAuthFlows property is set
internal bool IsSetExplicitAuthFlows()
{
return this._explicitAuthFlows != null && this._explicitAuthFlows.Count > 0;
}
///
/// Gets and sets the property IdTokenValidity.
///
/// The ID token time limit. After this limit expires, your user can't use their ID token.
/// To specify the time unit for IdTokenValidity
as seconds
,
/// minutes
, hours
, or days
, set a TokenValidityUnits
/// value in your API request.
///
///
///
/// For example, when you set IdTokenValidity
as 10
and TokenValidityUnits
/// as hours
, your user can authenticate their session with their ID token
/// for 10 hours.
///
///
///
/// The default time unit for AccessTokenValidity
in an API request is hours.
/// Valid range is displayed below in seconds.
///
///
///
/// If you don't specify otherwise in the configuration of your app client, your ID tokens
/// are valid for one hour.
///
///
[AWSProperty(Min=1, Max=86400)]
public int IdTokenValidity
{
get { return this._idTokenValidity.GetValueOrDefault(); }
set { this._idTokenValidity = value; }
}
// Check to see if IdTokenValidity property is set
internal bool IsSetIdTokenValidity()
{
return this._idTokenValidity.HasValue;
}
///
/// Gets and sets the property LogoutURLs.
///
/// A list of allowed logout URLs for the IdPs.
///
///
[AWSProperty(Min=0, Max=100)]
public List LogoutURLs
{
get { return this._logoutURLs; }
set { this._logoutURLs = value; }
}
// Check to see if LogoutURLs property is set
internal bool IsSetLogoutURLs()
{
return this._logoutURLs != null && this._logoutURLs.Count > 0;
}
///
/// Gets and sets the property PreventUserExistenceErrors.
///
/// 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 ENABLED
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 LEGACY
, those APIs return a UserNotFoundException
/// exception if the user doesn't exist in the user pool.
///
///
///
/// Valid values include:
///
/// -
///
///
ENABLED
- This prevents user existence-related errors.
///
/// -
///
///
LEGACY
- This represents the early behavior of Amazon Cognito where
/// user existence related errors aren't prevented.
///
///
///
public PreventUserExistenceErrorTypes PreventUserExistenceErrors
{
get { return this._preventUserExistenceErrors; }
set { this._preventUserExistenceErrors = value; }
}
// Check to see if PreventUserExistenceErrors property is set
internal bool IsSetPreventUserExistenceErrors()
{
return this._preventUserExistenceErrors != null;
}
///
/// Gets and sets the property ReadAttributes.
///
/// The read-only attributes of the user pool.
///
///
public List ReadAttributes
{
get { return this._readAttributes; }
set { this._readAttributes = value; }
}
// Check to see if ReadAttributes property is set
internal bool IsSetReadAttributes()
{
return this._readAttributes != null && this._readAttributes.Count > 0;
}
///
/// Gets and sets the property RefreshTokenValidity.
///
/// The refresh token time limit. After this limit expires, your user can't use their
/// refresh token. To specify the time unit for RefreshTokenValidity
as seconds
,
/// minutes
, hours
, or days
, set a TokenValidityUnits
/// value in your API request.
///
///
///
/// For example, when you set RefreshTokenValidity
as 10
and
/// TokenValidityUnits
as days
, your user can refresh their
/// session and retrieve new access and ID tokens for 10 days.
///
///
///
/// The default time unit for RefreshTokenValidity
in an API request is days.
/// You can't set RefreshTokenValidity
to 0. If you do, Amazon Cognito overrides
/// the value with the default value of 30 days. Valid range is displayed below
/// in seconds.
///
///
///
/// If you don't specify otherwise in the configuration of your app client, your refresh
/// tokens are valid for 30 days.
///
///
[AWSProperty(Min=0, Max=315360000)]
public int RefreshTokenValidity
{
get { return this._refreshTokenValidity.GetValueOrDefault(); }
set { this._refreshTokenValidity = value; }
}
// Check to see if RefreshTokenValidity property is set
internal bool IsSetRefreshTokenValidity()
{
return this._refreshTokenValidity.HasValue;
}
///
/// Gets and sets the property SupportedIdentityProviders.
///
/// A list of provider names for the IdPs that this client supports. The following are
/// supported: COGNITO
, Facebook
, Google
, SignInWithApple
,
/// LoginWithAmazon
, and the names of your own SAML and OIDC providers.
///
///
public List SupportedIdentityProviders
{
get { return this._supportedIdentityProviders; }
set { this._supportedIdentityProviders = value; }
}
// Check to see if SupportedIdentityProviders property is set
internal bool IsSetSupportedIdentityProviders()
{
return this._supportedIdentityProviders != null && this._supportedIdentityProviders.Count > 0;
}
///
/// Gets and sets the property TokenValidityUnits.
///
/// The units in which the validity times are represented. The default unit for RefreshToken
/// is days, and the default for ID and access tokens is hours.
///
///
public TokenValidityUnitsType TokenValidityUnits
{
get { return this._tokenValidityUnits; }
set { this._tokenValidityUnits = value; }
}
// Check to see if TokenValidityUnits property is set
internal bool IsSetTokenValidityUnits()
{
return this._tokenValidityUnits != null;
}
///
/// Gets and sets the property UserPoolId.
///
/// The user pool ID for the user pool where you want to update the user pool client.
///
///
[AWSProperty(Required=true, Min=1, Max=55)]
public string UserPoolId
{
get { return this._userPoolId; }
set { this._userPoolId = value; }
}
// Check to see if UserPoolId property is set
internal bool IsSetUserPoolId()
{
return this._userPoolId != null;
}
///
/// Gets and sets the property WriteAttributes.
///
/// The writeable attributes of the user pool.
///
///
public List WriteAttributes
{
get { return this._writeAttributes; }
set { this._writeAttributes = value; }
}
// Check to see if WriteAttributes property is set
internal bool IsSetWriteAttributes()
{
return this._writeAttributes != null && this._writeAttributes.Count > 0;
}
}
}