import * as core from "@terrascript/core"; export interface MessageArgs extends core.SchemaArgs { content: string | core.StringOut; contentType: string | core.StringOut; groupNumber?: number | core.NumberOut; } export class Message extends core.Schema { @core.attr(String) public content!: string | core.StringOut; @core.attr(String) public contentType!: string | core.StringOut; @core.attr(Number) public groupNumber?: number | core.NumberOut; } export interface PromptArgs extends core.SchemaArgs { maxAttempts: number | core.NumberOut; message: core.Array | core.ArrayOut; responseCard?: string | core.StringOut; } export class Prompt extends core.Schema { @core.attr(Number) public maxAttempts!: number | core.NumberOut; @core.attr(Message, { kind: "array" }) public message!: core.Array | core.ArrayOut; @core.attr(String) public responseCard?: string | core.StringOut; } export interface RejectionStatementArgs extends core.SchemaArgs { message: core.Array | core.ArrayOut; responseCard?: string | core.StringOut; } export class RejectionStatement extends core.Schema { @core.attr(Message, { kind: "array" }) public message!: core.Array | core.ArrayOut; @core.attr(String) public responseCard?: string | core.StringOut; } export interface FollowUpPromptArgs extends core.SchemaArgs { prompt: Prompt; rejectionStatement: RejectionStatement; } export class FollowUpPrompt extends core.Schema { @core.attr(Prompt) public prompt!: Prompt; @core.attr(RejectionStatement) public rejectionStatement!: RejectionStatement; } export interface ValueElicitationPromptArgs extends core.SchemaArgs { maxAttempts: number | core.NumberOut; message: core.Array | core.ArrayOut; responseCard?: string | core.StringOut; } export class ValueElicitationPrompt extends core.Schema { @core.attr(Number) public maxAttempts!: number | core.NumberOut; @core.attr(Message, { kind: "array" }) public message!: core.Array | core.ArrayOut; @core.attr(String) public responseCard?: string | core.StringOut; } export interface SlotArgs extends core.SchemaArgs { description?: string | core.StringOut; name: string | core.StringOut; priority?: number | core.NumberOut; responseCard?: string | core.StringOut; sampleUtterances?: core.Array | core.ArrayOut; slotConstraint: string | core.StringOut; slotType: string | core.StringOut; slotTypeVersion?: string | core.StringOut; valueElicitationPrompt?: ValueElicitationPrompt; } export class Slot extends core.Schema { @core.attr(String) public description?: string | core.StringOut; @core.attr(String) public name!: string | core.StringOut; @core.attr(Number) public priority?: number | core.NumberOut; @core.attr(String) public responseCard?: string | core.StringOut; @core.attr(String, { kind: "array" }) public sampleUtterances?: core.Array | core.ArrayOut; @core.attr(String) public slotConstraint!: string | core.StringOut; @core.attr(String) public slotType!: string | core.StringOut; @core.attr(String) public slotTypeVersion?: string | core.StringOut; @core.attr(ValueElicitationPrompt) public valueElicitationPrompt?: ValueElicitationPrompt; } export interface ConclusionStatementArgs extends core.SchemaArgs { message: core.Array | core.ArrayOut; responseCard?: string | core.StringOut; } export class ConclusionStatement extends core.Schema { @core.attr(Message, { kind: "array" }) public message!: core.Array | core.ArrayOut; @core.attr(String) public responseCard?: string | core.StringOut; } export interface DialogCodeHookArgs extends core.SchemaArgs { messageVersion: string | core.StringOut; uri: string | core.StringOut; } export class DialogCodeHook extends core.Schema { @core.attr(String) public messageVersion!: string | core.StringOut; @core.attr(String) public uri!: string | core.StringOut; } export interface ConfirmationPromptArgs extends core.SchemaArgs { maxAttempts: number | core.NumberOut; message: core.Array | core.ArrayOut; responseCard?: string | core.StringOut; } export class ConfirmationPrompt extends core.Schema { @core.attr(Number) public maxAttempts!: number | core.NumberOut; @core.attr(Message, { kind: "array" }) public message!: core.Array | core.ArrayOut; @core.attr(String) public responseCard?: string | core.StringOut; } export interface CodeHookArgs extends core.SchemaArgs { messageVersion: string | core.StringOut; uri: string | core.StringOut; } export class CodeHook extends core.Schema { @core.attr(String) public messageVersion!: string | core.StringOut; @core.attr(String) public uri!: string | core.StringOut; } export interface FulfillmentActivityArgs extends core.SchemaArgs { codeHook?: CodeHook; type: string | core.StringOut; } export class FulfillmentActivity extends core.Schema { @core.attr(CodeHook) public codeHook?: CodeHook; @core.attr(String) public type!: string | core.StringOut; } export interface IntentArgs extends core.ResourceArgs { /** * (Optional) The statement that you want Amazon Lex to convey to the user */ conclusionStatement?: ConclusionStatement; /** * (Optional) Prompts the user to confirm the intent. This question should */ confirmationPrompt?: ConfirmationPrompt; /** * (Optional) Determines if a new slot type version is created when the initial */ createVersion?: boolean | core.BooleanOut; /** * (Optional) A description of the intent. Must be less than or equal to 200 characters in length. */ description?: string | core.StringOut; /** * (Optional) Specifies a Lambda function to invoke for each user input. You can */ dialogCodeHook?: DialogCodeHook; /** * (Optional) Amazon Lex uses this prompt to solicit additional activity after */ followUpPrompt?: FollowUpPrompt; /** * (Required) Describes how the intent is fulfilled. For example, after a */ fulfillmentActivity: FulfillmentActivity; /** * (Required) The name of the intent, not case sensitive. Must be less than or equal to 100 characters * in length. */ name: string | core.StringOut; /** * (Optional) A unique identifier for the built-in intent to base this */ parentIntentSignature?: string | core.StringOut; /** * (Optional) When the user answers "no" to the question defined in */ rejectionStatement?: RejectionStatement; /** * (Optional) An array of utterances (strings) that a user might say to signal */ sampleUtterances?: core.Array | core.ArrayOut; /** * (Optional) An list of intent slots. At runtime, Amazon Lex elicits required slot values */ slot?: core.Array | core.ArrayOut; } export class Intent extends core.Resource { /** * The ARN of the Lex intent. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * Checksum identifying the version of the intent that was created. The checksum is not */ @core.attr(String, { computed: true }) public checksum!: string | core.StringOut; /** * (Optional) The statement that you want Amazon Lex to convey to the user */ @core.attr(ConclusionStatement) public conclusionStatement?: ConclusionStatement; /** * (Optional) Prompts the user to confirm the intent. This question should */ @core.attr(ConfirmationPrompt) public confirmationPrompt?: ConfirmationPrompt; /** * (Optional) Determines if a new slot type version is created when the initial */ @core.attr(Boolean) public createVersion?: boolean | core.BooleanOut; /** * The date when the intent version was created. */ @core.attr(String, { computed: true }) public createdDate!: string | core.StringOut; /** * (Optional) A description of the intent. Must be less than or equal to 200 characters in length. */ @core.attr(String) public description?: string | core.StringOut; /** * (Optional) Specifies a Lambda function to invoke for each user input. You can */ @core.attr(DialogCodeHook) public dialogCodeHook?: DialogCodeHook; /** * (Optional) Amazon Lex uses this prompt to solicit additional activity after */ @core.attr(FollowUpPrompt) public followUpPrompt?: FollowUpPrompt; /** * (Required) Describes how the intent is fulfilled. For example, after a */ @core.attr(FulfillmentActivity) public fulfillmentActivity!: FulfillmentActivity; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * The date when the $LATEST version of this intent was updated. */ @core.attr(String, { computed: true }) public lastUpdatedDate!: string | core.StringOut; /** * (Required) The name of the intent, not case sensitive. Must be less than or equal to 100 characters * in length. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) A unique identifier for the built-in intent to base this */ @core.attr(String) public parentIntentSignature?: string | core.StringOut; /** * (Optional) When the user answers "no" to the question defined in */ @core.attr(RejectionStatement) public rejectionStatement?: RejectionStatement; /** * (Optional) An array of utterances (strings) that a user might say to signal */ @core.attr(String, { kind: "array" }) public sampleUtterances?: core.Array | core.ArrayOut; /** * (Optional) An list of intent slots. At runtime, Amazon Lex elicits required slot values */ @core.attr(Slot, { kind: "array" }) public slot?: core.Array | core.ArrayOut; /** * The version of the bot. */ @core.attr(String, { computed: true }) public version!: string | core.StringOut; constructor(name: string, args?: IntentArgs) { super(name, "aws_lex_intent", args); } public override getNamespace(): string { return "aws_lex"; } }