@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon Lex Model Building Service
@version 2017-04-19
@auth AWS SigV4
@endpoints 42
@hint download_for_search
@toc bots(16), intents(7), slottypes(7), builtins(3), exports(1), imports(2), migrations(3), tags(3)

@group bots
@endpoint POST /bots/{name}/versions
@required {name: str}
@optional {checksum: str}
@returns(200) {name: str?, description: str?, intents: [Intent]?, clarificationPrompt: Prompt?{messages: [Message], maxAttempts: int, responseCard: str?}, abortStatement: Statement?{messages: [Message], responseCard: str?}, status: str?, failureReason: str?, lastUpdatedDate: str(timestamp)?, createdDate: str(timestamp)?, idleSessionTTLInSeconds: int?, voiceId: str?, checksum: str?, version: str?, locale: str?, childDirected: bool?, enableModelImprovements: bool?, detectSentiment: bool?}

@endgroup

@group intents
@endpoint POST /intents/{name}/versions
@required {name: str}
@optional {checksum: str}
@returns(200) {name: str?, description: str?, slots: [Slot]?, sampleUtterances: [str]?, confirmationPrompt: Prompt?{messages: [Message], maxAttempts: int, responseCard: str?}, rejectionStatement: Statement?{messages: [Message], responseCard: str?}, followUpPrompt: FollowUpPrompt?{prompt: Prompt{messages: [Message], maxAttempts: int, responseCard: str?}, rejectionStatement: Statement{messages: [Message], responseCard: str?}}, conclusionStatement: Statement?{messages: [Message], responseCard: str?}, dialogCodeHook: CodeHook?{uri: str, messageVersion: str}, fulfillmentActivity: FulfillmentActivity?{type: str, codeHook: CodeHook?{uri: str, messageVersion: str}}, parentIntentSignature: str?, lastUpdatedDate: str(timestamp)?, createdDate: str(timestamp)?, version: str?, checksum: str?, kendraConfiguration: KendraConfiguration?{kendraIndex: str, queryFilterString: str?, role: str}, inputContexts: [InputContext]?, outputContexts: [OutputContext]?}

@endgroup

@group slottypes
@endpoint POST /slottypes/{name}/versions
@required {name: str}
@optional {checksum: str}
@returns(200) {name: str?, description: str?, enumerationValues: [EnumerationValue]?, lastUpdatedDate: str(timestamp)?, createdDate: str(timestamp)?, version: str?, checksum: str?, valueSelectionStrategy: str?, parentSlotTypeSignature: str?, slotTypeConfigurations: [SlotTypeConfiguration]?}

@endgroup

@group bots
@endpoint DELETE /bots/{name}
@required {name: str}

@endpoint DELETE /bots/{botName}/aliases/{name}
@required {name: str, botName: str}

@endpoint DELETE /bots/{botName}/aliases/{aliasName}/channels/{name}
@required {name: str, botName: str, botAlias: str}

@endpoint DELETE /bots/{name}/versions/{version}
@required {name: str, version: str}

@endgroup

@group intents
@endpoint DELETE /intents/{name}
@required {name: str}

@endpoint DELETE /intents/{name}/versions/{version}
@required {name: str, version: str}

@endgroup

@group slottypes
@endpoint DELETE /slottypes/{name}
@required {name: str}

@endpoint DELETE /slottypes/{name}/version/{version}
@required {name: str, version: str}

@endgroup

@group bots
@endpoint DELETE /bots/{botName}/utterances/{userId}
@required {botName: str, userId: str}

@endpoint GET /bots/{name}/versions/{versionoralias}
@required {name: str, versionOrAlias: str}
@returns(200) {name: str?, description: str?, intents: [Intent]?, enableModelImprovements: bool?, nluIntentConfidenceThreshold: num(f64)?, clarificationPrompt: Prompt?{messages: [Message], maxAttempts: int, responseCard: str?}, abortStatement: Statement?{messages: [Message], responseCard: str?}, status: str?, failureReason: str?, lastUpdatedDate: str(timestamp)?, createdDate: str(timestamp)?, idleSessionTTLInSeconds: int?, voiceId: str?, checksum: str?, version: str?, locale: str?, childDirected: bool?, detectSentiment: bool?}

@endpoint GET /bots/{botName}/aliases/{name}
@required {name: str, botName: str}
@returns(200) {name: str?, description: str?, botVersion: str?, botName: str?, lastUpdatedDate: str(timestamp)?, createdDate: str(timestamp)?, checksum: str?, conversationLogs: ConversationLogsResponse?{logSettings: [LogSettingsResponse]?, iamRoleArn: str?}}

@endpoint GET /bots/{botName}/aliases/
@required {botName: str}
@optional {nextToken: str, maxResults: int, nameContains: str}
@returns(200) {BotAliases: [BotAliasMetadata]?, nextToken: str?}

@endpoint GET /bots/{botName}/aliases/{aliasName}/channels/{name}
@required {name: str, botName: str, botAlias: str}
@returns(200) {name: str?, description: str?, botAlias: str?, botName: str?, createdDate: str(timestamp)?, type: str?, botConfiguration: map<str,str>?, status: str?, failureReason: str?}

