def create_lex_bot()

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']