class Aws::CognitoIdentityProvider::Types::CreateUserPoolClientRequest

Represents the request to create a user pool client.

@note When making an API call, you may pass CreateUserPoolClientRequest

data as a hash:

    {
      user_pool_id: "UserPoolIdType", # required
      client_name: "ClientNameType", # required
      generate_secret: false,
      refresh_token_validity: 1,
      access_token_validity: 1,
      id_token_validity: 1,
      token_validity_units: {
        access_token: "seconds", # accepts seconds, minutes, hours, days
        id_token: "seconds", # accepts seconds, minutes, hours, days
        refresh_token: "seconds", # accepts seconds, minutes, hours, days
      },
      read_attributes: ["ClientPermissionType"],
      write_attributes: ["ClientPermissionType"],
      explicit_auth_flows: ["ADMIN_NO_SRP_AUTH"], # accepts ADMIN_NO_SRP_AUTH, CUSTOM_AUTH_FLOW_ONLY, USER_PASSWORD_AUTH, ALLOW_ADMIN_USER_PASSWORD_AUTH, ALLOW_CUSTOM_AUTH, ALLOW_USER_PASSWORD_AUTH, ALLOW_USER_SRP_AUTH, ALLOW_REFRESH_TOKEN_AUTH
      supported_identity_providers: ["ProviderNameType"],
      callback_urls: ["RedirectUrlType"],
      logout_urls: ["RedirectUrlType"],
      default_redirect_uri: "RedirectUrlType",
      allowed_o_auth_flows: ["code"], # accepts code, implicit, client_credentials
      allowed_o_auth_scopes: ["ScopeType"],
      allowed_o_auth_flows_user_pool_client: false,
      analytics_configuration: {
        application_id: "HexStringType",
        application_arn: "ArnType",
        role_arn: "ArnType",
        external_id: "StringType",
        user_data_shared: false,
      },
      prevent_user_existence_errors: "LEGACY", # accepts LEGACY, ENABLED
      enable_token_revocation: false,
    }

@!attribute [rw] user_pool_id

The user pool ID for the user pool where you want to create a user
pool client.
@return [String]

@!attribute [rw] client_name

The client name for the user pool client you would like to create.
@return [String]

@!attribute [rw] generate_secret

Boolean to specify whether you want to generate a secret for the
user pool client being created.
@return [Boolean]

@!attribute [rw] refresh_token_validity

The time limit, in days, after which the refresh token is no longer
valid and cannot be used.
@return [Integer]

@!attribute [rw] access_token_validity

The time limit, between 5 minutes and 1 day, after which the access
token is no longer valid and cannot be used. This value will be
overridden if you have entered a value in TokenValidityUnits.
@return [Integer]

@!attribute [rw] id_token_validity

The time limit, between 5 minutes and 1 day, after which the ID
token is no longer valid and cannot be used. This value will be
overridden if you have entered a value in TokenValidityUnits.
@return [Integer]

@!attribute [rw] token_validity_units

The units in which the validity times are represented in. Default
for RefreshToken is days, and default for ID and access tokens are
hours.
@return [Types::TokenValidityUnitsType]

@!attribute [rw] read_attributes

The read attributes.
@return [Array<String>]

@!attribute [rw] write_attributes

The user pool attributes that the app client can write to.

If your app client allows users to sign in through an identity
provider, this array must include all attributes that are mapped to
identity provider attributes. Amazon Cognito updates mapped
attributes when users sign in to your application through an
identity provider. If your app client lacks write access to a mapped
attribute, Amazon Cognito throws an error when it attempts to update
the attribute. For more information, see [Specifying Identity
Provider Attribute Mappings for Your User Pool][1].

[1]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html
@return [Array<String>]

@!attribute [rw] explicit_auth_flows

