@aws-sdk/client-cognito-identity-provider
Version:
AWS SDK for JavaScript Cognito Identity Provider Client for Node.js, Browser and React Native
366 lines (365 loc) • 14.6 kB
TypeScript
import { Command as $Command } from "@smithy/smithy-client";
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
import { CognitoIdentityProviderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CognitoIdentityProviderClient";
import { CreateUserPoolClientRequest, CreateUserPoolClientResponse } from "../models/models_0";
/**
* @public
*/
export type { __MetadataBearer };
export { $Command };
/**
* @public
*
* The input for {@link CreateUserPoolClientCommand}.
*/
export interface CreateUserPoolClientCommandInput extends CreateUserPoolClientRequest {
}
/**
* @public
*
* The output of {@link CreateUserPoolClientCommand}.
*/
export interface CreateUserPoolClientCommandOutput extends CreateUserPoolClientResponse, __MetadataBearer {
}
declare const CreateUserPoolClientCommand_base: {
new (input: CreateUserPoolClientCommandInput): import("@smithy/smithy-client").CommandImpl<CreateUserPoolClientCommandInput, CreateUserPoolClientCommandOutput, CognitoIdentityProviderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
new (input: CreateUserPoolClientCommandInput): import("@smithy/smithy-client").CommandImpl<CreateUserPoolClientCommandInput, CreateUserPoolClientCommandOutput, CognitoIdentityProviderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions;
};
/**
* <p>Creates an app client in a user pool. This operation sets basic and advanced
* configuration options.</p>
* <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>
* <p>If you don't provide a value for an attribute, Amazon Cognito sets it to its default value.</p>
* </important>
* <note>
* <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>
* <p class="title">
* <b>Learn more</b>
* </p>
* <ul>
* <li>
* <p>
* <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html">Signing Amazon Web Services API Requests</a>
* </p>
* </li>
* <li>
* <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>
* </ul>
* </note>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
* import { CognitoIdentityProviderClient, CreateUserPoolClientCommand } from "@aws-sdk/client-cognito-identity-provider"; // ES Modules import
* // const { CognitoIdentityProviderClient, CreateUserPoolClientCommand } = require("@aws-sdk/client-cognito-identity-provider"); // CommonJS import
* const client = new CognitoIdentityProviderClient(config);
* const input = { // CreateUserPoolClientRequest
* UserPoolId: "STRING_VALUE", // required
* ClientName: "STRING_VALUE", // required
* GenerateSecret: true || false,
* RefreshTokenValidity: Number("int"),
* AccessTokenValidity: Number("int"),
* IdTokenValidity: Number("int"),
* TokenValidityUnits: { // TokenValidityUnitsType
* AccessToken: "seconds" || "minutes" || "hours" || "days",
* IdToken: "seconds" || "minutes" || "hours" || "days",
* RefreshToken: "seconds" || "minutes" || "hours" || "days",
* },
* ReadAttributes: [ // ClientPermissionListType
* "STRING_VALUE",
* ],
* WriteAttributes: [
* "STRING_VALUE",
* ],
* ExplicitAuthFlows: [ // ExplicitAuthFlowsListType
* "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" || "ALLOW_USER_AUTH",
* ],
* SupportedIdentityProviders: [ // SupportedIdentityProvidersListType
* "STRING_VALUE",
* ],
* CallbackURLs: [ // CallbackURLsListType
* "STRING_VALUE",
* ],
* LogoutURLs: [ // LogoutURLsListType
* "STRING_VALUE",
* ],
* DefaultRedirectURI: "STRING_VALUE",
* AllowedOAuthFlows: [ // OAuthFlowsType
* "code" || "implicit" || "client_credentials",
* ],
* AllowedOAuthScopes: [ // ScopeListType
* "STRING_VALUE",
* ],
* AllowedOAuthFlowsUserPoolClient: true || false,
* AnalyticsConfiguration: { // AnalyticsConfigurationType
* ApplicationId: "STRING_VALUE",
* ApplicationArn: "STRING_VALUE",
* RoleArn: "STRING_VALUE",
* ExternalId: "STRING_VALUE",
* UserDataShared: true || false,
* },
* PreventUserExistenceErrors: "LEGACY" || "ENABLED",
* EnableTokenRevocation: true || false,
* EnablePropagateAdditionalUserContextData: true || false,
* AuthSessionValidity: Number("int"),
* RefreshTokenRotation: { // RefreshTokenRotationType
* Feature: "ENABLED" || "DISABLED", // required
* RetryGracePeriodSeconds: Number("int"),
* },
* };
* const command = new CreateUserPoolClientCommand(input);
* const response = await client.send(command);
* // { // CreateUserPoolClientResponse
* // UserPoolClient: { // UserPoolClientType
* // UserPoolId: "STRING_VALUE",
* // ClientName: "STRING_VALUE",
* // ClientId: "STRING_VALUE",
* // ClientSecret: "STRING_VALUE",
* // LastModifiedDate: new Date("TIMESTAMP"),
* // CreationDate: new Date("TIMESTAMP"),
* // RefreshTokenValidity: Number("int"),
* // AccessTokenValidity: Number("int"),
* // IdTokenValidity: Number("int"),
* // TokenValidityUnits: { // TokenValidityUnitsType
* // AccessToken: "seconds" || "minutes" || "hours" || "days",
* // IdToken: "seconds" || "minutes" || "hours" || "days",
* // RefreshToken: "seconds" || "minutes" || "hours" || "days",
* // },
* // ReadAttributes: [ // ClientPermissionListType
* // "STRING_VALUE",
* // ],
* // WriteAttributes: [
* // "STRING_VALUE",
* // ],
* // ExplicitAuthFlows: [ // ExplicitAuthFlowsListType
* // "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" || "ALLOW_USER_AUTH",
* // ],
* // SupportedIdentityProviders: [ // SupportedIdentityProvidersListType
* // "STRING_VALUE",
* // ],
* // CallbackURLs: [ // CallbackURLsListType
* // "STRING_VALUE",
* // ],
* // LogoutURLs: [ // LogoutURLsListType
* // "STRING_VALUE",
* // ],
* // DefaultRedirectURI: "STRING_VALUE",
* // AllowedOAuthFlows: [ // OAuthFlowsType
* // "code" || "implicit" || "client_credentials",
* // ],
* // AllowedOAuthScopes: [ // ScopeListType
* // "STRING_VALUE",
* // ],
* // AllowedOAuthFlowsUserPoolClient: true || false,
* // AnalyticsConfiguration: { // AnalyticsConfigurationType
* // ApplicationId: "STRING_VALUE",
* // ApplicationArn: "STRING_VALUE",
* // RoleArn: "STRING_VALUE",
* // ExternalId: "STRING_VALUE",
* // UserDataShared: true || false,
* // },
* // PreventUserExistenceErrors: "LEGACY" || "ENABLED",
* // EnableTokenRevocation: true || false,
* // EnablePropagateAdditionalUserContextData: true || false,
* // AuthSessionValidity: Number("int"),
* // RefreshTokenRotation: { // RefreshTokenRotationType
* // Feature: "ENABLED" || "DISABLED", // required
* // RetryGracePeriodSeconds: Number("int"),
* // },
* // },
* // };
*
* ```
*
* @param CreateUserPoolClientCommandInput - {@link CreateUserPoolClientCommandInput}
* @returns {@link CreateUserPoolClientCommandOutput}
* @see {@link CreateUserPoolClientCommandInput} for command's `input` shape.
* @see {@link CreateUserPoolClientCommandOutput} for command's `response` shape.
* @see {@link CognitoIdentityProviderClientResolvedConfig | config} for CognitoIdentityProviderClient's `config` shape.
*
* @throws {@link FeatureUnavailableInTierException} (client fault)
* <p>This exception is thrown when a feature you attempted to configure isn't
* available in your current feature plan.</p>
*
* @throws {@link InternalErrorException} (server fault)
* <p>This exception is thrown when Amazon Cognito encounters an internal error.</p>
*
* @throws {@link InvalidOAuthFlowException} (client fault)
* <p>This exception is thrown when the specified OAuth flow is not valid.</p>
*
* @throws {@link InvalidParameterException} (client fault)
* <p>This exception is thrown when the Amazon Cognito service encounters an invalid
* parameter.</p>
*
* @throws {@link LimitExceededException} (client fault)
* <p>This exception is thrown when a user exceeds the limit for a requested Amazon Web Services
* resource.</p>
*
* @throws {@link NotAuthorizedException} (client fault)
* <p>This exception is thrown when a user isn't authorized.</p>
*
* @throws {@link ResourceNotFoundException} (client fault)
* <p>This exception is thrown when the Amazon Cognito service can't find the requested
* resource.</p>
*
* @throws {@link ScopeDoesNotExistException} (client fault)
* <p>This exception is thrown when the specified scope doesn't exist.</p>
*
* @throws {@link TooManyRequestsException} (client fault)
* <p>This exception is thrown when the user has made too many requests for a given
* operation.</p>
*
* @throws {@link CognitoIdentityProviderServiceException}
* <p>Base exception class for all service exceptions from CognitoIdentityProvider service.</p>
*
*
* @example Example user pool app client with email and username sign-in
* ```javascript
* // The following example creates an app client with all configurable properties set to an example value. The resulting user pool client connects to an analytics client, allows sign-in with username and password, and has two external identity providers associated with it.
* const input = {
* AccessTokenValidity: 6,
* AllowedOAuthFlows: [
* "code"
* ],
* AllowedOAuthFlowsUserPoolClient: true,
* AllowedOAuthScopes: [
* "aws.cognito.signin.user.admin",
* "openid"
* ],
* AnalyticsConfiguration: {
* ApplicationId: "d70b2ba36a8c4dc5a04a0451a31a1e12",
* ExternalId: "my-external-id",
* RoleArn: "arn:aws:iam::123456789012:role/test-cognitouserpool-role",
* UserDataShared: true
* },
* CallbackURLs: [
* "https://example.com",
* "http://localhost",
* "myapp://example"
* ],
* ClientName: "my-test-app-client",
* DefaultRedirectURI: "https://example.com",
* ExplicitAuthFlows: [
* "ALLOW_ADMIN_USER_PASSWORD_AUTH",
* "ALLOW_USER_PASSWORD_AUTH",
* "ALLOW_REFRESH_TOKEN_AUTH"
* ],
* GenerateSecret: true,
* IdTokenValidity: 6,
* LogoutURLs: [
* "https://example.com/logout"
* ],
* PreventUserExistenceErrors: "ENABLED",
* ReadAttributes: [
* "email",
* "address",
* "preferred_username"
* ],
* RefreshTokenValidity: 6,
* SupportedIdentityProviders: [
* "SignInWithApple",
* "MySSO"
* ],
* TokenValidityUnits: {
* AccessToken: "hours",
* IdToken: "minutes",
* RefreshToken: "days"
* },
* UserPoolId: "us-east-1_EXAMPLE",
* WriteAttributes: [
* "family_name",
* "email"
* ]
* };
* const command = new CreateUserPoolClientCommand(input);
* const response = await client.send(command);
* /* response is
* {
* UserPoolClient: {
* AccessTokenValidity: 6,
* AllowedOAuthFlows: [
* "code"
* ],
* AllowedOAuthFlowsUserPoolClient: true,
* AllowedOAuthScopes: [
* "aws.cognito.signin.user.admin",
* "openid"
* ],
* AnalyticsConfiguration: {
* ApplicationId: "d70b2ba36a8c4dc5a04a0451a31a1e12",
* ExternalId: "my-external-id",
* RoleArn: "arn:aws:iam::123456789012:role/test-cognitouserpool-role",
* UserDataShared: true
* },
* AuthSessionValidity: 3,
* CallbackURLs: [
* "https://example.com",
* "http://localhost",
* "myapp://example"
* ],
* ClientId: "26cb2c60kq7nbmas7rbme9b6pp",
* ClientName: "my-test-app-client",
* ClientSecret: "13ka4h7u28d9oo44tqpq9djqsfvhvu8rk4d2ighvpu0k8fj1c2r9",
* CreationDate: 1.689885426107E9,
* DefaultRedirectURI: "https://example.com",
* EnablePropagateAdditionalUserContextData: false,
* EnableTokenRevocation: true,
* ExplicitAuthFlows: [
* "ALLOW_USER_PASSWORD_AUTH",
* "ALLOW_ADMIN_USER_PASSWORD_AUTH",
* "ALLOW_REFRESH_TOKEN_AUTH"
* ],
* IdTokenValidity: 6,
* LastModifiedDate: 1.689885426107E9,
* LogoutURLs: [
* "https://example.com/logout"
* ],
* PreventUserExistenceErrors: "ENABLED",
* ReadAttributes: [
* "address",
* "preferred_username",
* "email"
* ],
* RefreshTokenValidity: 6,
* SupportedIdentityProviders: [
* "SignInWithApple",
* "MySSO"
* ],
* TokenValidityUnits: {
* AccessToken: "hours",
* IdToken: "minutes",
* RefreshToken: "days"
* },
* UserPoolId: "us-east-1_EXAMPLE",
* WriteAttributes: [
* "family_name",
* "email"
* ]
* }
* }
* *\/
* ```
*
* @public
*/
export declare class CreateUserPoolClientCommand extends CreateUserPoolClientCommand_base {
/** @internal type navigation helper, not in runtime. */
protected static __types: {
api: {
input: CreateUserPoolClientRequest;
output: CreateUserPoolClientResponse;
};
sdk: {
input: CreateUserPoolClientCommandInput;
output: CreateUserPoolClientCommandOutput;
};
};
}