in functions/source/lex_custom_resource/lex_custom_resource.py [0:0]
def create_lex_bot(lex_bot, fulfillment_lambda, kendra_search_role_arn, kendra_index_id, account_id):
"""
Creates Lex Bot.
:param lex_bot: Bot description
:param fulfillment_lambda: ARN of fulfillment Lambda
:param kendra_search_role_arn: ARN of role created for creating custom Lex bot
:param kendra_index_id: Kendra Index ID
:param account_id: AWS Account ID
:return: Lex Bot Name & version
"""
intent_list = []
slot_type_version = {}
if 'slotTypes' in lex_bot:
slot_type_version = create_lex_slot_types(lex_bot['slotTypes'])
del lex_bot['slotTypes']
if 'intents' in lex_bot:
intent_list = create_lex_intents(fulfillment_lambda, lex_bot['intents'], kendra_search_role_arn, kendra_index_id, account_id, slot_type_version)
lex_bot['intents'] = intent_list
lex_bot['processBehavior'] = 'BUILD'
lex_bot['createVersion'] = True
lex_bot.pop('version', None)
try:
bot_get_response = lex_client.get_bot(name=lex_bot['name'], versionOrAlias='$LATEST')
lex_bot['checksum'] = bot_get_response['checksum']
except lex_client.exceptions.NotFoundException:
pass
bot_response = lex_client.put_bot(**lex_bot)
logger.info("Bot Name: %s", str(bot_response['name']))
return bot_response['name'], bot_response['version']