The authentication flows that are supported by the user pool
clients. Flow names without the `ALLOW_` prefix are deprecated in
favor of new names with the `ALLOW_` prefix. Note that values with
`ALLOW_` prefix cannot be used along with values without `ALLOW_`
prefix.

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, Cognito receives the password in the request
  instead of using the SRP (Secure Remote Password protocol)
  protocol to verify passwords.

* `ALLOW_CUSTOM_AUTH`\: Enable Lambda trigger based authentication.

* `ALLOW_USER_PASSWORD_AUTH`\: Enable user password-based
  authentication. In this flow, 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.
@return [Array<String>]

@!attribute [rw] supported_identity_providers

A list of provider names for the identity providers that are
supported on this client. The following are supported: `COGNITO`,
`Facebook`, `Google` and `LoginWithAmazon`.
@return [Array<String>]

@!attribute [rw] callback_urls

A list of allowed redirect (callback) URLs for the identity
providers.

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][1].

Amazon Cognito requires HTTPS over HTTP except for http://localhost
for testing purposes only.

App callback URLs such as myapp://example are also supported.

[1]: https://tools.ietf.org/html/rfc6749#section-3.1.2
@return [Array<String>]

@!attribute [rw] logout_urls

A list of allowed logout URLs for the identity providers.
@return [Array<String>]

@!attribute [rw] default_redirect_uri

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][1].

Amazon Cognito requires HTTPS over HTTP except for http://localhost
for testing purposes only.

App callback URLs such as myapp://example are also supported.

[1]: https://tools.ietf.org/html/rfc6749#section-3.1.2
@return [String]

@!attribute [rw] allowed_o_auth_flows

The allowed OAuth flows.

Set to `code` to initiate a code grant flow, which provides an
authorization code as the response. This code can be exchanged for
access tokens with the token endpoint.

Set to `implicit` to specify that the client should get the access
token (and, optionally, ID token, based on scopes) directly.

Set to `client_credentials` to specify that the client should get
the access token (and, optionally, ID token, based on scopes) from
the token endpoint using a combination of client and client\_secret.
@return [Array<String>]

@!attribute [rw] allowed_o_auth_scopes

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.
@return [Array<String>]

@!attribute [rw] allowed_o_auth_flows_user_pool_client

Set to true if the client is allowed to follow the OAuth protocol
when interacting with Cognito user pools.
@return [Boolean]

@!attribute [rw] analytics_configuration

The Amazon Pinpoint analytics configuration for collecting metrics
for this user pool.

<note markdown="1"> In regions where Pinpoint is not available, Cognito User Pools only
supports sending events to Amazon Pinpoint projects in us-east-1. In
regions where Pinpoint is available, Cognito User Pools will support
sending events to Amazon Pinpoint projects within that same region.

 </note>
@return [Types::AnalyticsConfigurationType]

@!attribute [rw] prevent_user_existence_errors

Use this setting to choose which errors and responses are returned
by Cognito APIs during authentication, account confirmation, and
password recovery when the user does not exist in the user pool.
When set to `ENABLED` and the user does not exist, authentication
returns an error indicating either the username or password was
incorrect, and account confirmation and password recovery return a
response indicating a code was sent to a simulated destination. When
set to `LEGACY`, those APIs will return a `UserNotFoundException`
exception if the user does not exist in the user pool.

Valid values include:

* `ENABLED` - This prevents user existence-related errors.

* `LEGACY` - This represents the old behavior of Cognito where user
  existence related errors are not prevented.

<note markdown="1"> After February 15th 2020, the value of `PreventUserExistenceErrors`
will default to `ENABLED` for newly created user pool clients if no
value is provided.

 </note>
@return [String]

@!attribute [rw] enable_token_revocation

Enables or disables token revocation. For more information about
revoking tokens, see [RevokeToken][1].

If you don't include this parameter, token revocation is
automatically enabled for the new user pool client.

[1]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html
@return [Boolean]

@see docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateUserPoolClientRequest AWS API Documentation

Constants

SENSITIVE