@cdktf/provider-aws
Version:
Prebuilt aws Provider for Terraform CDK (cdktf)
1,090 lines • 160 kB
JavaScript
"use strict";
var _a, _b, _c, _d, _e, _f, _g;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CognitoUserPoolClient = exports.CognitoUserPoolClientTokenValidityUnitsList = exports.CognitoUserPoolClientTokenValidityUnitsOutputReference = exports.CognitoUserPoolClientRefreshTokenRotationList = exports.CognitoUserPoolClientRefreshTokenRotationOutputReference = exports.CognitoUserPoolClientAnalyticsConfigurationList = exports.CognitoUserPoolClientAnalyticsConfigurationOutputReference = void 0;
exports.cognitoUserPoolClientAnalyticsConfigurationToTerraform = cognitoUserPoolClientAnalyticsConfigurationToTerraform;
exports.cognitoUserPoolClientAnalyticsConfigurationToHclTerraform = cognitoUserPoolClientAnalyticsConfigurationToHclTerraform;
exports.cognitoUserPoolClientRefreshTokenRotationToTerraform = cognitoUserPoolClientRefreshTokenRotationToTerraform;
exports.cognitoUserPoolClientRefreshTokenRotationToHclTerraform = cognitoUserPoolClientRefreshTokenRotationToHclTerraform;
exports.cognitoUserPoolClientTokenValidityUnitsToTerraform = cognitoUserPoolClientTokenValidityUnitsToTerraform;
exports.cognitoUserPoolClientTokenValidityUnitsToHclTerraform = cognitoUserPoolClientTokenValidityUnitsToHclTerraform;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const cdktf = require("cdktf");
function cognitoUserPoolClientAnalyticsConfigurationToTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
return {
application_arn: cdktf.stringToTerraform(struct.applicationArn),
application_id: cdktf.stringToTerraform(struct.applicationId),
external_id: cdktf.stringToTerraform(struct.externalId),
role_arn: cdktf.stringToTerraform(struct.roleArn),
user_data_shared: cdktf.booleanToTerraform(struct.userDataShared),
};
}
function cognitoUserPoolClientAnalyticsConfigurationToHclTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
const attrs = {
application_arn: {
value: cdktf.stringToHclTerraform(struct.applicationArn),
isBlock: false,
type: "simple",
storageClassType: "string",
},
application_id: {
value: cdktf.stringToHclTerraform(struct.applicationId),
isBlock: false,
type: "simple",
storageClassType: "string",
},
external_id: {
value: cdktf.stringToHclTerraform(struct.externalId),
isBlock: false,
type: "simple",
storageClassType: "string",
},
role_arn: {
value: cdktf.stringToHclTerraform(struct.roleArn),
isBlock: false,
type: "simple",
storageClassType: "string",
},
user_data_shared: {
value: cdktf.booleanToHclTerraform(struct.userDataShared),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
class CognitoUserPoolClientAnalyticsConfigurationOutputReference extends cdktf.ComplexObject {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) {
super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex);
this.isEmptyObject = false;
}
get internalValue() {
if (this.resolvableValue) {
return this.resolvableValue;
}
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._applicationArn !== undefined) {
hasAnyValues = true;
internalValueResult.applicationArn = this._applicationArn;
}
if (this._applicationId !== undefined) {
hasAnyValues = true;
internalValueResult.applicationId = this._applicationId;
}
if (this._externalId !== undefined) {
hasAnyValues = true;
internalValueResult.externalId = this._externalId;
}
if (this._roleArn !== undefined) {
hasAnyValues = true;
internalValueResult.roleArn = this._roleArn;
}
if (this._userDataShared !== undefined) {
hasAnyValues = true;
internalValueResult.userDataShared = this._userDataShared;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this.resolvableValue = undefined;
this._applicationArn = undefined;
this._applicationId = undefined;
this._externalId = undefined;
this._roleArn = undefined;
this._userDataShared = undefined;
}
else if (cdktf.Tokenization.isResolvable(value)) {
this.isEmptyObject = false;
this.resolvableValue = value;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this.resolvableValue = undefined;
this._applicationArn = value.applicationArn;
this._applicationId = value.applicationId;
this._externalId = value.externalId;
this._roleArn = value.roleArn;
this._userDataShared = value.userDataShared;
}
}
get applicationArn() {
return this.getStringAttribute('application_arn');
}
set applicationArn(value) {
this._applicationArn = value;
}
resetApplicationArn() {
this._applicationArn = undefined;
}
// Temporarily expose input value. Use with caution.
get applicationArnInput() {
return this._applicationArn;
}
get applicationId() {
return this.getStringAttribute('application_id');
}
set applicationId(value) {
this._applicationId = value;
}
resetApplicationId() {
this._applicationId = undefined;
}
// Temporarily expose input value. Use with caution.
get applicationIdInput() {
return this._applicationId;
}
get externalId() {
return this.getStringAttribute('external_id');
}
set externalId(value) {
this._externalId = value;
}
resetExternalId() {
this._externalId = undefined;
}
// Temporarily expose input value. Use with caution.
get externalIdInput() {
return this._externalId;
}
get roleArn() {
return this.getStringAttribute('role_arn');
}
set roleArn(value) {
this._roleArn = value;
}
resetRoleArn() {
this._roleArn = undefined;
}
// Temporarily expose input value. Use with caution.
get roleArnInput() {
return this._roleArn;
}
get userDataShared() {
return this.getBooleanAttribute('user_data_shared');
}
set userDataShared(value) {
this._userDataShared = value;
}
resetUserDataShared() {
this._userDataShared = undefined;
}
// Temporarily expose input value. Use with caution.
get userDataSharedInput() {
return this._userDataShared;
}
}
exports.CognitoUserPoolClientAnalyticsConfigurationOutputReference = CognitoUserPoolClientAnalyticsConfigurationOutputReference;
_a = JSII_RTTI_SYMBOL_1;
CognitoUserPoolClientAnalyticsConfigurationOutputReference[_a] = { fqn: "@cdktf/provider-aws.cognitoUserPoolClient.CognitoUserPoolClientAnalyticsConfigurationOutputReference", version: "21.22.1" };
class CognitoUserPoolClientAnalyticsConfigurationList extends cdktf.ComplexList {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource, terraformAttribute, wrapsSet) {
super(terraformResource, terraformAttribute, wrapsSet);
this.terraformResource = terraformResource;
this.terraformAttribute = terraformAttribute;
this.wrapsSet = wrapsSet;
}
/**
* @param index the index of the item to return
*/
get(index) {
return new CognitoUserPoolClientAnalyticsConfigurationOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.CognitoUserPoolClientAnalyticsConfigurationList = CognitoUserPoolClientAnalyticsConfigurationList;
_b = JSII_RTTI_SYMBOL_1;
CognitoUserPoolClientAnalyticsConfigurationList[_b] = { fqn: "@cdktf/provider-aws.cognitoUserPoolClient.CognitoUserPoolClientAnalyticsConfigurationList", version: "21.22.1" };
function cognitoUserPoolClientRefreshTokenRotationToTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
return {
feature: cdktf.stringToTerraform(struct.feature),
retry_grace_period_seconds: cdktf.numberToTerraform(struct.retryGracePeriodSeconds),
};
}
function cognitoUserPoolClientRefreshTokenRotationToHclTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
const attrs = {
feature: {
value: cdktf.stringToHclTerraform(struct.feature),
isBlock: false,
type: "simple",
storageClassType: "string",
},
retry_grace_period_seconds: {
value: cdktf.numberToHclTerraform(struct.retryGracePeriodSeconds),
isBlock: false,
type: "simple",
storageClassType: "number",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
class CognitoUserPoolClientRefreshTokenRotationOutputReference extends cdktf.ComplexObject {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) {
super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex);
this.isEmptyObject = false;
}
get internalValue() {
if (this.resolvableValue) {
return this.resolvableValue;
}
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._feature !== undefined) {
hasAnyValues = true;
internalValueResult.feature = this._feature;
}
if (this._retryGracePeriodSeconds !== undefined) {
hasAnyValues = true;
internalValueResult.retryGracePeriodSeconds = this._retryGracePeriodSeconds;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this.resolvableValue = undefined;
this._feature = undefined;
this._retryGracePeriodSeconds = undefined;
}
else if (cdktf.Tokenization.isResolvable(value)) {
this.isEmptyObject = false;
this.resolvableValue = value;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this.resolvableValue = undefined;
this._feature = value.feature;
this._retryGracePeriodSeconds = value.retryGracePeriodSeconds;
}
}
get feature() {
return this.getStringAttribute('feature');
}
set feature(value) {
this._feature = value;
}
// Temporarily expose input value. Use with caution.
get featureInput() {
return this._feature;
}
get retryGracePeriodSeconds() {
return this.getNumberAttribute('retry_grace_period_seconds');
}
set retryGracePeriodSeconds(value) {
this._retryGracePeriodSeconds = value;
}
resetRetryGracePeriodSeconds() {
this._retryGracePeriodSeconds = undefined;
}
// Temporarily expose input value. Use with caution.
get retryGracePeriodSecondsInput() {
return this._retryGracePeriodSeconds;
}
}
exports.CognitoUserPoolClientRefreshTokenRotationOutputReference = CognitoUserPoolClientRefreshTokenRotationOutputReference;
_c = JSII_RTTI_SYMBOL_1;
CognitoUserPoolClientRefreshTokenRotationOutputReference[_c] = { fqn: "@cdktf/provider-aws.cognitoUserPoolClient.CognitoUserPoolClientRefreshTokenRotationOutputReference", version: "21.22.1" };
class CognitoUserPoolClientRefreshTokenRotationList extends cdktf.ComplexList {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource, terraformAttribute, wrapsSet) {
super(terraformResource, terraformAttribute, wrapsSet);
this.terraformResource = terraformResource;
this.terraformAttribute = terraformAttribute;
this.wrapsSet = wrapsSet;
}
/**
* @param index the index of the item to return
*/
get(index) {
return new CognitoUserPoolClientRefreshTokenRotationOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.CognitoUserPoolClientRefreshTokenRotationList = CognitoUserPoolClientRefreshTokenRotationList;
_d = JSII_RTTI_SYMBOL_1;
CognitoUserPoolClientRefreshTokenRotationList[_d] = { fqn: "@cdktf/provider-aws.cognitoUserPoolClient.CognitoUserPoolClientRefreshTokenRotationList", version: "21.22.1" };
function cognitoUserPoolClientTokenValidityUnitsToTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
return {
access_token: cdktf.stringToTerraform(struct.accessToken),
id_token: cdktf.stringToTerraform(struct.idToken),
refresh_token: cdktf.stringToTerraform(struct.refreshToken),
};
}
function cognitoUserPoolClientTokenValidityUnitsToHclTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
const attrs = {
access_token: {
value: cdktf.stringToHclTerraform(struct.accessToken),
isBlock: false,
type: "simple",
storageClassType: "string",
},
id_token: {
value: cdktf.stringToHclTerraform(struct.idToken),
isBlock: false,
type: "simple",
storageClassType: "string",
},
refresh_token: {
value: cdktf.stringToHclTerraform(struct.refreshToken),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
class CognitoUserPoolClientTokenValidityUnitsOutputReference extends cdktf.ComplexObject {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) {
super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex);
this.isEmptyObject = false;
}
get internalValue() {
if (this.resolvableValue) {
return this.resolvableValue;
}
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._accessToken !== undefined) {
hasAnyValues = true;
internalValueResult.accessToken = this._accessToken;
}
if (this._idToken !== undefined) {
hasAnyValues = true;
internalValueResult.idToken = this._idToken;
}
if (this._refreshToken !== undefined) {
hasAnyValues = true;
internalValueResult.refreshToken = this._refreshToken;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this.resolvableValue = undefined;
this._accessToken = undefined;
this._idToken = undefined;
this._refreshToken = undefined;
}
else if (cdktf.Tokenization.isResolvable(value)) {
this.isEmptyObject = false;
this.resolvableValue = value;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this.resolvableValue = undefined;
this._accessToken = value.accessToken;
this._idToken = value.idToken;
this._refreshToken = value.refreshToken;
}
}
get accessToken() {
return this.getStringAttribute('access_token');
}
set accessToken(value) {
this._accessToken = value;
}
resetAccessToken() {
this._accessToken = undefined;
}
// Temporarily expose input value. Use with caution.
get accessTokenInput() {
return this._accessToken;
}
get idToken() {
return this.getStringAttribute('id_token');
}
set idToken(value) {
this._idToken = value;
}
resetIdToken() {
this._idToken = undefined;
}
// Temporarily expose input value. Use with caution.
get idTokenInput() {
return this._idToken;
}
get refreshToken() {
return this.getStringAttribute('refresh_token');
}
set refreshToken(value) {
this._refreshToken = value;
}
resetRefreshToken() {
this._refreshToken = undefined;
}
// Temporarily expose input value. Use with caution.
get refreshTokenInput() {
return this._refreshToken;
}
}
exports.CognitoUserPoolClientTokenValidityUnitsOutputReference = CognitoUserPoolClientTokenValidityUnitsOutputReference;
_e = JSII_RTTI_SYMBOL_1;
CognitoUserPoolClientTokenValidityUnitsOutputReference[_e] = { fqn: "@cdktf/provider-aws.cognitoUserPoolClient.CognitoUserPoolClientTokenValidityUnitsOutputReference", version: "21.22.1" };
class CognitoUserPoolClientTokenValidityUnitsList extends cdktf.ComplexList {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource, terraformAttribute, wrapsSet) {
super(terraformResource, terraformAttribute, wrapsSet);
this.terraformResource = terraformResource;
this.terraformAttribute = terraformAttribute;
this.wrapsSet = wrapsSet;
}
/**
* @param index the index of the item to return
*/
get(index) {
return new CognitoUserPoolClientTokenValidityUnitsOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.CognitoUserPoolClientTokenValidityUnitsList = CognitoUserPoolClientTokenValidityUnitsList;
_f = JSII_RTTI_SYMBOL_1;
CognitoUserPoolClientTokenValidityUnitsList[_f] = { fqn: "@cdktf/provider-aws.cognitoUserPoolClient.CognitoUserPoolClientTokenValidityUnitsList", version: "21.22.1" };
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/cognito_user_pool_client aws_cognito_user_pool_client}
*/
class CognitoUserPoolClient extends cdktf.TerraformResource {
// ==============
// STATIC Methods
// ==============
/**
* Generates CDKTF code for importing a CognitoUserPoolClient resource upon running "cdktf plan <stack-name>"
* @param scope The scope in which to define this construct
* @param importToId The construct id used in the generated config for the CognitoUserPoolClient to import
* @param importFromId The id of the existing CognitoUserPoolClient that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/cognito_user_pool_client#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the CognitoUserPoolClient to import is found
*/
static generateConfigForImport(scope, importToId, importFromId, provider) {
return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_cognito_user_pool_client", importId: importFromId, provider });
}
// ===========
// INITIALIZER
// ===========
/**
* Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/cognito_user_pool_client aws_cognito_user_pool_client} Resource
*
* @param scope The scope in which to define this construct
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
* @param options CognitoUserPoolClientConfig
*/
constructor(scope, id, config) {
super(scope, id, {
terraformResourceType: 'aws_cognito_user_pool_client',
terraformGeneratorMetadata: {
providerName: 'aws',
providerVersion: '6.25.0',
providerVersionConstraint: '~> 6.0'
},
provider: config.provider,
dependsOn: config.dependsOn,
count: config.count,
lifecycle: config.lifecycle,
provisioners: config.provisioners,
connection: config.connection,
forEach: config.forEach
});
// analytics_configuration - computed: false, optional: true, required: false
this._analyticsConfiguration = new CognitoUserPoolClientAnalyticsConfigurationList(this, "analytics_configuration", false);
// refresh_token_rotation - computed: false, optional: true, required: false
this._refreshTokenRotation = new CognitoUserPoolClientRefreshTokenRotationList(this, "refresh_token_rotation", false);
// token_validity_units - computed: false, optional: true, required: false
this._tokenValidityUnits = new CognitoUserPoolClientTokenValidityUnitsList(this, "token_validity_units", false);
this._accessTokenValidity = config.accessTokenValidity;
this._allowedOauthFlows = config.allowedOauthFlows;
this._allowedOauthFlowsUserPoolClient = config.allowedOauthFlowsUserPoolClient;
this._allowedOauthScopes = config.allowedOauthScopes;
this._authSessionValidity = config.authSessionValidity;
this._callbackUrls = config.callbackUrls;
this._defaultRedirectUri = config.defaultRedirectUri;
this._enablePropagateAdditionalUserContextData = config.enablePropagateAdditionalUserContextData;
this._enableTokenRevocation = config.enableTokenRevocation;
this._explicitAuthFlows = config.explicitAuthFlows;
this._generateSecret = config.generateSecret;
this._idTokenValidity = config.idTokenValidity;
this._logoutUrls = config.logoutUrls;
this._name = config.name;
this._preventUserExistenceErrors = config.preventUserExistenceErrors;
this._readAttributes = config.readAttributes;
this._refreshTokenValidity = config.refreshTokenValidity;
this._region = config.region;
this._supportedIdentityProviders = config.supportedIdentityProviders;
this._userPoolId = config.userPoolId;
this._writeAttributes = config.writeAttributes;
this._analyticsConfiguration.internalValue = config.analyticsConfiguration;
this._refreshTokenRotation.internalValue = config.refreshTokenRotation;
this._tokenValidityUnits.internalValue = config.tokenValidityUnits;
}
get accessTokenValidity() {
return this.getNumberAttribute('access_token_validity');
}
set accessTokenValidity(value) {
this._accessTokenValidity = value;
}
resetAccessTokenValidity() {
this._accessTokenValidity = undefined;
}
// Temporarily expose input value. Use with caution.
get accessTokenValidityInput() {
return this._accessTokenValidity;
}
get allowedOauthFlows() {
return cdktf.Fn.tolist(this.getListAttribute('allowed_oauth_flows'));
}
set allowedOauthFlows(value) {
this._allowedOauthFlows = value;
}
resetAllowedOauthFlows() {
this._allowedOauthFlows = undefined;
}
// Temporarily expose input value. Use with caution.
get allowedOauthFlowsInput() {
return this._allowedOauthFlows;
}
get allowedOauthFlowsUserPoolClient() {
return this.getBooleanAttribute('allowed_oauth_flows_user_pool_client');
}
set allowedOauthFlowsUserPoolClient(value) {
this._allowedOauthFlowsUserPoolClient = value;
}
resetAllowedOauthFlowsUserPoolClient() {
this._allowedOauthFlowsUserPoolClient = undefined;
}
// Temporarily expose input value. Use with caution.
get allowedOauthFlowsUserPoolClientInput() {
return this._allowedOauthFlowsUserPoolClient;
}
get allowedOauthScopes() {
return cdktf.Fn.tolist(this.getListAttribute('allowed_oauth_scopes'));
}
set allowedOauthScopes(value) {
this._allowedOauthScopes = value;
}
resetAllowedOauthScopes() {
this._allowedOauthScopes = undefined;
}
// Temporarily expose input value. Use with caution.
get allowedOauthScopesInput() {
return this._allowedOauthScopes;
}
get authSessionValidity() {
return this.getNumberAttribute('auth_session_validity');
}
set authSessionValidity(value) {
this._authSessionValidity = value;
}
resetAuthSessionValidity() {
this._authSessionValidity = undefined;
}
// Temporarily expose input value. Use with caution.
get authSessionValidityInput() {
return this._authSessionValidity;
}
get callbackUrls() {
return cdktf.Fn.tolist(this.getListAttribute('callback_urls'));
}
set callbackUrls(value) {
this._callbackUrls = value;
}
resetCallbackUrls() {
this._callbackUrls = undefined;
}
// Temporarily expose input value. Use with caution.
get callbackUrlsInput() {
return this._callbackUrls;
}
// client_secret - computed: true, optional: false, required: false
get clientSecret() {
return this.getStringAttribute('client_secret');
}
get defaultRedirectUri() {
return this.getStringAttribute('default_redirect_uri');
}
set defaultRedirectUri(value) {
this._defaultRedirectUri = value;
}
resetDefaultRedirectUri() {
this._defaultRedirectUri = undefined;
}
// Temporarily expose input value. Use with caution.
get defaultRedirectUriInput() {
return this._defaultRedirectUri;
}
get enablePropagateAdditionalUserContextData() {
return this.getBooleanAttribute('enable_propagate_additional_user_context_data');
}
set enablePropagateAdditionalUserContextData(value) {
this._enablePropagateAdditionalUserContextData = value;
}
resetEnablePropagateAdditionalUserContextData() {
this._enablePropagateAdditionalUserContextData = undefined;
}
// Temporarily expose input value. Use with caution.
get enablePropagateAdditionalUserContextDataInput() {
return this._enablePropagateAdditionalUserContextData;
}
get enableTokenRevocation() {
return this.getBooleanAttribute('enable_token_revocation');
}
set enableTokenRevocation(value) {
this._enableTokenRevocation = value;
}
resetEnableTokenRevocation() {
this._enableTokenRevocation = undefined;
}
// Temporarily expose input value. Use with caution.
get enableTokenRevocationInput() {
return this._enableTokenRevocation;
}
get explicitAuthFlows() {
return cdktf.Fn.tolist(this.getListAttribute('explicit_auth_flows'));
}
set explicitAuthFlows(value) {
this._explicitAuthFlows = value;
}
resetExplicitAuthFlows() {
this._explicitAuthFlows = undefined;
}
// Temporarily expose input value. Use with caution.
get explicitAuthFlowsInput() {
return this._explicitAuthFlows;
}
get generateSecret() {
return this.getBooleanAttribute('generate_secret');
}
set generateSecret(value) {
this._generateSecret = value;
}
resetGenerateSecret() {
this._generateSecret = undefined;
}
// Temporarily expose input value. Use with caution.
get generateSecretInput() {
return this._generateSecret;
}
// id - computed: true, optional: false, required: false
get id() {
return this.getStringAttribute('id');
}
get idTokenValidity() {
return this.getNumberAttribute('id_token_validity');
}
set idTokenValidity(value) {
this._idTokenValidity = value;
}
resetIdTokenValidity() {
this._idTokenValidity = undefined;
}
// Temporarily expose input value. Use with caution.
get idTokenValidityInput() {
return this._idTokenValidity;
}
get logoutUrls() {
return cdktf.Fn.tolist(this.getListAttribute('logout_urls'));
}
set logoutUrls(value) {
this._logoutUrls = value;
}
resetLogoutUrls() {
this._logoutUrls = undefined;
}
// Temporarily expose input value. Use with caution.
get logoutUrlsInput() {
return this._logoutUrls;
}
get name() {
return this.getStringAttribute('name');
}
set name(value) {
this._name = value;
}
// Temporarily expose input value. Use with caution.
get nameInput() {
return this._name;
}
get preventUserExistenceErrors() {
return this.getStringAttribute('prevent_user_existence_errors');
}
set preventUserExistenceErrors(value) {
this._preventUserExistenceErrors = value;
}
resetPreventUserExistenceErrors() {
this._preventUserExistenceErrors = undefined;
}
// Temporarily expose input value. Use with caution.
get preventUserExistenceErrorsInput() {
return this._preventUserExistenceErrors;
}
get readAttributes() {
return cdktf.Fn.tolist(this.getListAttribute('read_attributes'));
}
set readAttributes(value) {
this._readAttributes = value;
}
resetReadAttributes() {
this._readAttributes = undefined;
}
// Temporarily expose input value. Use with caution.
get readAttributesInput() {
return this._readAttributes;
}
get refreshTokenValidity() {
return this.getNumberAttribute('refresh_token_validity');
}
set refreshTokenValidity(value) {
this._refreshTokenValidity = value;
}
resetRefreshTokenValidity() {
this._refreshTokenValidity = undefined;
}
// Temporarily expose input value. Use with caution.
get refreshTokenValidityInput() {
return this._refreshTokenValidity;
}
get region() {
return this.getStringAttribute('region');
}
set region(value) {
this._region = value;
}
resetRegion() {
this._region = undefined;
}
// Temporarily expose input value. Use with caution.
get regionInput() {
return this._region;
}
get supportedIdentityProviders() {
return cdktf.Fn.tolist(this.getListAttribute('supported_identity_providers'));
}
set supportedIdentityProviders(value) {
this._supportedIdentityProviders = value;
}
resetSupportedIdentityProviders() {
this._supportedIdentityProviders = undefined;
}
// Temporarily expose input value. Use with caution.
get supportedIdentityProvidersInput() {
return this._supportedIdentityProviders;
}
get userPoolId() {
return this.getStringAttribute('user_pool_id');
}
set userPoolId(value) {
this._userPoolId = value;
}
// Temporarily expose input value. Use with caution.
get userPoolIdInput() {
return this._userPoolId;
}
get writeAttributes() {
return cdktf.Fn.tolist(this.getListAttribute('write_attributes'));
}
set writeAttributes(value) {
this._writeAttributes = value;
}
resetWriteAttributes() {
this._writeAttributes = undefined;
}
// Temporarily expose input value. Use with caution.
get writeAttributesInput() {
return this._writeAttributes;
}
get analyticsConfiguration() {
return this._analyticsConfiguration;
}
putAnalyticsConfiguration(value) {
this._analyticsConfiguration.internalValue = value;
}
resetAnalyticsConfiguration() {
this._analyticsConfiguration.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get analyticsConfigurationInput() {
return this._analyticsConfiguration.internalValue;
}
get refreshTokenRotation() {
return this._refreshTokenRotation;
}
putRefreshTokenRotation(value) {
this._refreshTokenRotation.internalValue = value;
}
resetRefreshTokenRotation() {
this._refreshTokenRotation.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get refreshTokenRotationInput() {
return this._refreshTokenRotation.internalValue;
}
get tokenValidityUnits() {
return this._tokenValidityUnits;
}
putTokenValidityUnits(value) {
this._tokenValidityUnits.internalValue = value;
}
resetTokenValidityUnits() {
this._tokenValidityUnits.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get tokenValidityUnitsInput() {
return this._tokenValidityUnits.internalValue;
}
// =========
// SYNTHESIS
// =========
synthesizeAttributes() {
return {
access_token_validity: cdktf.numberToTerraform(this._accessTokenValidity),
allowed_oauth_flows: cdktf.listMapper(cdktf.stringToTerraform, false)(this._allowedOauthFlows),
allowed_oauth_flows_user_pool_client: cdktf.booleanToTerraform(this._allowedOauthFlowsUserPoolClient),
allowed_oauth_scopes: cdktf.listMapper(cdktf.stringToTerraform, false)(this._allowedOauthScopes),
auth_session_validity: cdktf.numberToTerraform(this._authSessionValidity),
callback_urls: cdktf.listMapper(cdktf.stringToTerraform, false)(this._callbackUrls),
default_redirect_uri: cdktf.stringToTerraform(this._defaultRedirectUri),
enable_propagate_additional_user_context_data: cdktf.booleanToTerraform(this._enablePropagateAdditionalUserContextData),
enable_token_revocation: cdktf.booleanToTerraform(this._enableTokenRevocation),
explicit_auth_flows: cdktf.listMapper(cdktf.stringToTerraform, false)(this._explicitAuthFlows),
generate_secret: cdktf.booleanToTerraform(this._generateSecret),
id_token_validity: cdktf.numberToTerraform(this._idTokenValidity),
logout_urls: cdktf.listMapper(cdktf.stringToTerraform, false)(this._logoutUrls),
name: cdktf.stringToTerraform(this._name),
prevent_user_existence_errors: cdktf.stringToTerraform(this._preventUserExistenceErrors),
read_attributes: cdktf.listMapper(cdktf.stringToTerraform, false)(this._readAttributes),
refresh_token_validity: cdktf.numberToTerraform(this._refreshTokenValidity),
region: cdktf.stringToTerraform(this._region),
supported_identity_providers: cdktf.listMapper(cdktf.stringToTerraform, false)(this._supportedIdentityProviders),
user_pool_id: cdktf.stringToTerraform(this._userPoolId),
write_attributes: cdktf.listMapper(cdktf.stringToTerraform, false)(this._writeAttributes),
analytics_configuration: cdktf.listMapper(cognitoUserPoolClientAnalyticsConfigurationToTerraform, true)(this._analyticsConfiguration.internalValue),
refresh_token_rotation: cdktf.listMapper(cognitoUserPoolClientRefreshTokenRotationToTerraform, true)(this._refreshTokenRotation.internalValue),
token_validity_units: cdktf.listMapper(cognitoUserPoolClientTokenValidityUnitsToTerraform, true)(this._tokenValidityUnits.internalValue),
};
}
synthesizeHclAttributes() {
const attrs = {
access_token_validity: {
value: cdktf.numberToHclTerraform(this._accessTokenValidity),
isBlock: false,
type: "simple",
storageClassType: "number",
},
allowed_oauth_flows: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._allowedOauthFlows),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
allowed_oauth_flows_user_pool_client: {
value: cdktf.booleanToHclTerraform(this._allowedOauthFlowsUserPoolClient),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
allowed_oauth_scopes: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._allowedOauthScopes),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
auth_session_validity: {
value: cdktf.numberToHclTerraform(this._authSessionValidity),
isBlock: false,
type: "simple",
storageClassType: "number",
},
callback_urls: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._callbackUrls),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
default_redirect_uri: {
value: cdktf.stringToHclTerraform(this._defaultRedirectUri),
isBlock: false,
type: "simple",
storageClassType: "string",
},
enable_propagate_additional_user_context_data: {
value: cdktf.booleanToHclTerraform(this._enablePropagateAdditionalUserContextData),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
enable_token_revocation: {
value: cdktf.booleanToHclTerraform(this._enableTokenRevocation),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
explicit_auth_flows: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._explicitAuthFlows),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
generate_secret: {
value: cdktf.booleanToHclTerraform(this._generateSecret),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
id_token_validity: {
value: cdktf.numberToHclTerraform(this._idTokenValidity),
isBlock: false,
type: "simple",
storageClassType: "number",
},
logout_urls: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._logoutUrls),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
name: {
value: cdktf.stringToHclTerraform(this._name),
isBlock: false,
type: "simple",
storageClassType: "string",
},
prevent_user_existence_errors: {
value: cdktf.stringToHclTerraform(this._preventUserExistenceErrors),
isBlock: false,
type: "simple",
storageClassType: "string",
},
read_attributes: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._readAttributes),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
refresh_token_validity: {
value: cdktf.numberToHclTerraform(this._refreshTokenValidity),
isBlock: false,
type: "simple",
storageClassType: "number",
},
region: {
value: cdktf.stringToHclTerraform(this._region),
isBlock: false,
type: "simple",
storageClassType: "string",
},
supported_identity_providers: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._supportedIdentityProviders),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
user_pool_id: {
value: cdktf.stringToHclTerraform(this._userPoolId),
isBlock: false,
type: "simple",
storageClassType: "string",
},
write_attributes: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._writeAttributes),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
analytics_configuration: {
value: cdktf.listMapperHcl(cognitoUserPoolClientAnalyticsConfigurationToHclTerraform, true)(this._analyticsConfiguration.internalValue),
isBlock: true,
type: "list",
storageClassType: "CognitoUserPoolClientAnalyticsConfigurationList",
},
refresh_token_rotation: {
value: cdktf.listMapperHcl(cognitoUserPoolClientRefreshTokenRotationToHclTerraform, true)(this._refreshTokenRotation.internalValue),
isBlock: true,
type: "list",
storageClassType: "CognitoUserPoolClientRefreshTokenRotationList",
},
token_validity_units: {
value: cdktf.listMapperHcl(cognitoUserPoolClientTokenValidityUnitsToHclTerraform, true)(this._tokenValidityUnits.internalValue),
isBlock: true,
type: "list",
storageClassType: "CognitoUserPoolClientTokenValidityUnitsList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
}
exports.CognitoUserPoolClient = CognitoUserPoolClient;
_g = JSII_RTTI_SYMBOL_1;
CognitoUserPoolClient[_g] = { fqn: "@cdktf/provider-aws.cognitoUserPoolClient.CognitoUserPoolClient", version: "21.22.1" };
// =================
// STATIC PROPERTIES
// =================
CognitoUserPoolClient.tfResourceType = "aws_cognito_user_pool_client";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29nbml0by11c2VyLXBvb2wtY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUE4SUEsd0hBWUM7QUFHRCw4SEF3Q0M7QUFxTEQsb0hBU0M7QUFHRCwwSEFzQkM7QUFvSEQsZ0hBVUM7QUFHRCxzSEE0QkM7O0FBaGpCRCwrQkFBK0I7QUFxSS9CLFNBQWdCLHNEQUFzRCxDQUFDLE1BQXdFO0lBQzdJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU87UUFDTCxlQUFlLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxjQUFjLENBQUM7UUFDaEUsY0FBYyxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsYUFBYSxDQUFDO1FBQzlELFdBQVcsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLFVBQVUsQ0FBQztRQUN4RCxRQUFRLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxPQUFPLENBQUM7UUFDbEQsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU8sQ0FBQyxjQUFjLENBQUM7S0FDbkUsQ0FBQTtBQUNILENBQUM7QUFHRCxTQUFnQix5REFBeUQsQ0FBQyxNQUF3RTtJQUNoSixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMs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