import * as core from "@terrascript/core"; export interface LowActionArgs extends core.SchemaArgs { eventAction: string | core.StringOut; notify: boolean | core.BooleanOut; } export class LowAction extends core.Schema { @core.attr(String) public eventAction!: string | core.StringOut; @core.attr(Boolean) public notify!: boolean | core.BooleanOut; } export interface MediumActionArgs extends core.SchemaArgs { eventAction: string | core.StringOut; notify: boolean | core.BooleanOut; } export class MediumAction extends core.Schema { @core.attr(String) public eventAction!: string | core.StringOut; @core.attr(Boolean) public notify!: boolean | core.BooleanOut; } export interface HighActionArgs extends core.SchemaArgs { eventAction: string | core.StringOut; notify: boolean | core.BooleanOut; } export class HighAction extends core.Schema { @core.attr(String) public eventAction!: string | core.StringOut; @core.attr(Boolean) public notify!: boolean | core.BooleanOut; } export interface AccountTakeoverRiskConfigurationActionsArgs extends core.SchemaArgs { highAction?: HighAction; lowAction?: LowAction; mediumAction?: MediumAction; } export class AccountTakeoverRiskConfigurationActions extends core.Schema { @core.attr(HighAction) public highAction?: HighAction; @core.attr(LowAction) public lowAction?: LowAction; @core.attr(MediumAction) public mediumAction?: MediumAction; } export interface MfaEmailArgs extends core.SchemaArgs { htmlBody: string | core.StringOut; subject: string | core.StringOut; textBody: string | core.StringOut; } export class MfaEmail extends core.Schema { @core.attr(String) public htmlBody!: string | core.StringOut; @core.attr(String) public subject!: string | core.StringOut; @core.attr(String) public textBody!: string | core.StringOut; } export interface NoActionEmailArgs extends core.SchemaArgs { htmlBody: string | core.StringOut; subject: string | core.StringOut; textBody: string | core.StringOut; } export class NoActionEmail extends core.Schema { @core.attr(String) public htmlBody!: string | core.StringOut; @core.attr(String) public subject!: string | core.StringOut; @core.attr(String) public textBody!: string | core.StringOut; } export interface BlockEmailArgs extends core.SchemaArgs { htmlBody: string | core.StringOut; subject: string | core.StringOut; textBody: string | core.StringOut; } export class BlockEmail extends core.Schema { @core.attr(String) public htmlBody!: string | core.StringOut; @core.attr(String) public subject!: string | core.StringOut; @core.attr(String) public textBody!: string | core.StringOut; } export interface NotifyConfigurationArgs extends core.SchemaArgs { blockEmail?: BlockEmail; from?: string | core.StringOut; mfaEmail?: MfaEmail; noActionEmail?: NoActionEmail; replyTo?: string | core.StringOut; sourceArn: string | core.StringOut; } export class NotifyConfiguration extends core.Schema { @core.attr(BlockEmail) public blockEmail?: BlockEmail; @core.attr(String) public from?: string | core.StringOut; @core.attr(MfaEmail) public mfaEmail?: MfaEmail; @core.attr(NoActionEmail) public noActionEmail?: NoActionEmail; @core.attr(String) public replyTo?: string | core.StringOut; @core.attr(String) public sourceArn!: string | core.StringOut; } export interface AccountTakeoverRiskConfigurationArgs extends core.SchemaArgs { actions: AccountTakeoverRiskConfigurationActions; notifyConfiguration: NotifyConfiguration; } export class AccountTakeoverRiskConfiguration extends core.Schema { @core.attr(AccountTakeoverRiskConfigurationActions) public actions!: AccountTakeoverRiskConfigurationActions; @core.attr(NotifyConfiguration) public notifyConfiguration!: NotifyConfiguration; } export interface CompromisedCredentialsRiskConfigurationActionsArgs extends core.SchemaArgs { eventAction: string | core.StringOut; } export class CompromisedCredentialsRiskConfigurationActions extends core.Schema { @core.attr(String) public eventAction!: string | core.StringOut; } export interface CompromisedCredentialsRiskConfigurationArgs extends core.SchemaArgs { actions: CompromisedCredentialsRiskConfigurationActions; eventFilter?: core.Array | core.ArrayOut; } export class CompromisedCredentialsRiskConfiguration extends core.Schema { @core.attr(CompromisedCredentialsRiskConfigurationActions) public actions!: CompromisedCredentialsRiskConfigurationActions; @core.attr(String, { computed: true, kind: "array" }) public eventFilter?: core.Array | core.ArrayOut; } export interface RiskExceptionConfigurationArgs extends core.SchemaArgs { blockedIpRangeList?: core.Array | core.ArrayOut; skippedIpRangeList?: core.Array | core.ArrayOut; } export class RiskExceptionConfiguration extends core.Schema { @core.attr(String, { kind: "array" }) public blockedIpRangeList?: | core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public skippedIpRangeList?: | core.Array | core.ArrayOut; } export interface RiskConfigurationArgs extends core.ResourceArgs { /** * (Optional) The account takeover risk configuration. See details below. */ accountTakeoverRiskConfiguration?: AccountTakeoverRiskConfiguration; /** * (Optional) The app client ID. When the client ID is not provided, the same risk configuration is app * lied to all the clients in the User Pool. */ clientId?: string | core.StringOut; /** * (Optional) The compromised credentials risk configuration. See details below. */ compromisedCredentialsRiskConfiguration?: CompromisedCredentialsRiskConfiguration; /** * (Optional) The configuration to override the risk decision. See details below. */ riskExceptionConfiguration?: RiskExceptionConfiguration; /** * (Required) The user pool ID. */ userPoolId: string | core.StringOut; } export class RiskConfiguration extends core.Resource { /** * (Optional) The account takeover risk configuration. See details below. */ @core.attr(AccountTakeoverRiskConfiguration) public accountTakeoverRiskConfiguration?: AccountTakeoverRiskConfiguration; /** * (Optional) The app client ID. When the client ID is not provided, the same risk configuration is app * lied to all the clients in the User Pool. */ @core.attr(String) public clientId?: string | core.StringOut; /** * (Optional) The compromised credentials risk configuration. See details below. */ @core.attr(CompromisedCredentialsRiskConfiguration) public compromisedCredentialsRiskConfiguration?: CompromisedCredentialsRiskConfiguration; /** * The user pool ID. or The user pool ID and Client Id separated by a `:` if the configuration is clien * t specific. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The configuration to override the risk decision. See details below. */ @core.attr(RiskExceptionConfiguration) public riskExceptionConfiguration?: RiskExceptionConfiguration; /** * (Required) The user pool ID. */ @core.attr(String) public userPoolId!: string | core.StringOut; constructor(name: string, args?: RiskConfigurationArgs) { super(name, "aws_cognito_risk_configuration", args); } public override getNamespace(): string { return "aws_cognito"; } }