@endpoint GET /bots/{botName}/aliases/{aliasName}/channels/
@required {botName: str, botAlias: str}
@optional {nextToken: str, maxResults: int, nameContains: str}
@returns(200) {botChannelAssociations: [BotChannelAssociation]?, nextToken: str?}

@endpoint GET /bots/{name}/versions/
@required {name: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {bots: [BotMetadata]?, nextToken: str?}

@endpoint GET /bots/
@optional {nextToken: str, maxResults: int, nameContains: str}
@returns(200) {bots: [BotMetadata]?, nextToken: str?}

@endgroup

@group builtins
@endpoint GET /builtins/intents/{signature}
@required {signature: str}
@returns(200) {signature: str?, supportedLocales: [str]?, slots: [BuiltinIntentSlot]?}

@endpoint GET /builtins/intents/
@optional {locale: str, signatureContains: str, nextToken: str, maxResults: int}
@returns(200) {intents: [BuiltinIntentMetadata]?, nextToken: str?}

@endpoint GET /builtins/slottypes/
@optional {locale: str, signatureContains: str, nextToken: str, maxResults: int}
@returns(200) {slotTypes: [BuiltinSlotTypeMetadata]?, nextToken: str?}

@endgroup

@group exports
@endpoint GET /exports/
@required {name: str, version: str, resourceType: str, exportType: str}
@returns(200) {name: str?, version: str?, resourceType: str?, exportType: str?, exportStatus: str?, failureReason: str?, url: str?}

@endgroup

@group imports
@endpoint GET /imports/{importId}
@required {importId: str}
@returns(200) {name: str?, resourceType: str?, mergeStrategy: str?, importId: str?, importStatus: str?, failureReason: [str]?, createdDate: str(timestamp)?}

@endgroup

@group intents
@endpoint GET /intents/{name}/versions/{version}
@required {name: str, version: str}
@returns(200) {name: str?, description: str?, slots: [Slot]?, sampleUtterances: [str]?, confirmationPrompt: Prompt?{messages: [Message], maxAttempts: int, responseCard: str?}, rejectionStatement: Statement?{messages: [Message], responseCard: str?}, followUpPrompt: FollowUpPrompt?{prompt: Prompt{messages: [Message], maxAttempts: int, responseCard: str?}, rejectionStatement: Statement{messages: [Message], responseCard: str?}}, conclusionStatement: Statement?{messages: [Message], responseCard: str?}, dialogCodeHook: CodeHook?{uri: str, messageVersion: str}, fulfillmentActivity: FulfillmentActivity?{type: str, codeHook: CodeHook?{uri: str, messageVersion: str}}, parentIntentSignature: str?, lastUpdatedDate: str(timestamp)?, createdDate: str(timestamp)?, version: str?, checksum: str?, kendraConfiguration: KendraConfiguration?{kendraIndex: str, queryFilterString: str?, role: str}, inputContexts: [InputContext]?, outputContexts: [OutputContext]?}

@endpoint GET /intents/{name}/versions/
@required {name: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {intents: [IntentMetadata]?, nextToken: str?}

@endpoint GET /intents/
@optional {nextToken: str, maxResults: int, nameContains: str}
@returns(200) {intents: [IntentMetadata]?, nextToken: str?}

@endgroup

@group migrations
@endpoint GET /migrations/{migrationId}
@required {migrationId: str}
@returns(200) {migrationId: str?, v1BotName: str?, v1BotVersion: str?, v1BotLocale: str?, v2BotId: str?, v2BotRole: str?, migrationStatus: str?, migrationStrategy: str?, migrationTimestamp: str(timestamp)?, alerts: [MigrationAlert]?}

@endpoint GET /migrations
@optional {sortByAttribute: str, sortByOrder: str, v1BotNameContains: str, migrationStatusEquals: str, maxResults: int, nextToken: str}
@returns(200) {migrationSummaries: [MigrationSummary]?, nextToken: str?}

@endgroup

@group slottypes
@endpoint GET /slottypes/{name}/versions/{version}
@required {name: str, version: str}
@returns(200) {name: str?, description: str?, enumerationValues: [EnumerationValue]?, lastUpdatedDate: str(timestamp)?, createdDate: str(timestamp)?, version: str?, checksum: str?, valueSelectionStrategy: str?, parentSlotTypeSignature: str?, slotTypeConfigurations: [SlotTypeConfiguration]?}

@endpoint GET /slottypes/{name}/versions/
@required {name: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {slotTypes: [SlotTypeMetadata]?, nextToken: str?}

@endpoint GET /slottypes/
@optional {nextToken: str, maxResults: int, nameContains: str}
@returns(200) {slotTypes: [SlotTypeMetadata]?, nextToken: str?}

@endgroup

@group bots
@endpoint GET /bots/{botname}/utterances?view=aggregation
@required {botName: str, bot_versions: [str], status_type: str}
@returns(200) {botName: str?, utterances: [UtteranceList]?}

@endgroup

@group tags
@endpoint GET /tags/{resourceArn}
@required {resourceArn: str}
@returns(200) {tags: [Tag]?}

@endgroup

@group bots
@endpoint PUT /bots/{name}/versions/$LATEST
@required {name: str, locale: str, childDirected: bool}
@optional {description: str, intents: [Intent], enableModelImprovements: bool, nluIntentConfidenceThreshold: num(f64), clarificationPrompt: Prompt, abortStatement: Statement, idleSessionTTLInSeconds: int, voiceId: str, checksum: str, processBehavior: str, detectSentiment: bool, createVersion: bool, tags: [Tag]}
@returns(200) {name: str?, description: str?, intents: [Intent]?, enableModelImprovements: bool?, nluIntentConfidenceThreshold: num(f64)?, clarificationPrompt: Prompt?{messages: [Message], maxAttempts: int, responseCard: str?}, abortStatement: Statement?{messages: [Message], responseCard: str?}, status: str?, failureReason: str?, lastUpdatedDate: str(timestamp)?, createdDate: str(timestamp)?, idleSessionTTLInSeconds: int?, voiceId: str?, checksum: str?, version: str?, locale: str?, childDirected: bool?, createVersion: bool?, detectSentiment: bool?, tags: [Tag]?}

@endpoint PUT /bots/{botName}/aliases/{name}
@required {name: str, botName: str, botVersion: str}
@optional {description: str, checksum: str, conversationLogs: ConversationLogsRequest, tags: [Tag]}
@returns(200) {name: str?, description: str?, botVersion: str?, botName: str?, lastUpdatedDate: str(timestamp)?, createdDate: str(timestamp)?, checksum: str?, conversationLogs: ConversationLogsResponse?{logSettings: [LogSettingsResponse]?, iamRoleArn: str?}, tags: [Tag]?}

@endgroup

@group intents
@endpoint PUT /intents/{name}/versions/$LATEST
@required {name: str}
@optional {description: str, slots: [Slot], sampleUtterances: [str], confirmationPrompt: Prompt, rejectionStatement: Statement, followUpPrompt: FollowUpPrompt, conclusionStatement: Statement, dialogCodeHook: CodeHook, fulfillmentActivity: FulfillmentActivity, parentIntentSignature: str, checksum: str, createVersion: bool, kendraConfiguration: KendraConfiguration, inputContexts: [InputContext], outputContexts: [OutputContext]}
@returns(200) {name: str?, description: str?, slots: [Slot]?, sampleUtterances: [str]?, confirmationPrompt: Prompt?{messages: [Message], maxAttempts: int, responseCard: str?}, rejectionStatement: Statement?{messages: [Message], responseCard: str?}, followUpPrompt: FollowUpPrompt?{prompt: Prompt{messages: [Message], maxAttempts: int, responseCard: str?}, rejectionStatement: Statement{messages: [Message], responseCard: str?}}, conclusionStatement: Statement?{messages: [Message], responseCard: str?}, dialogCodeHook: CodeHook?{uri: str, messageVersion: str}, fulfillmentActivity: FulfillmentActivity?{type: str, codeHook: CodeHook?{uri: str, messageVersion: str}}, parentIntentSignature: str?, lastUpdatedDate: str(timestamp)?, createdDate: str(timestamp)?, version: str?, checksum: str?, createVersion: bool?, kendraConfiguration: KendraConfiguration?{kendraIndex: str, queryFilterString: str?, role: str}, inputContexts: [InputContext]?, outputContexts: [OutputContext]?}

@endgroup

@group slottypes
@endpoint PUT /slottypes/{name}/versions/$LATEST
@required {name: str}
@optional {description: str, enumerationValues: [EnumerationValue], checksum: str, valueSelectionStrategy: str, createVersion: bool, parentSlotTypeSignature: str, slotTypeConfigurations: [SlotTypeConfiguration]}
@returns(200) {name: str?, description: str?, enumerationValues: [EnumerationValue]?, lastUpdatedDate: str(timestamp)?, createdDate: str(timestamp)?, version: str?, checksum: str?, valueSelectionStrategy: str?, createVersion: bool?, parentSlotTypeSignature: str?, slotTypeConfigurations: [SlotTypeConfiguration]?}

@endgroup

@group imports
@endpoint POST /imports/
@required {payload: bytes, resourceType: str, mergeStrategy: str}
@optional {tags: [Tag]}
@returns(200) {name: str?, resourceType: str?, mergeStrategy: str?, importId: str?, importStatus: str?, tags: [Tag]?, createdDate: str(timestamp)?}

@endgroup

@group migrations
@endpoint POST /migrations
@required {v1BotName: str, v1BotVersion: str, v2BotName: str, v2BotRole: str, migrationStrategy: str}
@returns(200) {v1BotName: str?, v1BotVersion: str?, v1BotLocale: str?, v2BotId: str?, v2BotRole: str?, migrationId: str?, migrationStrategy: str?, migrationTimestamp: str(timestamp)?}

@endgroup

@group tags
@endpoint POST /tags/{resourceArn}
@required {resourceArn: str, tags: [Tag]}

@endpoint DELETE /tags/{resourceArn}
@required {resourceArn: str, tagKeys: [str]}

@endgroup

@end
