def handler()

in src/pkg/qs_asset_gov.py [0:0]


def handler(event, context):
    """
    Handler
        - Runs QuickSight Asset Governance
        - Update QuickSight with asset permissions based on a supplied manifest
        file.
    """

    LOGGER.info(f"event: {event}")

    account_id = context.invoked_function_arn.split(":")[4]
    all_datasets = get_all_datasets(account_id)
    manifest = get_asset_manifest(account_id)

    try:
        for asset in manifest:
            if asset.category == "dataset":
                dataset_id = get_dataset_id(asset, all_datasets)
                reset_dataset_permissions(asset, dataset_id)
                apply_dataset_governance(asset, dataset_id)
            # elif asset.category == "dashboard":
            #     # Dashboard Asset Governance
            #     continue
            # elif asset.category == "theme":
            #     continue
            #     # Theme Asset Governance
            # elif asset.category == "analyses":
            #     continue
            #     # Analysis Asset Governance
        return SUCCESS_RESPONSE

    except Exception as err:
        LOGGER.error(traceback.format_exc())
        raise Exception(FAILURE_RESPONSE) from err